Понедельник, 27 Мая 2024, 12:35

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

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

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

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

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • ivan2009Дата: Воскресенье, 12 Июля 2015, 18:45 | Сообщение # 7121
    частый гость
    Сейчас нет на сайте
    Цитата seaman ()
    Ну во первых - вынесите проверку луча из if(walk)
    Во вторых выключайте walk, когда расстояние до цели меньше заданного:

    Ну вроде бы всё сделал...но результат остался тот же...кубик по оси Z(дрожит) при остановке, не пойму почему чем выше я ставлю скорость тем больше эффект дрожания ...И всё равно если freez rotation убрать то кубит вертится вокруг своей оси...

    Вот исходник после поправок :

    Код

    using UnityEngine;
    using System.Collections;

    public class myMove : MonoBehaviour {
        public float speed = 5f;
        Ray ray;
        RaycastHit hit;
        bool walk = true ;
        public Vector3 TargetToMove = new Vector3();
        CharacterController controller;

        // Use this for initialization
        void Start () {
         controller = (CharacterController)gameObject.GetComponent<CharacterController>();

        }
        // Update is called once per frame
        void Update () {
         if (Input.GetMouseButtonDown (0)) {
          ray = Camera.main.ScreenPointToRay (Input.mousePosition);
          Physics.Raycast (ray, out hit, 500.0f);
          TargetToMove = hit.point;
          walk = true;
         }
         if (walk) {
          move ();
         }
        }

        void move(){
         Vector3 posMove = (TargetToMove - transform.position);
         Vector3 posNormal = posMove.normalized;
         controller.SimpleMove (posNormal * Time.deltaTime * speed);
         if (posMove.magnitude < 0.1f) {
          walk = false;
         }
        }
    }


    Ещё такой вопросик
    Сделал вращение дочернего объекта вокруг родителя... вращается горизонтально, а как сделать к примеру что бы вращался он по вертикальной оси, как управлять направлением вращения?
    Код
    using UnityEngine;
    using System.Collections;

    public class Gravity : MonoBehaviour {
      public Transform target;

      // Update is called once per frame
      void Update () {
       Vector3 relativePos = (target.position + new Vector3(0, 1, 0)) - transform.position;
       Quaternion rotation = Quaternion.LookRotation (relativePos);
       Quaternion current = transform.localRotation;
       transform.localRotation = Quaternion.Slerp (current , rotation, Time.deltaTime);
       transform.Translate (0, 0 , 5 * Time.deltaTime);

      }
    }


    Сообщение отредактировал ivan2009 - Воскресенье, 12 Июля 2015, 21:37
    hmprДата: Понедельник, 13 Июля 2015, 17:07 | Сообщение # 7122
    частый гость
    Сейчас нет на сайте
    Товарищи, в Standart Assets (mobile) имеется несколько скриптов, таких как Joystick, RotationConstraint, tapcontrol, SidescrollControl и т.д. Так вот, где о них можно почитать на русском? Собственно интересует для чего они нужны и как их применять.
    Vip_and_RipДата: Среда, 15 Июля 2015, 10:51 | Сообщение # 7123
    почетный гость
    Сейчас нет на сайте
    А raycast и должен видеть слои через другие слои, или этого можно избежать?

    Код
    если (луч падает на один слой) то {
    происходит некое действие;     
    }
    если (луч падает на другой слой) то {
    происходит некое другое действие;     
    }
    ,
    И на всё это один рэйкаст. Но нередко бывает так, что сразу несколько слоев оказываются на одной траектории - и луч их всех видит.
    Можно, конечно, шаманить - но может быть, есть программные средства, которые я почему-то упустил.


    Больше никогда не буду делать игры.

    Сообщение отредактировал Vip_and_Rip - Среда, 15 Июля 2015, 11:09
    x_MedwedДата: Четверг, 16 Июля 2015, 00:02 | Сообщение # 7124
    постоянный участник
    Сейчас нет на сайте
    Всем привет. Работаю с новым UI и стала задача сделать так чтобы при нажатии мишки на кнопку или элемента UI предавалась в переменную имя кнопки или элемента.
    проблема в том что как только не пытался ни как не могу сделать и через raycast, raycast2d, и вытащить с EventSistem но все в не какую((

    Может кто подскажет как такое реализовать???? или где искать хоть ответ??
    berilДата: Четверг, 16 Июля 2015, 04:43 | Сообщение # 7125
    Я не ленивый, я — энергосберегающий
    Сейчас нет на сайте
    Цитата x_Medwed ()
    или где искать хоть ответ??

    В справке конечно же biggrin

    Button.onClick()




    Накодил? Убери за собой!
    Инвентарь в Unity(UI)
    Инвентарь в Unity(GUI)
    LusiaZuДата: Четверг, 16 Июля 2015, 10:12 | Сообщение # 7126
    уже был
    Сейчас нет на сайте
    Мучаюсь долго с одной проблемой.
    Мне нужно сделать инстансы. Я использовала такой код:
    void Start() {

    for (int i=1; i <num; i++) {
    GameObject instance = Instantiate(thePrefab, new Vector3((i-4) * 2.0F, 0, 0), Quaternion.identity)
    as GameObject;
    };
    Но мне нужно, чтобы инстансы возникали не все сразу при старте, а по очереди, с задержкой относительно друг друга, скажем в 3 милисекунды.
    Я новичок и не нашла, как это сделать. Подозреваю, что надо как-то использовать Time.Time, но не смогла его вставить.
    Помогите, пожалуйста!
    pixeyeДата: Четверг, 16 Июля 2015, 12:10 | Сообщение # 7127
    Red Winter Software
    Сейчас нет на сайте
    Цитата LusiaZu ()
    Мучаюсь долго с одной проблемой.
    Мне нужно сделать инстансы. Я использовала такой код:
    void Start() {

    for (int i=1; i <num; i++) {
    GameObject instance = Instantiate(thePrefab, new Vector3((i-4) * 2.0F, 0, 0), Quaternion.identity)
    as GameObject;
    };
    Но мне нужно, чтобы инстансы возникали не все сразу при старте, а по очереди, с задержкой относительно друг друга, скажем в 3 милисекунды.




    ACTORS - мой фреймворк на Unity
    Until We Die - игра над которой работаю

    AlfeДата: Четверг, 16 Июля 2015, 13:31 | Сообщение # 7128
    старожил
    Сейчас нет на сайте
    А Unity 5 бесплатная версия временем ограниченна ?

    Добавлено (16 июля 2015, 13:31)
    ---------------------------------------------
    И еще вопрос, на моем ноуте (Intel core 2 duo 2.20 ghz ,3 ГБ ОЗУ , nvidia g105m 512 MB Ноуту 5 лет) пойдет ЮНити 5 ?


    Группа нашей команды. Там есть интересная рубрика... иногда игры выходят

    Моя первая игpa - Crazy Penguin
    Vip_and_RipДата: Четверг, 16 Июля 2015, 15:26 | Сообщение # 7129
    почетный гость
    Сейчас нет на сайте
    Цитата Alfe ()
    А Unity 5 бесплатная версия временем ограниченна

    Нет, просто не будет доступа к некоторым облачным функциями сервиса. И если доходы, полученные с использования этого движка, превысят определенную сумму (100 тысяч долларов, кажется), то придется поделиться с разработчиками.

    Цитата Alfe ()
    И еще вопрос, на моем ноуте (Intel core 2 duo 2.20 ghz ,3 ГБ ОЗУ , nvidia g105m 512 MB Ноуту 5 лет) пойдет ЮНити 5 ?

    У меня 2 ядра, 6 гб ОЗУ, GeForce GTX 650, но Unity 5 ощутимо тормозит и медленно загружается - приходится пользоваться четвертой версией.


    Больше никогда не буду делать игры.
    LusiaZuДата: Четверг, 16 Июля 2015, 16:20 | Сообщение # 7130
    уже был
    Сейчас нет на сайте
    pixeye,
    Спасибо, сейчас попробую...
    AlfeДата: Четверг, 16 Июля 2015, 16:45 | Сообщение # 7131
    старожил
    Сейчас нет на сайте
    Vip_And_Rip .Незнаю что у вас ощутимого,у меня все нормально FPS в районе 20 , Террэйн правд немноооооожечнько подлагивает,но не ощутимо )

    Добавлено (16 июля 2015, 16:45)
    ---------------------------------------------
    А загрузка у меня сначала (Первый запуск,который пред бланком заполнения вот этот Connecting был долгим перезапустил Юньку все загрузилось,после заполнения бланка закрыл , создание нового проекта заняло секунд 10 )


    Группа нашей команды. Там есть интересная рубрика... иногда игры выходят

    Моя первая игpa - Crazy Penguin
    ivan2009Дата: Четверг, 16 Июля 2015, 17:55 | Сообщение # 7132
    частый гость
    Сейчас нет на сайте
    Здравствуйте. Подскажите Nav Mesh Agent работает только в pro версии или в обычной тоже(у меня unity 5.1.1).
    И может кто объяснить как ним работать или может кто знает какой то сайт, туториал на русском раскрывающий суть этого компонента?
    seamanДата: Четверг, 16 Июля 2015, 18:33 | Сообщение # 7133
    старожил
    Сейчас нет на сайте
    Поиск на сайте!
    berilДата: Четверг, 16 Июля 2015, 19:15 | Сообщение # 7134
    Я не ленивый, я — энергосберегающий
    Сейчас нет на сайте
    Цитата ivan2009 ()
    Здравствуйте. Подскажите Nav Mesh Agent работает только в pro версии или в обычной тоже(у меня unity 5.1.1).
    И может кто объяснить как ним работать или может кто знает какой то сайт, туториал на русском раскрывающий суть этого компонента?

    Nav Mesh Agent доступень и free версии. Туториалы смотри в мануале, там четко написано и на русском ссылка




    Накодил? Убери за собой!
    Инвентарь в Unity(UI)
    Инвентарь в Unity(GUI)
    ivan2009Дата: Четверг, 16 Июля 2015, 19:29 | Сообщение # 7135
    частый гость
    Сейчас нет на сайте
    Цитата beril ()
    Nav Mesh Agent доступень и free версии. Туториалы смотри в мануале, там четко написано и на русском ссылка

    Да смотрел уже, вот только что ещё раз пересмотрел....там все описание на англ.... процентов пять из nav mesh agent переведено...

    вот не могу понять что ему не нравится....всё как в справочнике

    Код
    using UnityEngine;

    public class MyNavMeshAgent : MonoBehaviour {
        NavMeshAgent agent;
       // Use this for initialization
       void Start () {
        agent = GetComponent<NavMeshAgent> ();
       }
         
       // Update is called once per frame
       void Update () {
       if (Input.GetMouseButtonDown (0)) {
         RaycastHit hit;
         if(Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition),out hit,100)){
          agent.destination = hit.point;
         }
        }
       }
    }


    а юнити ругается...
    "SetDestination" can only be called on an active agent that has been placed on a NavMesh.
    UnityEngine.NavMeshAgent:set_destination(Vector3)
    MyNavMeshAgent:Update() (at Assets/myScript/MyNavMeshAgent.cs:16)

    на сколько я понял не установлено место назначения....так вроде ж hit.poin самое что ни на есть место назначения да и тип данных тот что надо...
    разобрался.....написать скрипт было мало...там в нивигейшн надо было ещё зону разметить... разметил и меня кубик начал сам по себе что бешеный летать по терейну...потом методом тыка нашел что в ригид боди надо поставить галку в is kinematic ...
    хотелось бы почитать про все прелести меш агента...если кого есть инфа на русском поделитесь пожалуйста


    Сообщение отредактировал ivan2009 - Четверг, 16 Июля 2015, 20:17
    seamanДата: Четверг, 16 Июля 2015, 19:51 | Сообщение # 7136
    старожил
    Сейчас нет на сайте
    Еще раз - чем Вам уроки на этом сайте не нравятся?
    berilДата: Четверг, 16 Июля 2015, 20:51 | Сообщение # 7137
    Я не ленивый, я — энергосберегающий
    Сейчас нет на сайте
    Цитата ivan2009 ()
    а юнити ругается...
    "SetDestination" can only be called on an active agent that has been placed on a NavMesh.
    UnityEngine.NavMeshAgent:set_destination(Vector3)
    MyNavMeshAgent:Update() (at Assets/myScript/MyNavMeshAgent.cs:16)

    на сколько я понял не установлено место назначения....так вроде ж hit.poin самое что ни на есть место назначения да и тип данных тот что надо...
    разобрался.....написать скрипт было мало...там в нивигейшн надо было ещё зону разметить... разметил и меня кубик начал сам по себе что бешеный летать по терейну...потом методом тыка нашел что в ригид боди надо поставить галку в is kinematic ...
    хотелось бы почитать про все прелести меш агента...если кого есть инфа на русском поделитесь пожалуйста

    А ты создал NavMesh, запекание(Bake) сделал?

    Цитата ivan2009 ()
    хотелось бы почитать про все прелести меш агента...если кого есть инфа на русском поделитесь пожалуйста

    На русском скорей всего нету




    Накодил? Убери за собой!
    Инвентарь в Unity(UI)
    Инвентарь в Unity(GUI)
    Vip_and_RipДата: Пятница, 17 Июля 2015, 16:01 | Сообщение # 7138
    почетный гость
    Сейчас нет на сайте
    Нахожу объект Raycast'ом, как передать его координаты в другой скрипт в Vector3.Distance?

    Больше никогда не буду делать игры.
    x_MedwedДата: Пятница, 17 Июля 2015, 16:13 | Сообщение # 7139
    постоянный участник
    Сейчас нет на сайте
    К то подскажет как искать не активные обеты а то через???
    GameObject.Find не хочет так как он ищет только активные
    Vip_and_RipДата: Пятница, 17 Июля 2015, 16:23 | Сообщение # 7140
    почетный гость
    Сейчас нет на сайте
    Цитата x_Medwed ()
    К то подскажет как искать не активные обеты а то через???
    GameObject.Find не хочет так как он ищет только активные


    Вот пример, а тут и тут этот вопрос поднимался на форуме, и был успешно решен.


    Больше никогда не буду делать игры.
    Поиск:

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