unity角度向量計算
有時候會需要知道兩個物體之間角度,偵測面對怪物角度
或是計算一些操控的方向性。
向量的內積公式,如下:
![](https://2.share.photo.xuite.net/isdp2008am/127fc05/9865457/438780180_m.jpg)
unity api : Vector2.Dot(A,B) //A,B是vector2
Dot 的算式為
假設 A 向量 = (x, y) , B 向量 = (a, b)
A dot B = (x * a) + (y * b) ;
為了去除公式中的 A長度 和 B長度 參數的影響 把A和B長度 Normalize
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CalculateAngle : MonoBehaviour { //簡易計算角度差 public Vector2 GameObjVector1=new Vector2(1, 0); public Vector2 GameObjVector2 = new Vector2(0,1); // Use this for initialization void Start () { GameObjVector1.Normalize(); GameObjVector2.Normalize(); float angle = Vector2.Dot(GameObjVector1, GameObjVector2); Debug.Log("angle"+angle); } // Update is called once per frame void Update () { } }
angle=cos角度介於1~-1
參考資料
https://forum.gamer.com.tw/Co.php?bsn=60602&sn=1224
https://docs.unity3d.com/ScriptReference/Vector3.Dot.html
No comments:
Post a Comment