我有一个门obj和一个玻璃obj,我把我的门打开/关闭脚本放在我的门obj上,我想要每次更新门旋转并将其应用到玻璃对象上。我为门创建了这个脚本,然后我想在我的另一个对象上应用rotatePositionY
。
public float rotatePositionY;
void Update () {
rotatePositionY = transform.rotation.eulerAngles.y;
}
在另一个obj我创建了这个脚本,但我没有使用如何告诉团结协助doorRotateExport
更正,我使用transform.rotation.eulerAngles.y
收到错误。我认为它只适用于获取浮动而不是为了分配另一个浮点数。这是正确的方法吗?
public DoorRotateExport doorRotateExport;
void Start () {
doorRotateExport = GameObject.Find ("doorgim").GetComponent<DoorRotateExport> ();
}
void Update () {
transform.rotation.eulerAngles.y = doorRotateExport;
}
答案 0 :(得分:0)
此代码适用于您的第二个obj:
public DoorRotateExport doorRotateExport; void Start () { doorRotateExport = GameObject.Find("doorgim").GetComponent(); } void Update () { Vector3 newAngle = transform.rotation.eulerAngles; newAngle = doorRotateExport.rotatePosistionY; transform.rotation.eulerAngles.y = newAngle; }
答案 1 :(得分:0)
您正在将DoorRotateExport
类型的变量转换为float
值。
通过在第二个对象的脚本上更改此行来解决此问题
transform.rotation.eulerAngles.y = doorRotateExport;
到此:
transform.rotation.eulerAngles.y = doorRotateExport.rotatePosistionY;
答案 2 :(得分:0)
我不建议像这样更新轮换,但如果没有其他解决方法,你必须用update()
方法分配它,那么这里有一段工作代码:
public DoorRotateExport doorRotateExport;
void Start ()
{
doorRotateExport = GameObject.Find ("doorgim").GetComponent<DoorRotateExport> ();
}
void Update ()
{
Quaternion _rotation = transform.rotation;
_rotation.eulerAngles = new Vector3(_rotation.eulerAngles.x,doorRotateExport.transform.rotation.eulerAngles.y,_rotation.eulerAngles.z);
transform.rotation = _rotation;
}