Я хочу повернуть свою 3d модель на основе касания плеера в направлении x и y. Так что я обнаруживаю горизонтальное и вертикальное касание.Ограничить вращение 3d модели в Unity 3d
Но в этом я хочу ограничить вращение направления. Для этого я попробовал несколько кодов и задал предложения на других форумах. В настоящее время никаких предложений для меня не работает.
В принципе, я не хочу вращение направления z. Следующий образ дает вам больше идей, где все происходит неправильно. Модель полностью повернута в направлении z. Я хочу остановить это.
Вот мои несколько попыток достичь то же самое.
void Update()
{
// If there are two touches on the device...
if (Input.touchCount == 1 && GameManager.Instance.IsGameStart) {
// Store currnet touch.
Touch touch = Input.GetTouch (0);
// transform.RotateAround (transform.position, Vector3.up, - touch.deltaPosition.x Time.deltaTime 15f);
// transform.RotateAround (transform.position, Vector3.right, touch.deltaPosition.y Time.deltaTime 15f);
// transform.RotateAround (transform.position, Vector3.forward, 0f);
// transform.Rotate (Vector3.up, -touch.deltaPosition.x Time.deltaTime 10f, Space.World);
// transform.Rotate (Vector3.right, touch.deltaPosition.y Time.deltaTime 5f, Space.World);
// transform.Rotate (Vector3.forward, 0f, Space.World);
myRigidbody.MoveRotation (myRigidbody.rotation Quaternion.Euler (Vector3.right touch.deltaPosition.y Time.deltaTime 5f));
myRigidbody.MoveRotation (myRigidbody.rotation Quaternion.Euler (Vector3.up -touch.deltaPosition.x Time.deltaTime 10f));
}
}
Наверху каждый блок представляет собой уникальное усилие для ограничения направления z. Теперь, пожалуйста, дайте мне какое-то предложение достичь того же.
Как мое обсуждение работает на форуме Unity Touch based rotation of 3d model
EDIT: Я попытался с ограничением Rigidbody во вращение г. Так что мой инспектор выглядит примерно так.
EDIT: После обсуждения развития игры чата. У меня следующий вид кода:
float prevZ = transform.eulerAngles.z;
transform.Rotate (Vector3.up, -touch.deltaPosition.x Time.deltaTime 10f, Space.World);
transform.Rotate (Vector3.right, touch.deltaPosition.y Time.deltaTime 5f, Space.World);
Vector3 modelVec = transform.eulerAngles;
modelVec.z = prevZ;
transform.eulerAngles = modelVec;
Я просто близко к решению, но теперь мой гольф модель земной шар не в состоянии двигаться, что на 180 градусов от верхней или нижней стороне сопротивления. Я просто достигаю 180 градусов, и он просто поворачивается в любом направлении.
попробовать этот http://stackoverflow.com/questions/32813626/constrain-pitch-yaw-roll/32846982#32846982 – minorlogic
Действительно, я не могу в состоянии понять выше ссылке. – Siddharth
Можете ли вы уточнить, что вы подразумеваете под «любым другим направлением»? –