public void OnSceneRender(SceneView sceneView, SceneRenderState state, Vector3 mousePosition) { if (!isActive) { return; } if (state == SceneRenderState.Exit) { return; } DrawGizmoCube(mousePosition, Vector3.one, Color.green); if ((Event.current.type == EventType.MouseDown) && Event.current.button == 0 && Event.current.alt == false && Event.current.shift == false && Event.current.control == false) { if (toolsEventHandler != null) { toolsEventHandler(mousePosition); } } }
public void OnSceneRender(SceneView sceneView, SceneRenderState state, Vector3 mousePosition) { if (!isActive) { return; } if (state == SceneRenderState.Exit) { return; } if (m_resObject == null) { DrawGizmoCube(mousePosition, Vector3.one, Color.red); return; } if (m_grid == null) { var go = GameObject.Instantiate(m_resObject.prefab) as GameObject; go.name = "brush-tools-gameobject"; go.isStatic = true; go.hideFlags = HideFlags.HideAndDontSave; m_grid = go.AddComponent <Grid>(); m_grid.resId = m_resObject.id; } m_grid.position = mousePosition; m_grid.positionOffset = m_positionOffset; m_grid.angle = Vector3.zero; m_grid.angleOffset = m_angleOffset; m_grid.scale = m_grid.transform.localScale; m_grid.scaleOffset = Vector3.zero; m_grid.transform.position = mousePosition + m_anchorOffset + m_positionOffset; m_grid.transform.localEulerAngles = m_angleOffset; if (Event.current.button == 0 && Event.current.alt == false && Event.current.shift == false && Event.current.control == false && gird != null) { if (toolsEventHandler != null) { toolsEventHandler(Event.current.type, m_grid); } } SceneView.RepaintAll(); }
public void OnSceneGUI(SceneView sceneView) { if (Event.current == null) { return; } Vector2 mp = new Vector2(Event.current.mousePosition.x, Event.current.mousePosition.y); Ray ray = HandleUtility.GUIPointToWorldRay(mp); RaycastHit hit; if (Physics.Raycast(ray, out hit, Mathf.Infinity, 1 << LayerMask.NameToLayer(typeof(TemplateGrid).Name)) == true) { Vector3 shiftOffset = transform.position; shiftOffset.x = shiftOffset.x - (int)shiftOffset.x; shiftOffset.y = shiftOffset.y - (int)shiftOffset.y; shiftOffset.z = shiftOffset.z - (int)shiftOffset.z; m_mousePosition.x = Mathf.Round(((hit.point.x + shiftOffset.x) - hit.normal.x * 0.001f) / 1) * 1 - shiftOffset.x; m_mousePosition.z = Mathf.Round(((hit.point.z + shiftOffset.z) - hit.normal.z * 0.001f) / 1) * 1 - shiftOffset.z; m_mousePosition.y = height + transform.position.y; if (m_sceneRenderState == SceneRenderState.Exit) { m_sceneRenderState = SceneRenderState.Enter; if (SceneRenderHandler != null) { SceneRenderHandler(sceneView, m_sceneRenderState, m_mousePosition); } } else { if (SceneRenderHandler != null) { SceneRenderHandler(sceneView, SceneRenderState.Render, m_mousePosition); } } } else { if (m_sceneRenderState == SceneRenderState.Enter) { m_sceneRenderState = SceneRenderState.Exit; if (SceneRenderHandler != null) { SceneRenderHandler(sceneView, m_sceneRenderState, m_mousePosition); } } } }
public void OnSceneRender(SceneView sceneView, SceneRenderState state, Vector3 mousePosition) { if (!isActive) { return; } if (state == SceneRenderState.Exit) { return; } // 选择提示框 if (m_selectState == SelectorToolsState.Selected) { var label = string.Format("Position : {0}\nRotation : {1}", m_selectGrid.transform.position.ToString(), m_selectGrid.transform.localEulerAngles.ToString()); DrawGizmoPosition(m_selectGrid.transform.position + Vector3.up, m_selectGrid.transform.rotation, label); } else { DrawGizmoCube(mousePosition, Vector3.one, Color.yellow); } // 选择状态 if ((Event.current.type == EventType.MouseDown) && Event.current.button == 0 && Event.current.alt == false && Event.current.shift == false && Event.current.control == false) { if (m_selectGrid != null) { Selection.activeGameObject = null; } m_selectGrid = Environment.Inst.GetGrid(mousePosition, CubeWorldEditorWindow.Inst.area); m_selectState = m_selectGrid != null ? SelectorToolsState.Selected : SelectorToolsState.Unselected; if (toolsEventHandler != null) { toolsEventHandler(m_selectGrid); } } }
private void OnSceneRender(SceneView sceneView, SceneRenderState state, Vector3 mousePosition) { switch (sceneToolsType) { case SceneToolsType.Selector: selectorTools.OnSceneRender(sceneView, state, mousePosition); selectorWindow.OnSceneGUI(sceneView); break; case SceneToolsType.Brush: brushTools.OnSceneRender(sceneView, state, mousePosition); brushWindow.OnSceneGUI(sceneView); break; case SceneToolsType.Sucker: suckerTools.OnSceneRender(sceneView, state, mousePosition); break; case SceneToolsType.Erase: eraseTools.OnSceneRender(sceneView, state, mousePosition); break; } }
public void ShowView() { m_isShowView = true; m_sceneRenderState = SceneRenderState.Exit; }