void OnDrawGizmos() { Transform[] trans = GetTransforms(); if (trans.Length < 2) { return; } SplineInterpolator interp = GetComponent(typeof(SplineInterpolator)) as SplineInterpolator; SetupSplineInterpolator(interp, trans); interp.StartInterpolation(null, eRotationMode.PATH_ANGLE, WrapMode); Vector3 prevPos = trans[0].position; //Quaternion prevRot = trans [0].rotation; int numberOfLines = 500; for (int c = 1; c <= numberOfLines; c++) { float currTime = c * Duration / numberOfLines; Vector3 currPos = interp.GetHermiteAtTime(currTime); Quaternion currRot = interp.GetRotationAtTime(currTime); //float mag = (currPos-prevPos).magnitude * 2; Gizmos.color = new Color(0, 0, 1, 1); Gizmos.DrawLine(prevPos, currPos); Vector3 dP = currPos - prevPos; Transform _transform = new GameObject().transform; _transform.rotation = currRot; Quaternion armDir = Quaternion.LookRotation(dP, _transform.up); Vector3 rightArm = armDir * Vector3.right; Vector3 leftArm = armDir * Vector3.left; Gizmos.color = new Color(0, 1, 0, 1); Gizmos.DrawRay(currPos, rightArm); Gizmos.DrawRay(currPos, leftArm); prevPos = currPos; //prevRot = currRot; DestroyImmediate(_transform.gameObject); } }