Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 统一轮换问题_Unity3d_Rotation_Transform - Fatal编程技术网

Unity3d 统一轮换问题

Unity3d 统一轮换问题,unity3d,rotation,transform,Unity3d,Rotation,Transform,我试着让一个模型在按下按钮时旋转90度——应该很简单,对吧? 嗯,由于一些奇怪的原因,整个系统是一团混乱。如果能帮我修一下,我将不胜感激 transform.parent.rotation = Quaternion.Euler(transform.parent.rotation.x, transform.parent.rotation.y , transform.parent.rotation.z); 相反,模型只是在随机方向上旋转,似乎它们根本不应该与我的代码相关 我启动游戏,在游戏模

我试着让一个模型在按下按钮时旋转90度——应该很简单,对吧? 嗯,由于一些奇怪的原因,整个系统是一团混乱。如果能帮我修一下,我将不胜感激

transform.parent.rotation = Quaternion.Euler(transform.parent.rotation.x, transform.parent.rotation.y , transform.parent.rotation.z);   
相反,模型只是在随机方向上旋转,似乎它们根本不应该与我的代码相关

我启动游戏,在游戏模式下旋转模型,但旋转的方式似乎突然改变了


我真的被这搞糊涂了&如果您的代码不能像您想象的那样工作,我将非常感谢您的帮助

transform.parent.rotation = Quaternion.Euler(transform.parent.rotation.x, transform.parent.rotation.y , transform.parent.rotation.z);   
Quaterinion.Euler
期望以Euler角的形式输入,但您输入的是由
(x,y,z)
组成的Quaterinion的
(x,y,z,w)
,这就是为什么您会得到非常时髦的旋转

要获取变换的当前Euler角度,只需使用
transform.eulerAngles
(或者在您的示例中使用
transform.parent.eulerAngles

然而,这无论如何都不会改变旋转。 如果要绕Y轴旋转90度,可以这样添加90度

var euler = transform.parent.eulerAngles;
transform.parent.rotation = Quaternion.Euler(euler.x, euler.y+90, euler.z);
当然,绕Y旋转90度更简单的方法是

transform.Rotate(0, 90, 0);

你的代码不像你想的那样工作

Quaterinion.Euler
期望以Euler角的形式输入,但您输入的是由
(x,y,z)
组成的Quaterinion的
(x,y,z,w)
,这就是为什么您会得到非常时髦的旋转

要获取变换的当前Euler角度,只需使用
transform.eulerAngles
(或者在您的示例中使用
transform.parent.eulerAngles

然而,这无论如何都不会改变旋转。 如果要绕Y轴旋转90度,可以这样添加90度

var euler = transform.parent.eulerAngles;
transform.parent.rotation = Quaternion.Euler(euler.x, euler.y+90, euler.z);
当然,绕Y旋转90度更简单的方法是

transform.Rotate(0, 90, 0);
变换。旋转(0,90,0);变换。旋转(0,90,0);