protected override void OnSceneGUI() { base.OnSceneGUI(); SplineProjector user = (SplineProjector)target; for (int i = 0; i < user.triggers.Length; i++) { if (SplineEditorHandles.DrawTrigger(user.triggers[i], user)) { trigger = i; Repaint(); } } if (user.computer == null) { return; } if (Application.isPlaying) { return; } Vector3 projectPos = user.projectTarget.position; if (user.autoProject && lastPos != projectPos) { lastPos = projectPos; user.CalculateProjection(); } if (!user.autoProject) { return; } if (user.projectResult == null) { return; } if (user.target == null) { Handles.color = Color.white; Handles.DrawLine(user.transform.position, user.projectResult.position); Handles.SphereCap(0, user.projectResult.position, Quaternion.LookRotation(user.projectResult.direction), HandleUtility.GetHandleSize(user.projectResult.position) * 0.2f); } }
protected override void OnSceneGUI() { base.OnSceneGUI(); SplineFollower user = (SplineFollower)target; for (int i = 0; i < user.triggers.Length; i++) { if (SplineEditorHandles.DrawTrigger(user.triggers[i], user)) { trigger = i; Repaint(); } } if (Application.isPlaying) { if (!user.autoFollow) { Handles.color = SplineEditorGUI.selectionColor; Handles.DrawLine(user.transform.position, user.followResult.position); Handles.SphereCap(0, user.followResult.position, Quaternion.LookRotation(user.followResult.direction), HandleUtility.GetHandleSize(user.followResult.position) * 0.2f); Handles.color = Color.white; } return; } if (user.computer == null) { return; } if (user.findStartPoint) { SplineResult result = GetFollowResult(user, user.address.Project(user.transform.position, 4, user.clipFrom, user.clipTo)); Handles.DrawLine(user.transform.position, result.position); Handles.SphereCap(0, result.position, Quaternion.LookRotation(result.direction), HandleUtility.GetHandleSize(result.position) * 0.2f); } else if (!user.autoFollow) { SplineResult result = GetFollowResult(user, user.startPercent); Handles.DrawLine(user.transform.position, result.position); Handles.SphereCap(0, result.position, Quaternion.LookRotation(result.direction), HandleUtility.GetHandleSize(result.position) * 0.2f); } }