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();		
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 |