#pragma warning restore 414 public void OnSceneGUI() { _targetPoint = (target as AutoUpdatePointPosition); if (_targetPoint == null || !_toolActive) { return; } #if UNITY_EDITOR var newEvent = Event.current; if (_positionChanged && newEvent.type == EventType.MouseUp && newEvent.button == 0 && _targetPoint.spawnPointTransform != null) { Undo.RecordObject(target, $"Changed {_targetPoint.positionName}'s Position"); _targetPoint.pointPosition = _newPosition; var realPoints = _targetPoint.spawnPointTransform.FindProperty("spawnPoints"); foreach (SerializedProperty realPoint in realPoints) { if (realPoint.displayName != _targetPoint.positionName) { continue; } realPoint.FindPropertyRelative("spawnPointTransform").vector3Value = _newPosition; Debug.Log($"Updated {_targetPoint.positionName}'s Position"); break; } _targetPoint.spawnPointTransform.ApplyModifiedProperties(); if (_window != null) { _window.Repaint(); } _positionChanged = false; } #endif EditorGUI.BeginChangeCheck(); _newPosition = Handles.PositionHandle(_targetPoint.transform.position, Quaternion.identity); if (!EditorGUI.EndChangeCheck()) { return; } _positionChanged = true; _targetPoint.transform.position = _newPosition; }
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); }