Пятница, 21 Июня 2024, 13:08

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос-[ответ] по Unity
QWER56Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1
старожил
Сейчас нет на сайте
Вопрос-[Ответ] по Unity3d

  • База скриптов Unity3d
  • Курс Уроков по Unity 3D от Alcatraz

    ConsMark - поисковик по интернет магазинам.

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • x_MedwedДата: Пятница, 03 Июля 2015, 17:59 | Сообщение # 7081
    постоянный участник
    Сейчас нет на сайте
    Antrix, ок
    вот решение))

    перепесал немного скрипт сделал функцию публичной)

    Код

    using UnityEngine;
    using System.Collections;

    public class smouk : MonoBehaviour
    {
      public float Tamer;
      public GameObject smoukt;
      public GameObject Bam;
      public GunScript tojka;
      public bool bol;
       

      void Update () {
       if(bol == true){
       Tamer -= Time.deltaTime;
       if (Tamer <= 0) {
        Destroy (gameObject);
        Instantiate (Bam, transform.position,transform.rotation);
       }
       }
      }
      public void Sm ()
      {
       if (tojka.Hit.transform.GetComponent<smouk> ()) {
        smoukt.transform.position = tojka.Hit.point;
        GameObject smouktSled = Instantiate (smoukt, tojka.Hit.point + (tojka.Hit.normal * 0.002f), tojka.To) as GameObject;
        smouktSled.transform.parent = tojka.Hit.collider.transform;
        bol = true;
       }
      }
    }


    И вызываю ее с другого скрипта)

    Код

    if(Hit.transform.GetComponent<smouk>())
         {
          Hit.transform.GetComponent<smouk>().Sm();
         }
    NoterstoneДата: Суббота, 04 Июля 2015, 02:46 | Сообщение # 7082
    участник
    Сейчас нет на сайте
    Обычно, чтобы оружие в руках не проваливалось в объекты, его рисуют поверх другой камерой. При этом тени от объектов на другой камере, на оружие они не рисуются. Как сделать, чтобы тени рисовались на оружии?
    AntrixДата: Суббота, 04 Июля 2015, 08:36 | Сообщение # 7083
    почетный гость
    Сейчас нет на сайте
    Поддерживаю Noterstone, тот же вопрос. Даже добавлю:
    Как реализовать систему нескольких камер? То есть, вод допустим я, на данный момент, реализовал внутриигровое меню следующим образом:

    То есть, не очень то и удобно. Оружие (палка в данном случае) поврх меню, прицел тоже (но прицел то еще пол беды) и еще куча неудобств. Как бы это скинуть все на другую камеру?
    allodsДата: Суббота, 04 Июля 2015, 15:43 | Сообщение # 7084
    почти ветеран
    Сейчас нет на сайте
    Цитата Antrix ()
    Noterstone, тот же вопрос. Даже добавлю:

    Вопрос совсем другой у вас
    Добавь камеру отрисовывай другие Lyares , вот вам и меню на другой камере и оружие не будет внутри меню итп


    Сообщение отредактировал allods - Суббота, 04 Июля 2015, 15:44
    AntrixДата: Суббота, 04 Июля 2015, 16:07 | Сообщение # 7085
    почетный гость
    Сейчас нет на сайте
    Цитата allods ()
    Добавь камеру отрисовывай другие Lyares , вот вам и меню на другой камере и оружие не будет внутри меню итп

    Как потом сменять камеры с FirstPersonCharacter на Camera (ту, что будет отдельная)?

    С этим разобрался... но есть проблема.

    Нажимаю ESC:
    1. Отключаю основную камеру персонажа (работает).
    2. Включаю GUI камеру (работает).

    Нажимаю повторно ESC:
    1. Отключаю GUI камеру (не работает).
    2. Включаю основную камеру персонажа (не работает).

    В итоге все камеры остаются выключенными после двух нажатий ESC.


    Сообщение отредактировал Antrix - Воскресенье, 05 Июля 2015, 01:02
    MANMANAДата: Воскресенье, 05 Июля 2015, 13:24 | Сообщение # 7086
    почти ветеран
    Сейчас нет на сайте
    попробуй исправить в коде, мне помогло

    http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
    VKонтакте 3Dbuffer

    Последнее:

    Новый раздел "Текстуры"

    Как запатентовать, защитить техническое решение, игру, идею
    x_MedwedДата: Воскресенье, 05 Июля 2015, 22:45 | Сообщение # 7087
    постоянный участник
    Сейчас нет на сайте
    Кто подскажет проблема в том что занялся системой Мекамек, и вроде все норм но переход между анимацией происходит с задержкой, и только по окончании а надо сразу по нажатию кнопки???
    seamanДата: Воскресенье, 05 Июля 2015, 23:33 | Сообщение # 7088
    старожил
    Сейчас нет на сайте
    Цитата
    системой Мекамек

    Жуть. Хоть бы название выучил...
    В пятерке:

    В четверке не уверен есть ли такое.
    x_MedwedДата: Понедельник, 06 Июля 2015, 09:45 | Сообщение # 7089
    постоянный участник
    Сейчас нет на сайте
    seaman, Большое спасибо все теперь работает как надо
    AntrixДата: Понедельник, 06 Июля 2015, 11:02 | Сообщение # 7090
    почетный гость
    Сейчас нет на сайте
    MANMANA
    Я, почему-то, всегда все go пытаюсь достать через немыслимые тернистые пути smile Забыл, что все можно сделать намного проще. Скажу честно, знакомится с Unity начал относительно недавно, но инструмент выбран теперь однозначно.

    P.S. Рылся в документации, но так и не нашел ничего (может плохо искал?). Может кто подскажет, есть ли в Unity такая фишка, как "опустить" объект на поверхность, которая находится под этим самым объектом? Что-то вроде аналогичной функции в UE4 на клавишу END.

    Все оказалось проще:

    Код
    using UnityEngine;
    using UnityEditor;
    using System.Collections

    public class AlignWithGround : MonoBehaviour {
          [MenuItem ("Tools/Transform Tools/Align with ground %t")]
          static void AlignWithGround () {
              Transform [] transforms = Selection.transforms;
              foreach (Transform myTransform in transforms) {
                  RaycastHit hit;
                  if (Physics.Raycast (myTransform.position, -Vector3.up, out hit)) {
                      Vector3 targetPosition = hit.point;
                      if (myTransform.gameObject.GetComponent<MeshFilter>() != null) {
                          Bounds bounds = myTransform.gameObject.GetComponent<MeshFilter>().sharedMesh.bounds;
                          targetPosition.y += bounds.extents.y;
                      }
                      myTransform.position = targetPosition;
                      Vector3 targetRotation = new Vector3 (hit.normal.x, myTransform.eulerAngles.y, hit.normal.z);
                      myTransform.eulerAngles = targetRotation;
                  }
              }
          }
    }


    Сообщение отредактировал Antrix - Понедельник, 06 Июля 2015, 11:35
    allodsДата: Понедельник, 06 Июля 2015, 16:15 | Сообщение # 7091
    почти ветеран
    Сейчас нет на сайте
    Как я понял Mathf.Clamp не позволяет значению перевалить за указанные значения , к примеру есть X

    Mathf.Clamp(X, -10, 10);

    если X будет 15 то он опустится до 10, если -100 то до -10 ?

    Да все так как я и думал

    Просто я в своем коде перепутал местами минимальное значение с максимальным
    Mathf.Clamp(X, 10, -10); < не написать так по ошибке


    Сообщение отредактировал allods - Понедельник, 06 Июля 2015, 16:21
    seamanДата: Понедельник, 06 Июля 2015, 17:24 | Сообщение # 7092
    старожил
    Сейчас нет на сайте
    Цитата Antrix ()
    Все оказалось проще:

    Куда уж проще:
    Цитата
    Привязка к поверхности
    При перетаскивании, с использованием центра инструмента перемещения, вы можете зажать Shift и Control (Command в Mac) для привязки объекта к пересечению с любым коллайдером. Это позволяет очень быстро и точно расставлять объекты.

    http://docs.unity3d.com/ru/current/Manual/PositioningGameObjects.html
    Мануал не забываем изучать...
    AntrixДата: Понедельник, 06 Июля 2015, 18:52 | Сообщение # 7093
    почетный гость
    Сейчас нет на сайте
    Цитата seaman ()
    Мануал не забываем изучать...

    Я это уже читал. У меня большинство объектов стыкуются с поверхностью своим "центром".
    x_MedwedДата: Понедельник, 06 Июля 2015, 23:17 | Сообщение # 7094
    постоянный участник
    Сейчас нет на сайте
    Может и глупый вопрос но кто подскажет как сделать или где почитать или может скинет силку на то как сделать камеру от 3 лица но не как в MMORPG??????
    AntrixДата: Вторник, 07 Июля 2015, 00:02 | Сообщение # 7095
    почетный гость
    Сейчас нет на сайте
    Цитата x_Medwed ()
    Может и глупый вопрос но кто подскажет как сделать или где почитать или может скинет силку на то как сделать камеру от 3 лица но не как в MMORPG??????


    А какая это камера от третьего лица но не такая как в MMORPG? smile Что-то вроде этого?:

    _____________

    И еще один трабл... как добраться до переменно m_RunSpeed в стандартном FirstPersonController Unity5? Делал переменную public, но получаю ограниченный доступ. Переменная в моем скрипте есть, но я не могу её считать или установить другое значение. Пытаюсь сделать какое-то подобие системы расхода выносливости при беге и, соответственно, по окончании стамины (в моем скрипте) установить скорость бега (m_RunSpeed) аналогичное обычной ходьбе.


    Сообщение отредактировал Antrix - Вторник, 07 Июля 2015, 11:34
    andarkyДата: Вторник, 07 Июля 2015, 13:39 | Сообщение # 7096
    старожил
    Сейчас нет на сайте
    Почему в Win7 / Win8 это не работает:

    Код

    import UnityEngine.UI;
    import System;
    ...
    function OnMouseDown()
    {
    var path = 'Reports/';
      var nam = 'report_'+glob.translit(inputname.text)+'.html';

    SaveTextFile(path+glob.translit(data)+'_'+nam, content_html    );
    System.Diagnostics.Process.Start(path+glob.translit(data)+'_'+nam);

    }

    function SaveTextFile ( fileName : String, fileContent : String ) {
        var sw : StreamWriter = new StreamWriter ( fileName );
        sw.Write ( fileContent );
        sw.Close ();
      }


    * glob.translit - моя ф-ция русские символы заменяет латиницей

    В WinXP все отлично!
    я получаю файлик HTML и открывается браузер по умолчанию

    в Win7 приложение тупо зависает и всё....

    но хотя закрыв по Alt+F4, потом в указанной папке вижу что HTML создается нормально
    значит проблема в
    System.Diagnostics.Process.Start

    или она только в XP работает??



    Моя страничка по дизайну
    GameDev//Design//3D
    Ютубчик
    AntrixДата: Вторник, 07 Июля 2015, 17:04 | Сообщение # 7097
    почетный гость
    Сейчас нет на сайте
    Никто не подскажет, как заставить бегать стандартного персонажа AIThirdPersonController в Unity 5 через Click to Move? Через RayCast задаю ему координаты куда идти, даю команду, но он не бежит... и даже не идет - он плывет. То есть, после первого клика по террейну, он плывет, после второго - идет как черепаха, после третьего немножко быстрее и т.д. Если через настройки самого скрипта в редакторе ему подсунуть какой нибудь ящик или типа того, то все нормально, он к нему подбегает как и положено.
    seamanДата: Вторник, 07 Июля 2015, 21:13 | Сообщение # 7098
    старожил
    Сейчас нет на сайте
    ...
    Удалите, плиз...


    Сообщение отредактировал seaman - Вторник, 07 Июля 2015, 21:16
    allodsДата: Вторник, 07 Июля 2015, 21:18 | Сообщение # 7099
    почти ветеран
    Сейчас нет на сайте
    ребят скажите как узнать подключен контроллер к девайсу или нет ?
    x_MedwedДата: Среда, 08 Июля 2015, 07:28 | Сообщение # 7100
    постоянный участник
    Сейчас нет на сайте
    Antrix, ну да
    Поиск:

    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг