92 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C#
		
	
	
	
| using UnityEditor;
 | |
| using UnityEngine;
 | |
| using System.Collections;
 | |
| using System.Reflection;
 | |
| using System;
 | |
| 
 | |
| using qtools.quv.pview;
 | |
| 
 | |
| namespace qtools.quv
 | |
| {
 | |
| 	public class QUVWindow : EditorWindow
 | |
| 	{
 | |
| 		// STATIC
 | |
| 		[MenuItem ("Tools/QUVEditor")]	
 | |
| 		public static void ShowWindow () 
 | |
| 		{ 
 | |
| 			if (Resources.FindObjectsOfTypeAll<QUVWindow> ().Length > 0)
 | |
| 				return;
 | |
| 
 | |
| 			QUVWindow window = (QUVWindow)ScriptableObject.CreateInstance<QUVWindow>();
 | |
| 
 | |
|             #if UNITY_5_1 || UNITY_5_2 || UNITY_5_3_OR_NEWER
 | |
|             window.titleContent = new GUIContent("QUVEditor");
 | |
|             #else
 | |
|             window.title = "QUVEditor";
 | |
|             #endif
 | |
| 
 | |
| 			window.minSize = new Vector2(785, 473);
 | |
|             window.wantsMouseMove = true;
 | |
| 			window.Show();
 | |
| 		}
 | |
| 
 | |
| 		// PRIVATE
 | |
| 		private QUVMainView mainView;
 | |
| 		
 | |
| 		// CONSTRUCTOR
 | |
| 		void init()
 | |
| 		{			
 | |
| 			GUI.FocusControl(null);
 | |
| 
 | |
| 			mainView = new QUVMainView(this);			
 | |
| 
 | |
| 			Undo.undoRedoPerformed -= UndoRedoPerformed; 
 | |
| 			Undo.undoRedoPerformed += UndoRedoPerformed;
 | |
| 		}
 | |
| 		 
 | |
| 		// DESTRUCTOR
 | |
| 		public void OnDestroy()
 | |
| 		{
 | |
| 			Undo.undoRedoPerformed -= UndoRedoPerformed; 
 | |
|             SceneView.onSceneGUIDelegate -= onSceneGUIDelegate;
 | |
| 
 | |
|             if (mainView != null) 
 | |
|             {
 | |
|                 mainView.dispose();
 | |
| 			    mainView = null;
 | |
|             }
 | |
|         }
 | |
| 
 | |
| 		// OVERRIDE
 | |
| 		void OnFocus() 
 | |
| 		{
 | |
| 			SceneView.onSceneGUIDelegate -= onSceneGUIDelegate;
 | |
| 			SceneView.onSceneGUIDelegate += onSceneGUIDelegate;
 | |
| 			OnSelectionChange();
 | |
|         }
 | |
| 
 | |
| 		void onSceneGUIDelegate(SceneView sceneView) 
 | |
| 		{
 | |
|             if (mainView.onSceneGUIDelegate(sceneView))
 | |
|                 mainView.Repaint();
 | |
|         }
 | |
| 
 | |
|         void OnGUI() 
 | |
| 		{
 | |
|             if (mainView == null || !mainView.isInited()) init();		
 | |
|             mainView.update((int)position.width, (int)position.height);
 | |
| 		}
 | |
| 
 | |
| 		void OnSelectionChange() 
 | |
| 		{
 | |
| 			if (mainView == null) init();		
 | |
| 			else mainView.selectedGameObjectChanged();
 | |
| 		}
 | |
| 
 | |
| 		public void UndoRedoPerformed()
 | |
| 		{
 | |
| 			if (mainView == null) init();
 | |
|             else mainView.undoRedoPerformed();		
 | |
| 		}
 | |
| 	}
 | |
| } |