Beispiel #1
0
        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);
            }
        }