不知道,大家有没有对 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>