У меня проблемы с игровой логикой. Прямо сейчас у меня есть установка, в которой игрок использует новый Samsung Galaxy S8 с гарнитурой Gear-VR и контроллером Gear для исследования окружающей среды. Текущий код настроен так, что игрок может двигаться вперед и назад, используя направление, в которое он смотрит, с помощью контроллера персонажа, и расчет направления, в котором камера смотрит, чтобы двигаться, на основе «сенсорной панели» контроллера.
У меня есть горизонтальная и вертикальная ось (на основе «касания» контроллера), которая изменяется от -1,0 до 1,0 в Vector2.
if (input.y > 0.0f || input.y < 0.0f || input.x > 0.0f || input.x < 0.0f) {
Vector3 direction = new Vector3(cameraObject.transform.forward.x, 0, cameraObject.transform.forward.z);
cC.Move(direction * walkSpeed * Time.deltaTime * input.y);
}
Приведенный выше код переводит игрока вперед и назад, вычисляя направление, в которое камера смотрит и движется «к ней», но мне также нужно «бежать» влево и вправо, и я не могу понять это.
if (input.y != 0.0f || input.x != 0.0f) { ... }
но из кода в скобках я вижу, что вы даже не используетеinput.x
, поэтому оператор if может быть еще короче:if (input.y != 0.0f) { ... }
- person Nika Kasradze   schedule 02.05.2017