Страница 1 из 1

как лучше сделать управление?

СообщениеДобавлено: 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
давыдов никита писал(а):ну или как по другому можно перемещать?

Скоростью же. Это легко и просто.