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

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;
    }
}


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

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

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

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