public override void OnInspectorGUI() { base.OnInspectorGUI(); ActionPreview preview = target as ActionPreview; EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Focus Position")) { if (preview.m_bornPos != Vector3.zero) { GameObject go = new GameObject(); go.transform.position = preview.m_bornPos; Selection.activeGameObject = go; SceneView.lastActiveSceneView.FrameSelected(); DestroyImmediate(go); Selection.activeGameObject = preview.gameObject; } } if (GUILayout.Button("Cast Position")) { var view = SceneView.currentDrawingSceneView ?? SceneView.lastActiveSceneView; if (view != null) { var camera = view.camera; if (camera != null) { var ray = camera.ScreenPointToRay(new Vector3(view.position.width * 0.5f, view.position.height * 0.5f, 0.0f)); RaycastHit hit; if (Physics.Raycast(ray, out hit)) { preview.m_bornPos = hit.point; } } } } EditorGUILayout.EndHorizontal(); }
private void Awake() { preview = GameObject.Find("ActionPreviewManager").GetComponent <ActionPreview>(); }