| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 | 
							- // Amplify Shader Editor - Visual Shader Editing Tool
 
- // Copyright (c) Amplify Creations, Lda <info@amplify.pt>
 
- using System.IO;
 
- using System.Reflection;
 
- using System;
 
- using System.Collections.Generic;
 
- using UnityEngine;
 
- using UnityEditor;
 
- namespace AmplifyShaderEditor
 
- {
 
- 	[Serializable]
 
- 	public class TipsWindow : MenuParent
 
- 	{
 
- 		private static bool m_showWindow = false;
 
- 		private bool m_dontShowAtStart = false;
 
- 		private static List<string> AllTips = new List<string>() {
 
- 			"You can press W to toggle between a flat and color coded Wires and ports.",
 
- 			"You can press CTRL+W to toggle between multiline or singleline Wire connections.",
 
- 			"You can press P to globally open all node Previews.",
 
- 			"You can press F to Focus your selection, single tap centers the selection while double tap it to also zooms on in.",
 
- 			"You can press CTRL+F to open a search bar and Find a node by it's title",
 
- 			"You can press SPACE to open a context menu to add a new node and press TAB or SHIFT+TAB tocycle between the found nodes",
 
- 			"You can remove a node without breaking the graph connections by pressing ALT and then dragging the node out",
 
- 			"You can switch two input connections holding CTRL while dragging one input connection into the other",
 
- 		};
 
- 		int m_currentTip = 0;
 
- 		public TipsWindow( AmplifyShaderEditorWindow parentWindow ) : base( parentWindow, 0, 0, 0, 64, "Tips", MenuAnchor.TOP_LEFT, MenuAutoSize.NONE )
 
- 		{
 
- 			//m_dontShowAtStart = EditorPrefs.GetBool( "DontShowTipAtStart", false );
 
- 		}
 
- 		public override void Draw( Rect parentPosition, Vector2 mousePosition, int mouseButtonId, bool hasKeyboadFocus )
 
- 		{
 
- 			base.Draw( parentPosition, mousePosition, mouseButtonId, hasKeyboadFocus );
 
- 			DrawWindow( mousePosition );
 
- 		}
 
- 		public void DrawWindow( Vector2 mousePosition )
 
- 		{
 
- 			if( !m_showWindow )
 
- 				return;
 
- 			Rect windowRect = new Rect( 0, 0, Screen.width, Screen.height );
 
- 			Vector2 center = windowRect.center;
 
- 			windowRect.size = new Vector2( 300, 200 );
 
- 			windowRect.center = center;
 
- 			Color temp = GUI.color;
 
- 			GUI.color = Color.white;
 
- 			GUI.Label( windowRect, string.Empty, GUI.skin.FindStyle( "flow node 0" ) );
 
- 			if( Event.current.type == EventType.MouseDown && !windowRect.Contains( mousePosition ) )
 
- 				m_showWindow = false;
 
- 			Rect titleRect = windowRect;
 
- 			titleRect.height = 35;
 
- 			GUI.Label( titleRect, "Quick Tip!", GUI.skin.FindStyle( "TL Selection H2" ) );
 
- 			Rect button = titleRect;
 
- 			button.size = new Vector2( 14, 14 );
 
- 			button.y += 2;
 
- 			button.x = titleRect.xMax - 16;
 
- 			if( GUI.Button( button, string.Empty, GUI.skin.FindStyle( "WinBtnClose" ) ) )
 
- 				CloseWindow();
 
- 			button.y += 100;
 
- 			if( GUI.Button( button, ">" ) )
 
- 			{
 
- 				m_currentTip++;
 
- 				if( m_currentTip >= AllTips.Count )
 
- 					m_currentTip = 0;
 
- 			}
 
- 			
 
- 			Rect textRect = windowRect;
 
- 			textRect.yMin = titleRect.yMax;
 
- 			GUI.Label( textRect, AllTips[ m_currentTip ], GUI.skin.FindStyle( "WordWrappedLabel" ) );
 
- 			Rect footerRect = windowRect;
 
- 			footerRect.yMin = footerRect.yMax - 18;
 
- 			footerRect.x += 3;
 
- 			GUI.Label( footerRect, (m_currentTip + 1) + " of " + AllTips.Count + " tips" );
 
- 			footerRect.x += 170;
 
- 			EditorGUI.BeginChangeCheck();
 
- 			m_dontShowAtStart = GUI.Toggle( footerRect, m_dontShowAtStart, "Don't show at start" );
 
- 			if( EditorGUI.EndChangeCheck() )
 
- 			{
 
- 				EditorPrefs.SetBool( "DontShowTipAtStart", m_dontShowAtStart );
 
- 			}
 
- 			GUI.color = temp;
 
- 			if( Event.current.type == EventType.MouseDown && windowRect.Contains( mousePosition ) )
 
- 			{
 
- 				Event.current.Use();
 
- 				ParentWindow.MouseInteracted = true;
 
- 			}
 
- 		}
 
- 		public override void Destroy()
 
- 		{
 
- 			base.Destroy();
 
- 		}
 
- 		public static void ShowWindow( bool toggle = true )
 
- 		{
 
- 			if( toggle )
 
- 				m_showWindow = !m_showWindow;
 
- 			else
 
- 				m_showWindow = true;
 
- 			//Test();
 
- 			//ExportCompiledShaders();
 
- 		}
 
- 		//public static void Test()
 
- 		//{
 
- 		//	Shader shader = UIUtils.CurrentWindow.CurrentGraph.CurrentShader;
 
- 		//	int mode = EditorPrefs.GetInt( "ShaderInspectorPlatformMode", 1 );
 
- 		//	int mask = EditorPrefs.GetInt( "ShaderInspectorPlatformMask", 524287 );
 
- 		//	bool strip = EditorPrefs.GetInt( "ShaderInspectorVariantStripping", 1 ) == 0;
 
- 		//	ShaderUtilEx.OpenCompiledShader( shader, mode, mask, strip );
 
- 		//}
 
- 		//public static void ExportCompiledShaders()
 
- 		//{
 
- 		//	Shader shader = UIUtils.CurrentWindow.CurrentGraph.CurrentShader;
 
- 		//	string shaderPath = AssetDatabase.GetAssetPath( shader );
 
- 		//	SerializedObject so = new SerializedObject( shader );
 
- 		//	SerializedProperty prop = so.FindProperty( "m_Script" );
 
- 		//	var compiledShaderString = prop.stringValue;
 
- 		//	Directory.CreateDirectory( Application.dataPath + "/../ShaderSource/" );
 
- 		//	if( compiledShaderString == null )
 
- 		//		return;
 
- 		//	var outputPath = Application.dataPath + "/../ShaderSource/" + Path.GetFileNameWithoutExtension( shaderPath ) + "_compiled.shader";
 
- 		//	var sw = File.CreateText( outputPath );
 
- 		//	sw.Write( compiledShaderString );
 
- 		//	sw.Close();
 
- 		//}
 
- 		public static void CloseWindow()
 
- 		{
 
- 			m_showWindow = false;
 
- 		}
 
- 	}
 
- }
 
 
  |