Vector3 ProjectRunwayPointToApron(Vector3 input) { Vector2 inPos = new Vector2(input.x, input.z); Vector3 runDir = runway.transform.forward; Vector2 inDir = new Vector2(-runDir.z, runDir.x); Vector2 apronPos = new Vector2(transform.position.x, transform.position.z); Vector2 apronDir = new Vector2(transform.forward.x, transform.forward.z); Vector2 intersection = Vector2.zero; Vector2Utils.RayRayIntersection(inPos, inDir, apronPos, apronDir, ref intersection); return(new Vector3(intersection.x, 0, intersection.y)); }
public Vector3 GetGateApronPoint(Gate gate) { Vector2 point; Vector2 p1 = new Vector2(gate.transform.position.x, gate.transform.position.z); Vector2 p2 = new Vector2( (gate.transform.position + gate.transform.forward * 10).x, (gate.transform.position + gate.transform.forward * 10).z); Vector2 p3 = new Vector2(transform.position.x, transform.position.z); Vector2 p4 = new Vector2( (transform.position + transform.forward * 10).x, (transform.position + transform.forward * 10).z); Vector2Utils.LineIntersection(p1, p2, p3, p4, out point); Vector3 p = new Vector3(point.x, 0, point.y); return(p); }