Персонаж в unity вилетает со сцены?

Обучаюсь движку Unity5. Когда вставляю скрипт передвижения
public class FPSInput : MonoBehaviour {
	public float speed = 6.0f;
	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
		float deltaX = Input.GetAxis ("Horizontal") * speed;
		float deltaZ = Input.GetAxis ("Vertical") * speed;
		transform.Translate (deltaX, speed, deltaZ);
	}
}

В чем пожет быть проблема. Приставлять колайдери пробовал, is trigger - не поставлен.
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
MrMureno
@MrMureno Куратор тега Unity
VR for all
вам как минимум надо дельту на апдеите умножать на Time.deltaTime - чтобы было плавно.
иначе получается что вы там придаете очень такую нехилую скорость.
https://docs.unity3d.com/ScriptReference/Time-delt...
вот почитайте что это такое.
ну и чтоб учитывало корректно коллайдеры - вам правильно советует Даниил Басманов двигать через физику

но при огромных значениях - даже честный просчет не поможет) "протолкнется" сквозь коллайдер или станет неадекватно вести себя
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Translate игнорирует коллайдеры, если хотите двигать по физике, то используйте AddForce или MovePosition.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы