public static ProjectPointOnLine ( Vector3 linePoint, Vector3 lineVec, Vector3 point ) : Vector3 | ||
linePoint | Vector3 | |
lineVec | Vector3 | |
point | Vector3 | |
Результат | Vector3 |
public override Vector3 NearestPoint(PointerEventData data) { Ray lineRay = AttachPointRay(); Vector3 linePoint = Math3D.ProjectPointOnLine(lineRay.origin, lineRay.direction, data.pointerCurrentRaycast.worldPosition); return(linePoint); }
private Vector3 GetHelperPoint(Vector3 roundedPoint, Vector3 halfSegment, Vector3 puntVert, Vector3 segment) { Vector3 middleHalfSegment = GetMiddlePoint(roundedPoint, halfSegment); Vector3 projectedMiddleHalfToSegment = Math3D.ProjectPointOnLine(puntVert, segment.normalized, middleHalfSegment); Vector3 helperPoint = GetMiddlePoint(middleHalfSegment, projectedMiddleHalfToSegment); return(helperPoint); }
/// <summary> /// Adds the item raycast or updates it if already in list. /// </summary> /// <returns> Returns the midpoint of where Item was Added. </returns> /// <param name="itemRaycast">Item raycast.</param> /// <param name="hitPoint">Hit point.</param> public Vector3 UpdateItem(Item item, Vector3 hitPoint) { //Retieve or Create a new duplicate data SplineReplicator replicator = SplineReplicatorList.Find(r => r.Item == item); SplineReplicatorList.Remove(replicator); SetStartEndPoint(); Ray lineRay = AttachPointRay(); Vector3 linePoint = Math3D.ProjectPointOnLine(lineRay.origin, lineRay.direction, hitPoint); InsertReplicator(replicator, linePoint); SetStartEndPoint(); SetColliderSize(); return(replicator.DuplicateRangeMidPoint()); }