private void AddCrateButton()
        {
            if (GUILayout.Button("Crate"))
            {
                _target.createPositionalObjects = true;
            }
            if (_target.createPositionalObjects)
            {
                SpawnDataOfLevel_InspectorWindow.Open(_target.data);

                var PositionalObjectsExists = GameObject.Find("PositionalObjects (Temporary)");

                if (PositionalObjectsExists == null)
                {
                    selectedObject = Selection.activeGameObject;
                    if (_target.autoLockInspector)
                    {
                        ActiveEditorTracker.sharedTracker.isLocked = true;
                    }

                    var spawnPoints = _serializedObject.FindProperty("spawnPoints");
                    var parent      = new GameObject("PositionalObjects (Temporary)");
                    parent.transform.parent = _target.gameObject.transform;

                    for (var i = 0; i < spawnPoints.arraySize; i++)
                    {
                        var realPoint = spawnPoints.GetArrayElementAtIndex(i);
                        var point     = new GameObject(realPoint.displayName);
                        point.transform.parent      = parent.transform;
                        point.transform.position    = realPoint.FindPropertyRelative("spawnPointTransform").vector3Value;
                        point.transform.localScale /= 2;

                        var labelComp = point.AddComponent <DrawPointLabel>();
                        labelComp.labelText   = realPoint.displayName;
                        labelComp.labelStyle  = _target.labelStyle;
                        labelComp.labelOffset = _target.labelVerticalOffset;

                        var rendererComp = point.AddComponent <MeshRenderer>();
                        rendererComp.material = _target.positionItemMaterial;

                        var meshComp = point.AddComponent <MeshFilter>();
                        meshComp.mesh = _target.positionItemMesh;

                        var updaterComp = point.AddComponent <AutoUpdatePointPosition>();
                        updaterComp.positionName = realPoint.displayName;
#if UNITY_EDITOR
                        updaterComp.spawnPointTransform = _serializedObject;
#endif
                        updaterComp.pointPosition = point.transform.position;


                        SelectObject(point);
                    }
                }
            }
            _target.createPositionalObjects = false;
        }
        private void OpenEditor()
        {
            if (!GUILayout.Button("Open Spawn Data Editor"))
            {
                return;
            }

            SpawnDataOfLevel_InspectorWindow.Open(_target.data);
        }
Пример #3
0
        public static bool OpenEditor(int instanceId, int line)
        {
            var obj = EditorUtility.InstanceIDToObject(instanceId) as LevelSpawnData;

            if (obj != null)
            {
                SpawnDataOfLevel_InspectorWindow.Open(obj);
            }

            return(false);
        }
Пример #4
0
        public override void OnInspectorGUI()
        {
            if (GUILayout.Button("Open Editor"))
            {
                SpawnDataOfLevel_InspectorWindow.Open((LevelSpawnData)target);
            }
            if (GUILayout.Button("Toggle Default Inspector"))
            {
                showInspector = !showInspector;
            }

            if (showInspector)
            {
                base.OnInspectorGUI();
            }
        }
        private void OnEnable()
        {
            _targetPoint = (target as AutoUpdatePointPosition);
            _lastTool    = UnityEditor.Tools.current;
            UnityEditor.Tools.current = Tool.None;
            _toolActive             = true;
            Undo.undoRedoPerformed += UndoCallback;

            if (!EditorWindow.HasOpenInstances <SpawnDataOfLevel_InspectorWindow>())
            {
                return;
            }

            _window = (SpawnDataOfLevel_InspectorWindow)EditorWindow.GetWindow(typeof(SpawnDataOfLevel_InspectorWindow));
            if (_targetPoint == null)
            {
                return;
            }
            _window.EditNewPoint(_targetPoint.positionName);
        }