我在保持一个轴锁定时遇到问题。我有两个工具可以用来像对象一样抓住这个模拟针。
我只需要能够保持其自身的旋转(局部y)并将其余部分与工具的旋转对齐。但是,目前我只能弄清楚如何旋转所有轴:
代码看起来像这样:
case 1:
this.transform.rotation = leftParent.transform.rotation;
this.transform.SetParent (leftParent);
break;
case 2:
this.transform.rotation = rightParent.transform.rotation;
this.transform.SetParent (rightParent);
break;
我尝试了什么:
如果我错过了一些明显的东西,请告诉我。谢谢!
答案 0 :(得分:0)
我认为您要找的是 Transform.localRotation 或 Tranform.localEulerAngles :您可以找到有关here的更多信息。
在你的情况下,我会做这样的事情(考虑你的“手”对象几何是预期的):
case1 :
//Adjust the rotation you want to keep here (I assume on Y axis in your case)
transform.SetParent(leftParent);
transform.localEulerAngles = new Vector3(0.0f, transform.localEulerAngles.y, 0.0f);
break;
case2 :
//Adjust the rotation you want to keep here (I assume on Y axis in your case)
transform.SetParent(rightParent);
transform.localEulerAngles = new Vector3(0.0f, transform.localEulerAngles.y, 0.0f);
break;
顺便说一下,在您的情况下不需要this
关键字,因为transform
单独指的是附加脚本的转换。