2015-08-04 2 views
0

Я играл со следующим CodeLab - https://io2015codelabs.appspot.com/codelabs/project-tango#5 и пытался применить элемент управления Tango Pose к моему жесткому игроку (PoseController.cs). Хотя я не понимаю, почему мы должны умножать «new_position» на «m_movementScale»? Также, когда я делаю свой motionScale = 1.0f, мой плеер RigidBody вообще не перемещается.MovementScale в сценарии PoseController

Может кто-нибудь объяснить объяснение моего движения и движения игрока? Каковы идеальные значения для motionScale и скорости, так что мой PlayerRigidBody перемещается пропорционально, независимо от того, какой размер я масштабирую свою землю.

Благодаря

ответ

0

масштаб Unity по умолчанию 1 единица = 1 метр (это можно изменить в настройках проекта). Данные позиции, возвращаемые в данных Tango Pose, преобразуют 1 метр в реальном мире в 1 единицу движения (я не уверен, что он учитывает настройки проекта).

Это означает, что если ваш мир танго составляет 50 единиц, вам нужно будет перемещать 50 метров с помощью устройства Tango, чтобы покрыть длину. Поскольку это может быть непрактичным, переменная moveScale предоставляет множитель. Поэтому, если motionScale - 10, когда вы идете в реальном мире на 5 метров, вы переместили 50 единиц в мир Unity.

+0

Это имеет смысл. Некоторые последующие вопросы 1) Если я установил свой motionScale = 1.0f, то почему мой игрок не перемещается вообще? Не должно ли оно двигаться в соответствии с движениями реального мира? 2) Какую роль играет переменная «движение» в FixedUpdate? Я думал, что 5f мы умножаем скорость, с которой игрок будет двигаться. // Нормализовать вектор движения и сделать его пропорциональным скорости в секунду. движение = движение. Нормированное * 5f * Time.deltaTime; Если я увеличу масштаб движения, а также мою скорость, тогда игрок просто проскочит, не так ли? Спасибо – user2453055

Смежные вопросы