void OnDestroy() { SceneView.onSceneGUIDelegate -= OnSceneGUI; EditorApplication.hierarchyWindowChanged -= OnHierarchyChanged; SrpgMtUtils.ShowUnityGrid(true); SrpgMtUtils.SetupGizmos(false); if (_canvas != null) { DestroyImmediate(_canvas.gameObject); _canvas = null; } if (_brush != null) { DestroyImmediate(_brush.gameObject); _brush = null; } if (_currMap != null) { _currMap.lastEditedTime = DateTime.Now.Ticks; _currMap = null; } if (_currLayer != null) { _currLayer.lastEditedTime = DateTime.Now.Ticks; _currLayer = null; } }
private void SetupBrush() { string objectName = "SrpgBrush"; GameObject brushObj = GameObject.Find(objectName); if (brushObj == null) { brushObj = new GameObject(objectName); //brushObj.hideFlags = HideFlags.HideInHierarchy; _brush = brushObj.AddComponent <SrpgBrush>(); } else { _brush = brushObj.GetComponent <SrpgBrush>(); } if (_currMap != null) { _brush.SetCurrentMap(_currMap); } }
public void OnSceneGUI(SceneView sceneView, SrpgCanvas canvas, SrpgBrush brush, SrpgMap map, SrpgLayer layer) { if (canvas == null || brush == null || map == null) { return; } //_canvas = canvas; _brush = brush; _currMap = map; _currLayer = layer; _brush.ShowHide(SrpgMapTool.toolMode == SrpgMapTool.ToolMode.Edit && SrpgMapTool.editMenu == SrpgMapTool.EditMenu.Brush); if (SrpgMapTool.toolMode != SrpgMapTool.ToolMode.Edit) { return; } DrawButtons(); DoMouseEvent(); }