Ребята, я делаю бесконечную игру для раннеров, которая будет управляться с помощью положения тела.
Я пытаюсь перемещать персонажа влево или вправо (по оси X) с помощью положения моего тела с помощью датчика Kinect.Персонаж может свободно двигаться вперед (по оси z) с Time.deltaTime
.У персонажа CharacterController
и скрипт прилагается.Ниже приведен код для движения:
CharacterController controller;
KinectManager kinectManager;
float speed = 5.0f
Vector3 moveDir;
void Update()
{
moveDir = Vector3.zero;
moveDir.z = speed;
moveDir.x = kinectManager.instance.BodyPosition * speed;
//controller.Move(moveDir * Time.deltaTime);
controller.Move(new Vector3 (moveDir.x, 0, moveDir.z * Time.deltaTime));
}
Этот оператор controller.Move(moveDir * Time.deltaTime);
продолжает перемещать символ влево или вправо, потому что позиция x увеличивается на Time.deltaTime
, поэтому я хотел ограничить это и изменил наcontroller.Move(new Vector3 (moveDir.x, 0, moveDir.z * Time.deltaTime));
.
Теперь происходит то, что персонаж застрял в той же позиции.Я могу двигаться влево или вправо в зависимости от положения тела, но не могу двигаться вперед.Что мне здесь не хватает?
Пожалуйста, помогите.