Unity 一條線在另一條線的投影
阿新 • • 發佈:2019-02-15
不知道,大家有沒有對 Unity的座標 和 向量的關係 產生 過疑問?
其實他的座標就是向量,
這張圖裡面就有四個點 Zero, P0,P1 和 P2, 他們的關係相信大家都知道, 三角型法則, 兩個向量相加等於 第三個向量。 所以 Vercter(Zer0, P0) = Vercter(p0, p1) + Vercter(Zero, P1 ), 其他的關係 以此類推。
昨天上午需要一個功能 求一條線 在另外一天線上的 一個點:
這條綠色的線就是我要求的點;
<span style="font-size:24px;">using UnityEngine; using System.Collections; public class LineProcess : MonoBehaviour { public Transform p1, p2; public Transform p0; public Transform pZero; public Vector3 V1, V2; public Vector3 Vproject; public Vector3 VHor; // Use this for initialization void Start () { } // Update is called once per frame void Update () { V1 = p0.position - p1.position; V2 = p2.position - p1.position; Debug.DrawLine( pZero.position, p0.position, Color.magenta ); Debug.DrawLine( pZero.position, p1.position, Color.magenta ); Debug.DrawLine( pZero.position, p2.position, Color.magenta ); Debug.DrawLine(p0.position, p1.position, Color.blue); Debug.DrawLine(p1.position, p2.position, Color.gray); Debug.DrawLine(p2.position, p0.position, Color.yellow); Vproject = Vector3.Project( V1, V2 ); VHor = Vproject - V1 ; Debug.DrawLine(p0.position, VHor+ p0.position, Color.green); } } </span>