Monday, September 11, 2017

Unity 物件角度計算量



unity角度向量計算

有時候會需要知道兩個物體之間角度,偵測面對怪物角度
或是計算一些操控的方向性。





向量的內積公式,如下:






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