面向组件编程之Unity 11.Quaternion类属性 线性插值Lerp() 关键字:游戏物体朝向

来源:互联网 发布:unity3d海底场景 编辑:程序博客网 时间:2024/05/29 11:04

using System.Collections;using System.Collections.Generic;using UnityEngine;public class RotationX : MonoBehaviour{    //Quaternion中存放了x,y,z,w四个数据成员,可以用下标来进行访问,对应的下标分别是0,1,2,3。    //此函数作用是生成一个四元数表示的三维朝向,    //然后可以直接把这个朝向赋给游戏对象来变更其朝向,也可以    //通过线性插值(Quaternion.Slerp 和 Quaternion.Lerp)来    //实现游戏对象从当前朝向转到这个新生成的朝向上来。      //目标要旋转的角度    Quaternion qua;    Quaternion qub;    //旋转角度中间变量    Quaternion quc;    //旋转时间    float rotationTime = 1;    //tank底座    public GameObject bed;    //bullet子弹    public GameObject cubebullet;    //子弹发射点    public Transform tra;    // Use this for initialization    void Start()    {        //存储旋转变量        qua = Quaternion.LookRotation(Vector3.left);        qub = Quaternion.LookRotation(Vector3.right);    }    // Update is called once per frame    void Update()    {        rotationTime += Time.deltaTime;        //变换旋转方向,以实现左右旋转        if (rotationTime > 1)        {            rotationTime = 0;            quc = qub;            qub = qua;            qua = quc;        }        if (rotationTime > 1)        {            Debug.Log("发射子弹");            Debug.Log("子弹:" + cubebullet.name);        }        //由快到慢向另一个物体移动        transform.rotation = Quaternion.Lerp(transform.rotation, qub, Time.deltaTime);        //底座禁止移动        bed.transform.rotation = Quaternion.identity;    }}

分享一篇不错的文章,也与Quaternion有关

http://blog.csdn.net/lijing_hi/article/details/7272089

阅读全文
0 0
原创粉丝点击