summaryrefslogtreecommitdiff
path: root/Other/CADEMO/Assets/TutorialInfo/Scripts
diff options
context:
space:
mode:
Diffstat (limited to 'Other/CADEMO/Assets/TutorialInfo/Scripts')
-rw-r--r--Other/CADEMO/Assets/TutorialInfo/Scripts/Editor.meta9
-rw-r--r--Other/CADEMO/Assets/TutorialInfo/Scripts/Editor/ReadmeEditor.cs158
-rw-r--r--Other/CADEMO/Assets/TutorialInfo/Scripts/Editor/ReadmeEditor.cs.meta12
-rw-r--r--Other/CADEMO/Assets/TutorialInfo/Scripts/Readme.cs14
-rw-r--r--Other/CADEMO/Assets/TutorialInfo/Scripts/Readme.cs.meta12
5 files changed, 205 insertions, 0 deletions
diff --git a/Other/CADEMO/Assets/TutorialInfo/Scripts/Editor.meta b/Other/CADEMO/Assets/TutorialInfo/Scripts/Editor.meta
new file mode 100644
index 0000000..f59f099
--- /dev/null
+++ b/Other/CADEMO/Assets/TutorialInfo/Scripts/Editor.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 3ad9b87dffba344c89909c6d1b1c17e1
+folderAsset: yes
+timeCreated: 1475593892
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Other/CADEMO/Assets/TutorialInfo/Scripts/Editor/ReadmeEditor.cs b/Other/CADEMO/Assets/TutorialInfo/Scripts/Editor/ReadmeEditor.cs
new file mode 100644
index 0000000..2e59477
--- /dev/null
+++ b/Other/CADEMO/Assets/TutorialInfo/Scripts/Editor/ReadmeEditor.cs
@@ -0,0 +1,158 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEditor;
+using System;
+using System.IO;
+using System.Reflection;
+
+[CustomEditor(typeof(Readme))]
+[InitializeOnLoad]
+public class ReadmeEditor : Editor {
+
+ static string kShowedReadmeSessionStateName = "ReadmeEditor.showedReadme";
+
+ static float kSpace = 16f;
+
+ static ReadmeEditor()
+ {
+ EditorApplication.delayCall += SelectReadmeAutomatically;
+ }
+
+ static void SelectReadmeAutomatically()
+ {
+ if (!SessionState.GetBool(kShowedReadmeSessionStateName, false ))
+ {
+ var readme = SelectReadme();
+ SessionState.SetBool(kShowedReadmeSessionStateName, true);
+
+ if (readme && !readme.loadedLayout)
+ {
+ LoadLayout();
+ readme.loadedLayout = true;
+ }
+ }
+ }
+
+ static void LoadLayout()
+ {
+ var assembly = typeof(EditorApplication).Assembly;
+ var windowLayoutType = assembly.GetType("UnityEditor.WindowLayout", true);
+ var method = windowLayoutType.GetMethod("LoadWindowLayout", BindingFlags.Public | BindingFlags.Static);
+ method.Invoke(null, new object[]{Path.Combine(Application.dataPath, "TutorialInfo/Layout.wlt"), false});
+ }
+
+ [MenuItem("Tutorial/Show Tutorial Instructions")]
+ static Readme SelectReadme()
+ {
+ var ids = AssetDatabase.FindAssets("Readme t:Readme");
+ if (ids.Length == 1)
+ {
+ var readmeObject = AssetDatabase.LoadMainAssetAtPath(AssetDatabase.GUIDToAssetPath(ids[0]));
+
+ Selection.objects = new UnityEngine.Object[]{readmeObject};
+
+ return (Readme)readmeObject;
+ }
+ else
+ {
+ Debug.Log("Couldn't find a readme");
+ return null;
+ }
+ }
+
+ protected override void OnHeaderGUI()
+ {
+ var readme = (Readme)target;
+ Init();
+
+ var iconWidth = Mathf.Min(EditorGUIUtility.currentViewWidth/3f - 20f, 128f);
+
+ GUILayout.BeginHorizontal("In BigTitle");
+ {
+ GUILayout.Label(readme.icon, GUILayout.Width(iconWidth), GUILayout.Height(iconWidth));
+ GUILayout.Label(readme.title, TitleStyle);
+ }
+ GUILayout.EndHorizontal();
+ }
+
+ public override void OnInspectorGUI()
+ {
+ var readme = (Readme)target;
+ Init();
+
+ foreach (var section in readme.sections)
+ {
+ if (!string.IsNullOrEmpty(section.heading))
+ {
+ GUILayout.Label(section.heading, HeadingStyle);
+ }
+ if (!string.IsNullOrEmpty(section.text))
+ {
+ GUILayout.Label(section.text, BodyStyle);
+ }
+ if (!string.IsNullOrEmpty(section.linkText))
+ {
+ if (LinkLabel(new GUIContent(section.linkText)))
+ {
+ Application.OpenURL(section.url);
+ }
+ }
+ GUILayout.Space(kSpace);
+ }
+ }
+
+
+ bool m_Initialized;
+
+ GUIStyle LinkStyle { get { return m_LinkStyle; } }
+ [SerializeField] GUIStyle m_LinkStyle;
+
+ GUIStyle TitleStyle { get { return m_TitleStyle; } }
+ [SerializeField] GUIStyle m_TitleStyle;
+
+ GUIStyle HeadingStyle { get { return m_HeadingStyle; } }
+ [SerializeField] GUIStyle m_HeadingStyle;
+
+ GUIStyle BodyStyle { get { return m_BodyStyle; } }
+ [SerializeField] GUIStyle m_BodyStyle;
+
+ void Init()
+ {
+ if (m_Initialized)
+ return;
+ m_BodyStyle = new GUIStyle(EditorStyles.label);
+ m_BodyStyle.wordWrap = true;
+ m_BodyStyle.fontSize = 14;
+
+ m_TitleStyle = new GUIStyle(m_BodyStyle);
+ m_TitleStyle.fontSize = 26;
+
+ m_HeadingStyle = new GUIStyle(m_BodyStyle);
+ m_HeadingStyle.fontSize = 18 ;
+
+ m_LinkStyle = new GUIStyle(m_BodyStyle);
+ m_LinkStyle.wordWrap = false;
+ // Match selection color which works nicely for both light and dark skins
+ m_LinkStyle.normal.textColor = new Color (0x00/255f, 0x78/255f, 0xDA/255f, 1f);
+ m_LinkStyle.stretchWidth = false;
+
+ m_Initialized = true;
+ }
+
+ bool LinkLabel (GUIContent label, params GUILayoutOption[] options)
+ {
+ var position = GUILayoutUtility.GetRect(label, LinkStyle, options);
+
+ Handles.BeginGUI ();
+ Handles.color = LinkStyle.normal.textColor;
+ Handles.DrawLine (new Vector3(position.xMin, position.yMax), new Vector3(position.xMax, position.yMax));
+ Handles.color = Color.white;
+ Handles.EndGUI ();
+
+ EditorGUIUtility.AddCursorRect (position, MouseCursor.Link);
+
+ return GUI.Button (position, label, LinkStyle);
+ }
+}
+
diff --git a/Other/CADEMO/Assets/TutorialInfo/Scripts/Editor/ReadmeEditor.cs.meta b/Other/CADEMO/Assets/TutorialInfo/Scripts/Editor/ReadmeEditor.cs.meta
new file mode 100644
index 0000000..f038618
--- /dev/null
+++ b/Other/CADEMO/Assets/TutorialInfo/Scripts/Editor/ReadmeEditor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 476cc7d7cd9874016adc216baab94a0a
+timeCreated: 1484146680
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Other/CADEMO/Assets/TutorialInfo/Scripts/Readme.cs b/Other/CADEMO/Assets/TutorialInfo/Scripts/Readme.cs
new file mode 100644
index 0000000..48843db
--- /dev/null
+++ b/Other/CADEMO/Assets/TutorialInfo/Scripts/Readme.cs
@@ -0,0 +1,14 @@
+using System;
+using UnityEngine;
+
+public class Readme : ScriptableObject {
+ public Texture2D icon;
+ public string title;
+ public Section[] sections;
+ public bool loadedLayout;
+
+ [Serializable]
+ public class Section {
+ public string heading, text, linkText, url;
+ }
+}
diff --git a/Other/CADEMO/Assets/TutorialInfo/Scripts/Readme.cs.meta b/Other/CADEMO/Assets/TutorialInfo/Scripts/Readme.cs.meta
new file mode 100644
index 0000000..0dd2604
--- /dev/null
+++ b/Other/CADEMO/Assets/TutorialInfo/Scripts/Readme.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: fcf7219bab7fe46a1ad266029b2fee19
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences:
+ - icon: {fileID: 2800000, guid: d4743ba2e2a59f946b2125c074582ce7, type: 3}
+ executionOrder: 0
+ icon: {fileID: 2800000, guid: a186f8a87ca4f4d3aa864638ad5dfb65, type: 3}
+ userData:
+ assetBundleName:
+ assetBundleVariant: