Unity游戏开发中的向量

using UnityEngine;

public class Test : MonoBehaviour {

        public Vector3 vector;
    
	void Update () {

        //向量叉乘
        //应用:判断两个兴亮的相对位置
        //a叉乘b,如果所得向量的y值小于零,说明b处于a的逆时针方向
        //Unity中叉乘向量的方向,使用左右定则
        vector = Vector3.Cross(new Vector3(transform.position.x, 0.0f, transform.position.z), 
                                              new Vector3(Camera.main.transform.position.x, 0.0f, Camera.main.transform.position.z));
        Debug.DrawLine(Vector3.zero, vector * 1000, Color.red);
       
    }
}

Unity游戏开发中的向量_第1张图片

        //向量点乘
        //应用:计算两向量的夹角

        float dot = Vector3.Dot(new Vector3(transform.position.x, 0.0f, transform.position.z).normalized,
                                               new Vector3(Camera.main.transform.position.x, 0.0f, Camera.main.transform.position.z).normalized);
        angle = Mathf.Acos(dot) * Mathf.Rad2Deg;
        

 Unity游戏开发中的向量_第2张图片

 

 Unity游戏开发中的向量_第3张图片

 

你可能感兴趣的:(Unity游戏开发中的向量)