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 SetupCanvas() { string objectName = "SrpgCanvas"; GameObject canvasObj = GameObject.Find(objectName); if (canvasObj == null) { canvasObj = GameObject.CreatePrimitive(PrimitiveType.Quad); canvasObj.name = objectName; //canvasObj.hideFlags = HideFlags.HideInHierarchy; canvasObj.GetComponent <MeshRenderer>().enabled = false; _canvas = canvasObj.AddComponent <SrpgCanvas>(); } else { _canvas = canvasObj.GetComponent <SrpgCanvas>(); } if (_currMap != null) { _canvas.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(); }