Проблема с передвижением

Программирование на Юнити.

Проблема с передвижением

Сообщение Evgeniy_94 13 май 2017, 21:55

Здравствуйте
Никак не получается разобраться с передвижением нескольких объектов по сфере с гравитацией
Когда объект один - проблем нет, движение равномерное, прямолинейное
Как только вводится на сцену еще один объект на который воздействует гравитация - движение объектов искажается, движутся не вперёд, а вперед-вбок, а также скорость меняется в зависимости от положения на сфере
Подскажите, пожалуйста, в чем здесь проблема?
Я, наверное, не до конца разобрался с векторами, поэтому не получается найти ошибку, уже всю голову сломал

Этот скрипт висит на сфере:
Синтаксис:
Используется csharp
public float _gravity = -9.81f;
    public GameObject[] _snakes;

        void Update()
        {
                Vector3 _gravityUP;
                Vector3 _bodyUP;
                Quaternion _targetRotation;

                _snakes = GameObject.FindGameObjectsWithTag("SnakeMain");

                for (int i = 0; i < _snakes.Length; ++i)
                {
                        _gravityUP = (_snakes[i].transform.position - transform.position).normalized;
                        _bodyUP = _snakes[i].transform.up;

                        _snakes[i].GetComponent<Rigidbody> ().AddForce (_gravityUP * _gravity);
                        _targetRotation = Quaternion.FromToRotation(_bodyUP, _gravityUP) * _snakes[i].transform.rotation;
                        _snakes[i].transform.rotation = Quaternion.Slerp(_snakes[i].transform.rotation, _targetRotation, 50 / Time.deltaTime);

                        _snakes[i].GetComponent<Rigidbody>().transform.Translate(Vector3.forward * Time.deltaTime * 4);
                }

        }
 


А этот на объектах, что должны притягиваться:
Синтаксис:
Используется csharp

        void Start () {
        GetComponent<Rigidbody>().constraints = RigidbodyConstraints.FreezeRotation;
        GetComponent<Rigidbody>().useGravity = false;

    }
 


Изначальный вариант скрипта взял отсюда и переделал для захвата всех риждитбоди:
https://github.com/tiriksan/Unity-test/ ... s/_Scripts

Спасибо.
Evgeniy_94
UNец
 
Сообщения: 9
Зарегистрирован: 12 апр 2017, 19:21

Re: Проблема с передвижением

Сообщение Evgeniy_94 18 май 2017, 00:23

Неужели ни кто не знает в чем может быть дело? :(
Evgeniy_94
UNец
 
Сообщения: 9
Зарегистрирован: 12 апр 2017, 19:21

Re: Проблема с передвижением

Сообщение Tolking 18 май 2017, 02:41

Или ригидбоди уберите или двигайте физикой. В изначальном варианте скрипта нет нигде перемещения через трансформ...
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2714
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 5