赞
踩
两个物体在场景中,最初没有设置旋转。
以上两个物体初始没有旋转。
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
-
- public class Inverse : MonoBehaviour
- {
- public GameObject goOrg;
- public GameObject goNew;
-
- // Start is called before the first frame update
- void Start()
- {
- // 两个物体初始施加同样的旋转、绕Y轴旋转30度。
- Quaternion rot1 = Quaternion.AngleAxis(30.0f, Vector3.up);
- goOrg.transform.rotation = rot1;
- goNew.transform.rotation = rot1;
-
- // New物体的旋转设置为旋转的逆
- goNew.transform.rotation = Quaternion.Inverse(rot1);
-
- Debug.Log("Org rotation:");
- Debug.Log(goOrg.transform.rotation);
-
- Debug.Log("New rotation:");
- Debug.Log(goNew.transform.rotation);
-
- // 使旋转轴变为负Y,结果是一样的
- Quaternion rot2 = Quaternion.AngleAxis(30.0f, -Vector3.up);
- Debug.Log("Verify rotation:");
- Debug.Log(rot2);
- }
-
- // Update is called once per frame
- void Update()
- {
-
- }
- }
结果为红色的(new物体)变为绕Y轴转负30度。原理:四元数取逆就是x, y, z分量取负,此例旋转轴变为负Y。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。