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

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

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

Войти через центр авторизации
Похожие вопросы