示例#1
0
        public void OnSceneGUI()
        {
            var triggerManager = (TriggerManager)target;

            if (target == null)
            {
                return;
            }

            _triggers = Utilities.GetTriggersFromChildren(triggerManager.gameObject, true);

            var handleSize = HandleUtility.GetHandleSize(Vector3.zero) * 0.2f;
            var snapValue  = EditorPrefs.GetFloat(EditorPreferences.SnapKey, EditorPreferences.SnapValue);
            var snapSize   = new Vector3(snapValue, snapValue, snapValue);

            // Draw Triggers
            for (int i = 0; i < _triggers.Count; i++)
            {
                var trigger = _triggers[i];
                GUIUtilities.DrawTriggerOnScene(trigger, handleSize, snapSize, true);
            }

            // Sync editor values with scene if trigger is displayed
            if (_currentTriggerIndex != -1)
            {
                Repaint();
            }
        }
示例#2
0
        public void OnEnable()
        {
            var triggerManager = (TriggerManager)target;

            if (target == null)
            {
                return;
            }

            _triggers = Utilities.GetTriggersFromChildren(triggerManager.gameObject, true);
            _rails    = Utilities.GetRailsFromChildren(triggerManager.gameObject, true);
        }
示例#3
0
        public void OnSceneGUI()
        {
            var railcam2DCore = (Railcam2DCore)target;

            if (target == null)
            {
                return;
            }

            var handleSize = HandleUtility.GetHandleSize(Vector3.zero) * 0.2f;
            var snapValue  = EditorPrefs.GetFloat(EditorPreferences.SnapKey, EditorPreferences.SnapValue);
            var snapSize   = new Vector3(snapValue, snapValue, snapValue);

            // If no Rail Manager component on game object, draw uneditable rails
            if (railcam2DCore.GetComponent <RailManager>() == null)
            {
                _rails = Utilities.GetRailsFromChildren(railcam2DCore.gameObject, true);

                for (int i = 0; i < _rails.Count; i++)
                {
                    var rail = _rails[i];
                    if (rail.Nodes.Count < 2)
                    {
                        continue;
                    }

                    GUIUtilities.DrawRailOnScene(rail, handleSize, snapSize);
                }
            }

            // If no Trigger Manager component on game object, draw uneditable triggers
            if (railcam2DCore.GetComponent <TriggerManager>() == null)
            {
                _triggers = Utilities.GetTriggersFromChildren(railcam2DCore.gameObject, true);

                for (int i = 0; i < _triggers.Count; i++)
                {
                    var currentTrigger = _triggers[i];
                    GUIUtilities.DrawTriggerOnScene(currentTrigger, handleSize, snapSize);
                }
            }
        }
示例#4
0
        public override void OnInspectorGUI()
        {
            var triggerManager = (TriggerManager)target;

            if (target == null)
            {
                return;
            }

            _triggers = Utilities.GetTriggersFromChildren(triggerManager.gameObject, true);
            _rails    = Utilities.GetRailsFromChildren(triggerManager.gameObject, true);

            // Prevents index out of range exceptions if the adding of a trigger is undone
            // while its values are displayed in the editor
            if (_currentTriggerIndex >= _triggers.Count)
            {
                _currentTriggerIndex = -1;
            }

            // Occurs when values have been changed that are represented visually on the Scene View
            if (_repaintScene)
            {
                SceneView.RepaintAll();
                _repaintScene = false;
            }

            // Editor Layout
            EditorGUILayout.Space();
            AddNewTriggerButton(triggerManager);
            ListTriggerButtons();
            EditorGUILayout.Space();
            EditorGUILayout.Space();
            InitializeMainEditor(triggerManager);
            EditorGUILayout.Space();
            EditorGUILayout.Space();
            EditorGUILayout.Space();
        }
示例#5
0
 /// <summary>Sets a list of all Trigger components attached to this object's children except for Generic Triggers.</summary>
 private void SetTriggers()
 {
     _triggers = Utilities.GetTriggersFromChildren(gameObject, false);
 }