unity子物体的rotation不随着父物体的rotation变化
时间: 2023-09-08 22:11:08 浏览: 420
Unity中的Transform组件的Rotation属性是以欧拉角形式存储的,因此子物体的旋转也会受到父物体旋转的影响。如果您希望子物体的旋转不受父物体旋转的影响,可以将子物体的旋转从欧拉角转换为四元数,然后再将其应用到子物体的Transform组件中。这样,子物体的旋转就不会受到父物体旋转的影响。
以下是一个示例代码:
```
public class ChildRotation : MonoBehaviour
{
private Quaternion initialRotation;
void Start()
{
// 存储初始旋转
initialRotation = transform.rotation;
}
void LateUpdate()
{
// 将欧拉角转换为四元数
Quaternion newRotation = Quaternion.Euler(transform.eulerAngles);
// 应用初始旋转,使子物体旋转不受父物体影响
newRotation = initialRotation * newRotation;
// 应用新旋转
transform.rotation = newRotation;
}
}
```
在上面的代码中,我们将子物体的初始旋转存储在initialRotation变量中,并在LateUpdate函数中将其应用到新旋转中,以使子物体的旋转不受父物体的影响。注意,我们在LateUpdate函数中使用新旋转,以确保它在父物体的旋转之后应用。
阅读全文
相关推荐

















