移动对象两个旋转

时间:2016-09-02 11:43:55

标签: c# unity3d

enter image description here 看看图片的z轴不在前面所以而不是使用向前我使用这行代码来翻译我的对象在键上

robotObj.transform.position + = Vector3.right * Time.deltaTime * Input.GetAxis(“Vertical”)* -1;

这一行代码可以旋转它。

robotObj.transform.Rotate(0f, Input.GetAxis("Horizontal") * speed, 0f);

但问题是对象没有朝着它的方向发展

2 个答案:

答案 0 :(得分:0)

如果你想根据它的观察方向移动物体(对你来说它是红色轴),那么我建议你首先旋转你的物体然后用transform.right作为移动方向,比如

transform.position += transform.right* Time.DeltaTime * Input.GetAxis("Vertical")

注意:transform.right获取对象的局部蓝轴并将其投影到世界空间(参考:https://docs.unity3d.com/ScriptReference/Transform-right.html

注意2:编辑使用transform.right虽然我建议将你的GameObject放入另一个空的GameObject中以实现指向前方的蓝轴,因此你可以使用transform.forward,因为它更直观。

答案 1 :(得分:0)

将空游戏对象作为robotObj的父级,并使用您创建的脚本移动空游戏对象。 但要确保z轴面向robotObj的x轴!