Quaternion中ToAngleAxis和AngleAxis的含义和用法

8.2.3 ToAngleAxis方法:Quaternion实例的角轴表示

基本语法:public voidToAngleAxis(out float angle, out Vector3 axis);

其中参数angle为旋转角;参数axis为轴向量。

功能说明:此方法用于将Quaternion实例转换为角轴表示。在transform. rotation.ToAngleAxis(out angle, out axis)中输出值angle和axis的含义为:要将GameObject对象的rotation从Quaternion.Identity状态变换到当前状态,只需要将GameObject对象绕着axis的轴向(指世界坐标系中)旋转angle角度即可。

提示:此方法通常和静态方法AngleAxis (angle: float, axis : Vector3)联合使用,使得一个物体的rotation始终和另一个物体的rotation保持一致。

实例演示:下面通过实例演示方法ToAngleAxis的使用。

using UnityEngine;
using System.Collections;

public class ToAngleAxis_ts : MonoBehaviour {
    public Transform A, B;
    float angle;
    Vector3 axis = Vector3.zero;
	
	void Update () {
        //使用ToAngleAxis获取A的Rotation的旋转轴和角度
        A.rotation.ToAngleAxis(out angle, out axis);
        //使用AngleAxis设置B的rotation,使得B的rotation状态的和A相同
		//当然也可以只使得B与A的axis相同,而angle不同
        //可以在程序运行时修改A的rotation查看B的状态
        B.rotation = Quaternion.AngleAxis(angle,axis);
	}
}

在这段代码中首先声明了两个GameObject类型的变量A和B,用于指向场景中的物体,然后在Update方法中首先调用ToAngleAxis方法将A的rotation转换为角轴angle和axis,接着调用方法AngleAxis将角轴代表的Quaternion值赋给B.rotation。程序运行时可以在Inspector面板或Scene视图中随便修改A的旋转角,然后查看物体B的跟随旋转状态,请读者自行运行程序查看。


本文章摘自图书《Unity API解析》,源码下载地址:http://www.ituring.com.cn/book/1474


  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值