как лучше сделать управление?
Добавлено:
14 янв 2018, 20:31
давыдов никита
привет
я создавал игру где ты управляешь танком и с толкнулся с одной проблеммой
перемещал я его с помошью:
void Update ()
{
float horizontal = Input.GetAxis("Horizontal") * Time.deltaTime * 20f;
float forward = Input.GetAxis("Vertical") * Time.deltaTime * 30f;
transform.Translate(new Vector3(forward, 0, 0));
transform.Rotate(new Vector3(0, horizontal, 0));
}
но когда я упираюсь в стену, тоесть в объект с коллайдером. то он просто колеблиться туда сюда. как это исправить или как изменить скрипт?
Re: как лучше сделать управление?
Добавлено:
14 янв 2018, 20:42
Ksaan
Как вариант можно райкастом пустить в направлений движения, и смотреть дистанцию до препятствия и останавливать движение.
Re: как лучше сделать управление?
Добавлено:
14 янв 2018, 21:26
давыдов никита
Ksaan писал(а):Как вариант можно райкастом пустить в направлений движения, и смотреть дистанцию до препятствия и останавливать движение.
тоесть при определённом значении дистанции онулировать переменные вычеслющие троекторию движения по векторам?
Re: как лучше сделать управление?
Добавлено:
14 янв 2018, 23:43
Cr0c
C таким перемещением
Используется csharp
transform.Translate(new Vector3(forward, 0, 0));
transform.Rotate(new Vector3(0, horizontal, 0));
лучше смириться с
давыдов никита писал(а):колеблиться туда сюда
Потому что физика работает через Rigidbody
Re: как лучше сделать управление?
Добавлено:
15 янв 2018, 20:10
давыдов никита
Cr0c писал(а):C таким перемещением
Используется csharp
transform.Translate(new Vector3(forward, 0, 0));
transform.Rotate(new Vector3(0, horizontal, 0));
лучше смириться с
давыдов никита писал(а):колеблиться туда сюда
Потому что физика работает через Rigidbody
а что если при столкновении колайдеров уменьшать скорость до десятых
я протестил, при мизерной скорости он не колеблиться
Re: как лучше сделать управление?
Добавлено:
15 янв 2018, 20:12
давыдов никита
Cr0c писал(а):C таким перемещением
Используется csharp
transform.Translate(new Vector3(forward, 0, 0));
transform.Rotate(new Vector3(0, horizontal, 0));
лучше смириться с
давыдов никита писал(а):колеблиться туда сюда
Потому что физика работает через Rigidbody
ну или как по другому можно перемещать?
Re: как лучше сделать управление?
Добавлено:
15 янв 2018, 21:38
Cr0c
давыдов никита писал(а):ну или как по другому можно перемещать?
Скоростью же. Это легко и просто.