From 31c2cebbccba45a00a755981dd6d0cdd0a0459e9 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期二, 14 八月 2018 17:28:38 +0800
Subject: [PATCH] Merge branch 'master' into leonard

---
 Assets/Editor/ScriptEditor/NewBieGuideEditorWindow.cs | 1138 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 569 insertions(+), 569 deletions(-)

diff --git a/Assets/Editor/ScriptEditor/NewBieGuideEditorWindow.cs b/Assets/Editor/ScriptEditor/NewBieGuideEditorWindow.cs
index 12be666..3b84134 100644
--- a/Assets/Editor/ScriptEditor/NewBieGuideEditorWindow.cs
+++ b/Assets/Editor/ScriptEditor/NewBieGuideEditorWindow.cs
@@ -6,602 +6,602 @@
 using UnityEngine.UI;
 using TableConfig;
 
-public class NewBieGuideEditorWindow : EditorWindow
+public class NewBieGuideEditorWindow : EditorWindow
 {
     [MenuItem("绋嬪簭/鏂版墜璋冭瘯鍣�")]
-    public static void Create()
-    {
-        var window = GetWindow(typeof(NewBieGuideEditorWindow), false, "鏂版墜璋冭瘯鍣�") as NewBieGuideEditorWindow;
-        window.Show();
-        window.autoRepaintOnSceneChange = true;
+    public static void Create()
+    {
+        var window = GetWindow(typeof(NewBieGuideEditorWindow), false, "鏂版墜璋冭瘯鍣�") as NewBieGuideEditorWindow;
+        window.Show();
+        window.autoRepaintOnSceneChange = true;
+    }
+
+    UIRoot m_UIRoot;
+    UIRoot uiroot {
+        get { return m_UIRoot ?? (m_UIRoot = FindObjectOfType<UIRoot>()); }
+        set { m_UIRoot = value; }
+    }
+
+    string guideContent = string.Empty;
+    Transform m_ClickTarget;
+    NewBieGuideScriptableObject.ArrowPosition arrowPosition = NewBieGuideScriptableObject.ArrowPosition.None;
+    NewBieGuideScriptableObject.SelectBoxPattern selectBox = NewBieGuideScriptableObject.SelectBoxPattern.Pattern1;
+
+    GameObject selectBoxGameObject;
+
+    GuideType guideType = GuideType.NewBie;
+
+    int stepId = 0;
+    int guideId = 0;
+
+    GameObject newBieWin;
+    Transform functionalUnLock;
+    NewBieMask newbieMask;
+    Transform newBiecontainerDialogue;
+    Text newBieDialogueContent;
+    RectTransform newBieImageHint;
+    RectTransform newBieHintEffectContainer;
+    RectTransform newBieContainerArrow;
+    Image newBieArrowImage;
+    RectTransform newbieUsherMMContainer;
+
+    int voice = 0;
+    int effect2 = 0;
+    int usherAction = 0;
+    bool clickAnyWhereComplete = false;
+    bool pointerDownComplete = false;
+    NewBieGuideScriptableObject.UsherOrientation usherOrientation = NewBieGuideScriptableObject.UsherOrientation.Normal;
+
+    GameObject usherMM;
+
+    GameObject recommendWin;
+    FunctionalGuideBehaviour recommendBehaviour;
+    RectTransform recommendImageHint;
+
+    private void Update()
+    {
+        if (newbieMask != null && newBieImageHint != null)
+        {
+            newbieMask.mask.center = newBieImageHint.localPosition;
+            newbieMask.mask.cell = newBieImageHint.sizeDelta;
+        }
+    }
+
+    private void OnGUI()
+    {
+
+        EditorGUILayout.BeginVertical();
+
+        EditorGUILayout.BeginHorizontal();
+        EditorGUILayout.Space();
+        guideType = GUILayout.Toggle(guideType == GuideType.NewBie, "鏂版墜寮曞") ? GuideType.NewBie : GuideType.Recommend;
+        guideType = GUILayout.Toggle(guideType == GuideType.Recommend, "鍔熻兘鎺ㄨ崘") ? GuideType.Recommend : GuideType.NewBie;
+        EditorGUILayout.Space();
+        EditorGUILayout.EndHorizontal();
+
+        GUILayout.Space(30);
+
+        EditorGUILayout.BeginHorizontal();
+        stepId = EditorGUILayout.IntField("姝ラID", stepId);
+        if (GUILayout.Button("瀵煎叆"))
+        {
+            switch (guideType)
+            {
+                case GuideType.NewBie:
+                    ImportNewBieConfig();
+                    break;
+                case GuideType.Recommend:
+                    ImportRecommondConfig();
+                    break;
+            }
+
+        }
+
+        if (GUILayout.Button("淇濆瓨"))
+        {
+            switch (guideType)
+            {
+                case GuideType.NewBie:
+                    ExportNewBieConfig();
+                    break;
+                case GuideType.Recommend:
+                    ExportRecommondConfig();
+                    break;
+            }
+        }
+
+        EditorGUILayout.EndHorizontal();
+        guideContent = EditorGUILayout.TextField("寮曞鍐呭", guideContent);
+        m_ClickTarget = (Transform)EditorGUILayout.ObjectField("鐐瑰嚮鐩爣", m_ClickTarget, typeof(Transform), true);
+
+        arrowPosition = (NewBieGuideScriptableObject.ArrowPosition)EditorGUILayout.EnumPopup("绠ご鏂瑰悜", arrowPosition);
+        selectBox = (NewBieGuideScriptableObject.SelectBoxPattern)EditorGUILayout.EnumPopup("閫変腑妗嗘牱寮�", selectBox);
+
+        voice = EditorGUILayout.IntField("闊虫晥", voice);
+        effect2 = EditorGUILayout.IntField("鐗规晥2", effect2);
+
+        EditorGUILayout.BeginHorizontal();
+
+        usherAction = EditorGUILayout.IntField("寮曞MM鍔ㄤ綔", usherAction);
+        usherOrientation = (NewBieGuideScriptableObject.UsherOrientation)EditorGUILayout.EnumPopup("寮曞MM鏂瑰悜", usherOrientation);
+        EditorGUILayout.EndHorizontal();
+
+        clickAnyWhereComplete = EditorGUILayout.Toggle("鐐瑰嚮浠绘剰浣嶇疆瀹屾垚寮曞", clickAnyWhereComplete);
+        pointerDownComplete = EditorGUILayout.Toggle("榧犳爣鎸変笅鍗冲畬鎴愬紩瀵�", pointerDownComplete);
+
+        EditorGUILayout.Space();
+        EditorGUILayout.Space();
+        EditorGUILayout.Space();
+
+        EditorGUILayout.BeginHorizontal();
+
+        if (GUILayout.Button("閲嶇疆鎵�鏈夊紩瀵�"))
+        {
+            NewBieCenter.Instance.ResetAllGuides();
+        }
+
+        if (GUILayout.Button("缁撴潫鎵�鏈夊紩瀵�"))
+        {
+            NewBieCenter.Instance.CompleteAllGuides();
+        }
+        EditorGUILayout.EndHorizontal();
+
+        switch (guideType)
+        {
+            case GuideType.NewBie:
+                DrawNewbieGuides();
+                break;
+            case GuideType.Recommend:
+                DrawFunctionalGuides();
+                break;
+        }
+
+        EditorGUILayout.EndVertical();
     }
 
-    UIRoot m_UIRoot;
-    UIRoot uiroot {
-        get { return m_UIRoot ?? (m_UIRoot = FindObjectOfType<UIRoot>()); }
-        set { m_UIRoot = value; }
+    private void ImportNewBieConfig()
+    {
+        var fileName = StringUtility.Contact("NewBieGuideStep_", stepId, ".asset");
+        var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath, "Refdata/ScriptableObject/SoNewBieGuide/", fileName);
+        var so = AssetDatabase.LoadAssetAtPath<NewBieGuideScriptableObject>(path);
+
+        if (newBieWin == null)
+        {
+            var newBieWin = FindObjectOfType<NewBieWin>();
+            this.newBieWin = newBieWin != null ? newBieWin.gameObject : null;
+
+            if (this.newBieWin == null)
+            {
+                var prefab = UILoader.LoadWindow("NewBieWin");
+                this.newBieWin = GameObject.Instantiate(prefab) as GameObject;
+                this.newBieWin.name = "NewBieWin";
+
+                if (this.newBieWin != null)
+                {
+                    uiroot = GameObject.FindObjectOfType<UIRoot>();
+                    if (uiroot == null)
+                    {
+                        var rootPrefab = Resources.Load<GameObject>("UI/Prefabs/UIRoot");
+                        var root = GameObject.Instantiate(rootPrefab, Vector3.zero, Quaternion.identity);
+                        root.name = "UIRoot";
+                        uiroot = root.GetComponent<UIRoot>();
+                    }
+
+                    var parent = uiroot.systemCanvas.transform;
+                    (this.newBieWin.transform as RectTransform).MatchWhith(parent as RectTransform);
+                    PrefabUtility.DisconnectPrefabInstance(this.recommendWin);
+                }
+            }
+
+            Selection.activeGameObject = this.newBieWin;
+            this.functionalUnLock = this.newBieWin.GetComponent<Transform>("Container_Function");
+            this.functionalUnLock.gameObject.SetActive(false);
+            this.newbieMask = this.newBieWin.GetComponent<NewBieMask>("Container_Guide/Mask");
+            this.newBiecontainerDialogue = this.newBieWin.GetComponent<Transform>("Container_Guide/Container_Dialogue");
+            this.newBieDialogueContent = this.newBieWin.GetComponent<Text>("Container_Guide/Container_Dialogue/Txt_Dialogue");
+            this.newBieImageHint = this.newBieWin.GetComponent<RectTransform>("Container_Guide/Container_ClickHint");
+            this.newBieHintEffectContainer = this.newBieWin.GetComponent<RectTransform>("Container_Guide/Container_ClickHint/Img_Effect");
+            this.newBieContainerArrow = this.newBieWin.GetComponent<RectTransform>("Container_Guide/Container_ClickHint/Container_Arrow");
+            this.newBieArrowImage = this.newBieWin.GetComponent<Image>("Container_Guide/Container_ClickHint/Container_Arrow/Img_Arrow");
+            this.newbieUsherMMContainer = this.newBieWin.GetComponent<RectTransform>("Container_Guide/Img_UsherMM");
+        }
+
+        if (so != null)
+        {
+            m_ClickTarget = uiroot.transform.Find(so.UIElementPath);
+
+            newbieMask.mask.center = so.clickPosition;
+            newbieMask.mask.cell = so.clickSize;
+            newBiecontainerDialogue.localPosition = so.tipPosition;
+            newBieDialogueContent.text = so.tipContent;
+            newBieImageHint.localPosition = so.clickPosition;
+            newBieImageHint.sizeDelta = so.clickSize;
+            var selectBosAssetName = so.selectBox == 0 ? "SelectBox1" : "SelectBox2";
+            var selectBoxGameObject = UIUtility.CreateWidget(selectBosAssetName, selectBosAssetName);
+            ((RectTransform)selectBoxGameObject.transform).MatchWhith(newBieHintEffectContainer);
+            newbieUsherMMContainer.localPosition = so.usherPosition;
+            newbieUsherMMContainer.localEulerAngles = new Vector3(0, so.usherOrientation == 0 ? 0 : 180, 0);
+            voice = so.voice;
+            clickAnyWhereComplete = so.clickAnyWhereComplete;
+            pointerDownComplete = so.pointerDownComplete;
+
+            guideContent = so.tipContent;
+
+            arrowPosition = so.arrowPosition;
+            selectBox = so.selectBox;
+            usherAction = so.usherAction;
+            usherOrientation = so.usherOrientation;
+
+            if (so.usherAction != 0)
+            {
+                if (usherMM != null)
+                {
+                    GameObject.DestroyImmediate(usherMM);
+                }
+                usherMM = GetUsherMM(so.usherAction);
+                usherMM.transform.SetParentEx(newbieUsherMMContainer, Vector3.zero, Vector3.zero, Vector3.one);
+                usherMM.SetActive(true);
+            }
+
+            newBieContainerArrow.gameObject.SetActive(so.arrowPosition != NewBieGuideScriptableObject.ArrowPosition.None);
+            if (so.arrowPosition != NewBieGuideScriptableObject.ArrowPosition.None)
+            {
+                switch (so.arrowPosition)
+                {
+                    case NewBieGuideScriptableObject.ArrowPosition.Left:
+                        newBieContainerArrow.localPosition = so.clickPosition - new Vector2(so.clickSize.x * 0.5f + newBieContainerArrow.rect.width * 0.5f, 0f);
+                        newBieArrowImage.transform.localEulerAngles = new Vector3(0, 0, 90);
+                        break;
+                    case NewBieGuideScriptableObject.ArrowPosition.Right:
+                        newBieContainerArrow.localPosition = so.clickPosition + new Vector2(so.clickSize.x * 0.5f + newBieContainerArrow.rect.width * 0.5f, 0f);
+                        newBieArrowImage.transform.localEulerAngles = new Vector3(0, 0, 270);
+                        break;
+                    case NewBieGuideScriptableObject.ArrowPosition.Top:
+                        newBieContainerArrow.localPosition = so.clickPosition + new Vector2(0f, so.clickSize.y * 0.5f + newBieContainerArrow.rect.height * 0.5f);
+                        newBieArrowImage.transform.localEulerAngles = new Vector3(0, 0, 0);
+                        break;
+                    case NewBieGuideScriptableObject.ArrowPosition.Bottom:
+                        newBieContainerArrow.localPosition = so.clickPosition - new Vector2(0f, so.clickSize.y * 0.5f + newBieContainerArrow.rect.height * 0.5f);
+                        newBieArrowImage.transform.localEulerAngles = new Vector3(0, 0, 180);
+                        break;
+                }
+            }
+
+        }
+
+        Repaint();
     }
 
-    string guideContent = string.Empty;
-    Transform m_ClickTarget;
-    NewBieGuideScriptableObject.ArrowPosition arrowPosition = NewBieGuideScriptableObject.ArrowPosition.None;
-    NewBieGuideScriptableObject.SelectBoxPattern selectBox = NewBieGuideScriptableObject.SelectBoxPattern.Pattern1;
-
-    GameObject selectBoxGameObject;
-
-    GuideType guideType = GuideType.NewBie;
-
-    int stepId = 0;
-    int guideId = 0;
-
-    GameObject newBieWin;
-    Transform functionalUnLock;
-    NewBieMask newbieMask;
-    Transform newBiecontainerDialogue;
-    Text newBieDialogueContent;
-    RectTransform newBieImageHint;
-    RectTransform newBieHintEffectContainer;
-    RectTransform newBieContainerArrow;
-    Image newBieArrowImage;
-    RectTransform newbieUsherMMContainer;
-
-    int voice = 0;
-    int effect2 = 0;
-    int usherAction = 0;
-    bool clickAnyWhereComplete = false;
-    bool pointerDownComplete = false;
-    NewBieGuideScriptableObject.UsherOrientation usherOrientation = NewBieGuideScriptableObject.UsherOrientation.Normal;
-
-    GameObject usherMM;
-
-    GameObject recommendWin;
-    FunctionalGuideBehaviour recommendBehaviour;
-    RectTransform recommendImageHint;
-
-    private void Update()
-    {
-        if (newbieMask != null && newBieImageHint != null)
-        {
-            newbieMask.mask.center = newBieImageHint.localPosition;
-            newbieMask.mask.cell = newBieImageHint.sizeDelta;
-        }
+    private void ExportNewBieConfig()
+    {
+        var fileName = StringUtility.Contact("NewBieGuideStep_", stepId, ".asset");
+        var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath, "Refdata/ScriptableObject/SoNewBieGuide/", fileName);
+        AssetDatabase.DeleteAsset(path);
+
+        var so = CreateInstance<NewBieGuideScriptableObject>();
+        AssetDatabase.CreateAsset(so, path);
+
+        if (newBieWin != null)
+        {
+            so.stepId = stepId;
+            so.clickPosition = newBieImageHint.transform.localPosition;
+            so.clickSize = newBieImageHint.sizeDelta;
+            so.tipPosition = newBiecontainerDialogue.localPosition;
+            so.tipContent = newBieDialogueContent.text;
+            so.arrowPosition = arrowPosition;
+            so.selectBox = selectBox;
+            so.usherOrientation = usherOrientation;
+            so.effect2 = effect2;
+            so.usherPosition = newbieUsherMMContainer.localPosition;
+            so.usherAction = usherAction;
+            so.voice = voice;
+            so.clickAnyWhereComplete = clickAnyWhereComplete;
+            so.pointerDownComplete = pointerDownComplete;
+            so.tipContent = guideContent;
+
+            if (m_ClickTarget != null)
+            {
+                so.UIElementPath = UIUtility.GetUIElementRelativePath(uiroot, m_ClickTarget);
+            }
+        }
+
+        AssetDatabase.Refresh();
+        EditorUtility.SetDirty(so);
+        AssetDatabase.SaveAssets();
     }
 
-    private void OnGUI()
-    {
-
-        EditorGUILayout.BeginVertical();
-
-        EditorGUILayout.BeginHorizontal();
-        EditorGUILayout.Space();
-        guideType = GUILayout.Toggle(guideType == GuideType.NewBie, "鏂版墜寮曞") ? GuideType.NewBie : GuideType.Recommend;
-        guideType = GUILayout.Toggle(guideType == GuideType.Recommend, "鍔熻兘鎺ㄨ崘") ? GuideType.Recommend : GuideType.NewBie;
-        EditorGUILayout.Space();
-        EditorGUILayout.EndHorizontal();
-
-        GUILayout.Space(30);
-
-        EditorGUILayout.BeginHorizontal();
-        stepId = EditorGUILayout.IntField("姝ラID", stepId);
-        if (GUILayout.Button("瀵煎叆"))
-        {
-            switch (guideType)
-            {
-                case GuideType.NewBie:
-                    ImportNewBieConfig();
-                    break;
-                case GuideType.Recommend:
-                    ImportRecommondConfig();
-                    break;
-            }
-
-        }
-
-        if (GUILayout.Button("淇濆瓨"))
-        {
-            switch (guideType)
-            {
-                case GuideType.NewBie:
-                    ExportNewBieConfig();
-                    break;
-                case GuideType.Recommend:
-                    ExportRecommondConfig();
-                    break;
-            }
-        }
-
-        EditorGUILayout.EndHorizontal();
-        guideContent = EditorGUILayout.TextField("寮曞鍐呭", guideContent);
-        m_ClickTarget = (Transform)EditorGUILayout.ObjectField("鐐瑰嚮鐩爣", m_ClickTarget, typeof(Transform), true);
-
-        arrowPosition = (NewBieGuideScriptableObject.ArrowPosition)EditorGUILayout.EnumPopup("绠ご鏂瑰悜", arrowPosition);
-        selectBox = (NewBieGuideScriptableObject.SelectBoxPattern)EditorGUILayout.EnumPopup("閫変腑妗嗘牱寮�", selectBox);
-
-        voice = EditorGUILayout.IntField("闊虫晥", voice);
-        effect2 = EditorGUILayout.IntField("鐗规晥2", effect2);
-
-        EditorGUILayout.BeginHorizontal();
-
-        usherAction = EditorGUILayout.IntField("寮曞MM鍔ㄤ綔", usherAction);
-        usherOrientation = (NewBieGuideScriptableObject.UsherOrientation)EditorGUILayout.EnumPopup("寮曞MM鏂瑰悜", usherOrientation);
-        EditorGUILayout.EndHorizontal();
-
-        clickAnyWhereComplete = EditorGUILayout.Toggle("鐐瑰嚮浠绘剰浣嶇疆瀹屾垚寮曞", clickAnyWhereComplete);
-        pointerDownComplete = EditorGUILayout.Toggle("榧犳爣鎸変笅鍗冲畬鎴愬紩瀵�", pointerDownComplete);
-
-        EditorGUILayout.Space();
-        EditorGUILayout.Space();
-        EditorGUILayout.Space();
-
-        EditorGUILayout.BeginHorizontal();
-
-        if (GUILayout.Button("閲嶇疆鎵�鏈夊紩瀵�"))
-        {
-            NewBieCenter.Instance.ResetAllGuides();
-        }
-
-        if (GUILayout.Button("缁撴潫鎵�鏈夊紩瀵�"))
-        {
-            NewBieCenter.Instance.CompleteAllGuides();
-        }
-        EditorGUILayout.EndHorizontal();
-
-        switch (guideType)
-        {
-            case GuideType.NewBie:
-                DrawNewbieGuides();
-                break;
-            case GuideType.Recommend:
-                DrawFunctionalGuides();
-                break;
-        }
-
-        EditorGUILayout.EndVertical();
+    private void ImportRecommondConfig()
+    {
+        var fileName = StringUtility.Contact("FunctionalGuideStep_", stepId, ".asset");
+        var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath, "Refdata/ScriptableObject/SoNewBieGuide/", fileName);
+        var so = AssetDatabase.LoadAssetAtPath<NewBieGuideScriptableObject>(path);
+
+        if (recommendWin == null)
+        {
+            var recommendWin = FindObjectOfType<FunctionalGuideWin>();
+            this.recommendWin = recommendWin != null ? recommendWin.gameObject : null;
+
+            if (this.recommendWin == null)
+            {
+                var prefab = UILoader.LoadWindow("FunctionalGuideWin");
+                this.recommendWin = GameObject.Instantiate(prefab) as GameObject;
+                this.recommendWin.name = "FunctionalGuideWin";
+
+                if (this.recommendWin != null)
+                {
+                    uiroot = GameObject.FindObjectOfType<UIRoot>();
+                    if (uiroot == null)
+                    {
+                        var rootPrefab = Resources.Load<GameObject>("UI/Prefabs/UIRoot");
+                        var root = GameObject.Instantiate(rootPrefab, Vector3.zero, Quaternion.identity);
+                        root.name = "UIRoot";
+                        uiroot = root.GetComponent<UIRoot>();
+                    }
+
+                    var parent = uiroot.systemCanvas.transform;
+                    (this.recommendWin.transform as RectTransform).MatchWhith(parent as RectTransform);
+                    PrefabUtility.DisconnectPrefabInstance(this.recommendWin);
+                }
+            }
+
+            Selection.activeGameObject = this.recommendWin;
+            var instance = UIUtility.CreateWidget("FunctionalGuideBehaviour", "FunctionalGuideBehaviour");
+            var behaviourRectTransform = (RectTransform)instance.transform;
+            recommendBehaviour = instance.GetComponent<FunctionalGuideBehaviour>();
+            this.recommendWin.gameObject.SetActive(true);
+            behaviourRectTransform.MatchWhith(this.recommendWin.transform as RectTransform);
+            recommendBehaviour.gameObject.SetActive(true);
+
+            this.recommendImageHint = this.recommendBehaviour.clickHintRoot;
+        }
+
+        if (so != null)
+        {
+            m_ClickTarget = uiroot.transform.Find(so.UIElementPath);
+            recommendImageHint.transform.localPosition = so.clickPosition;
+            recommendImageHint.sizeDelta = so.clickSize;
+            guideContent = so.tipContent;
+            arrowPosition = so.arrowPosition;
+            selectBox = so.selectBox;
+            var selectBosAssetName = string.Empty;
+            switch (so.selectBox)
+            {
+                case NewBieGuideScriptableObject.SelectBoxPattern.Pattern1:
+                    selectBosAssetName = "SelectBox1";
+                    break;
+                case NewBieGuideScriptableObject.SelectBoxPattern.Pattern2:
+                    selectBosAssetName = "SelectBox2";
+                    break;
+                case NewBieGuideScriptableObject.SelectBoxPattern.None:
+                    selectBosAssetName = string.Empty;
+                    break;
+            }
+
+            if (selectBoxGameObject != null)
+            {
+                DestroyImmediate(selectBoxGameObject);
+                selectBoxGameObject = null;
+            }
+
+            if (!string.IsNullOrEmpty(selectBosAssetName))
+            {
+                selectBoxGameObject = UIUtility.CreateWidget(selectBosAssetName, selectBosAssetName);
+                ((RectTransform)selectBoxGameObject.transform).MatchWhith(recommendImageHint);
+            }
+        }
+
+        Repaint();
     }
 
-    private void ImportNewBieConfig()
-    {
-        var fileName = StringUtility.Contact("NewBieGuideStep_", stepId, ".asset");
-        var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath, "Refdata/ScriptableObject/SoNewBieGuide/", fileName);
-        var so = AssetDatabase.LoadAssetAtPath<NewBieGuideScriptableObject>(path);
-
-        if (newBieWin == null)
-        {
-            var newBieWin = FindObjectOfType<NewBieWin>();
-            this.newBieWin = newBieWin != null ? newBieWin.gameObject : null;
-
-            if (this.newBieWin == null)
-            {
-                var prefab = UILoader.LoadWindow("NewBieWin");
-                this.newBieWin = GameObject.Instantiate(prefab) as GameObject;
-                this.newBieWin.name = "NewBieWin";
-
-                if (this.newBieWin != null)
-                {
-                    uiroot = GameObject.FindObjectOfType<UIRoot>();
-                    if (uiroot == null)
-                    {
-                        var rootPrefab = Resources.Load<GameObject>("UI/Prefabs/UIRoot");
-                        var root = GameObject.Instantiate(rootPrefab, Vector3.zero, Quaternion.identity);
-                        root.name = "UIRoot";
-                        uiroot = root.GetComponent<UIRoot>();
-                    }
-
-                    var parent = uiroot.systemCanvas.transform;
-                    (this.newBieWin.transform as RectTransform).MatchWhith(parent as RectTransform);
-                    PrefabUtility.DisconnectPrefabInstance(this.recommendWin);
-                }
-            }
-
-            Selection.activeGameObject = this.newBieWin;
-            this.functionalUnLock = this.newBieWin.GetComponent<Transform>("Container_Function");
-            this.functionalUnLock.gameObject.SetActive(false);
-            this.newbieMask = this.newBieWin.GetComponent<NewBieMask>("Container_Guide/Mask");
-            this.newBiecontainerDialogue = this.newBieWin.GetComponent<Transform>("Container_Guide/Container_Dialogue");
-            this.newBieDialogueContent = this.newBieWin.GetComponent<Text>("Container_Guide/Container_Dialogue/Txt_Dialogue");
-            this.newBieImageHint = this.newBieWin.GetComponent<RectTransform>("Container_Guide/Container_ClickHint");
-            this.newBieHintEffectContainer = this.newBieWin.GetComponent<RectTransform>("Container_Guide/Container_ClickHint/Img_Effect");
-            this.newBieContainerArrow = this.newBieWin.GetComponent<RectTransform>("Container_Guide/Container_ClickHint/Container_Arrow");
-            this.newBieArrowImage = this.newBieWin.GetComponent<Image>("Container_Guide/Container_ClickHint/Container_Arrow/Img_Arrow");
-            this.newbieUsherMMContainer = this.newBieWin.GetComponent<RectTransform>("Container_Guide/Img_UsherMM");
-        }
-
-        if (so != null)
-        {
-            m_ClickTarget = uiroot.transform.Find(so.UIElementPath);
-
-            newbieMask.mask.center = so.clickPosition;
-            newbieMask.mask.cell = so.clickSize;
-            newBiecontainerDialogue.localPosition = so.tipPosition;
-            newBieDialogueContent.text = so.tipContent;
-            newBieImageHint.localPosition = so.clickPosition;
-            newBieImageHint.sizeDelta = so.clickSize;
-            var selectBosAssetName = so.selectBox == 0 ? "SelectBox1" : "SelectBox2";
-            var selectBoxGameObject = UIUtility.CreateWidget(selectBosAssetName, selectBosAssetName);
-            ((RectTransform)selectBoxGameObject.transform).MatchWhith(newBieHintEffectContainer);
-            newbieUsherMMContainer.localPosition = so.usherPosition;
-            newbieUsherMMContainer.localEulerAngles = new Vector3(0, so.usherOrientation == 0 ? 0 : 180, 0);
-            voice = so.voice;
-            clickAnyWhereComplete = so.clickAnyWhereComplete;
-            pointerDownComplete = so.pointerDownComplete;
-
-            guideContent = so.tipContent;
-
-            arrowPosition = so.arrowPosition;
-            selectBox = so.selectBox;
-            usherAction = so.usherAction;
-            usherOrientation = so.usherOrientation;
-
-            if (so.usherAction != 0)
-            {
-                if (usherMM != null)
-                {
-                    GameObject.DestroyImmediate(usherMM);
-                }
-                usherMM = GetUsherMM(so.usherAction);
-                usherMM.transform.SetParentEx(newbieUsherMMContainer, Vector3.zero, Vector3.zero, Vector3.one);
-                usherMM.SetActive(true);
-            }
-
-            newBieContainerArrow.gameObject.SetActive(so.arrowPosition != NewBieGuideScriptableObject.ArrowPosition.None);
-            if (so.arrowPosition != NewBieGuideScriptableObject.ArrowPosition.None)
-            {
-                switch (so.arrowPosition)
-                {
-                    case NewBieGuideScriptableObject.ArrowPosition.Left:
-                        newBieContainerArrow.localPosition = so.clickPosition - new Vector2(so.clickSize.x * 0.5f + newBieContainerArrow.rect.width * 0.5f, 0f);
-                        newBieArrowImage.transform.localEulerAngles = new Vector3(0, 0, 90);
-                        break;
-                    case NewBieGuideScriptableObject.ArrowPosition.Right:
-                        newBieContainerArrow.localPosition = so.clickPosition + new Vector2(so.clickSize.x * 0.5f + newBieContainerArrow.rect.width * 0.5f, 0f);
-                        newBieArrowImage.transform.localEulerAngles = new Vector3(0, 0, 270);
-                        break;
-                    case NewBieGuideScriptableObject.ArrowPosition.Top:
-                        newBieContainerArrow.localPosition = so.clickPosition + new Vector2(0f, so.clickSize.y * 0.5f + newBieContainerArrow.rect.height * 0.5f);
-                        newBieArrowImage.transform.localEulerAngles = new Vector3(0, 0, 0);
-                        break;
-                    case NewBieGuideScriptableObject.ArrowPosition.Bottom:
-                        newBieContainerArrow.localPosition = so.clickPosition - new Vector2(0f, so.clickSize.y * 0.5f + newBieContainerArrow.rect.height * 0.5f);
-                        newBieArrowImage.transform.localEulerAngles = new Vector3(0, 0, 180);
-                        break;
-                }
-            }
-
-        }
-
-        Repaint();
+    private void ExportRecommondConfig()
+    {
+        var fileName = StringUtility.Contact("FunctionalGuideStep_", stepId, ".asset");
+        var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath, "Refdata/ScriptableObject/SoNewBieGuide/", fileName);
+        AssetDatabase.DeleteAsset(path);
+
+        var so = CreateInstance<NewBieGuideScriptableObject>();
+        AssetDatabase.CreateAsset(so, path);
+
+        if (recommendBehaviour != null)
+        {
+            so.stepId = stepId;
+            so.clickPosition = recommendImageHint.transform.localPosition;
+            so.clickSize = recommendImageHint.sizeDelta;
+            so.tipContent = guideContent;
+            so.arrowPosition = arrowPosition;
+            so.selectBox = selectBox;
+            if (m_ClickTarget != null)
+            {
+                so.UIElementPath = UIUtility.GetUIElementRelativePath(uiroot, m_ClickTarget);
+            }
+        }
+
+        AssetDatabase.Refresh();
+        EditorUtility.SetDirty(so);
+        AssetDatabase.SaveAssets();
     }
 
-    private void ExportNewBieConfig()
-    {
-        var fileName = StringUtility.Contact("NewBieGuideStep_", stepId, ".asset");
-        var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath, "Refdata/ScriptableObject/SoNewBieGuide/", fileName);
-        AssetDatabase.DeleteAsset(path);
-
-        var so = CreateInstance<NewBieGuideScriptableObject>();
-        AssetDatabase.CreateAsset(so, path);
-
-        if (newBieWin != null)
-        {
-            so.stepId = stepId;
-            so.clickPosition = newBieImageHint.transform.localPosition;
-            so.clickSize = newBieImageHint.sizeDelta;
-            so.tipPosition = newBiecontainerDialogue.localPosition;
-            so.tipContent = newBieDialogueContent.text;
-            so.arrowPosition = arrowPosition;
-            so.selectBox = selectBox;
-            so.usherOrientation = usherOrientation;
-            so.effect2 = effect2;
-            so.usherPosition = newbieUsherMMContainer.localPosition;
-            so.usherAction = usherAction;
-            so.voice = voice;
-            so.clickAnyWhereComplete = clickAnyWhereComplete;
-            so.pointerDownComplete = pointerDownComplete;
-            so.tipContent = guideContent;
-
-            if (m_ClickTarget != null)
-            {
-                so.UIElementPath = UIUtility.GetUIElementRelativePath(uiroot, m_ClickTarget);
-            }
-        }
-
-        AssetDatabase.Refresh();
-        EditorUtility.SetDirty(so);
-        AssetDatabase.SaveAssets();
+    private void StartNewBieGuide()
+    {
+        NewBieCenter.Instance.currentGuide = guideId;
+        NewBieCenter.Instance.StartNewBieGuide(guideId);
     }
 
-    private void ImportRecommondConfig()
-    {
-        var fileName = StringUtility.Contact("FunctionalGuideStep_", stepId, ".asset");
-        var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath, "Refdata/ScriptableObject/SoNewBieGuide/", fileName);
-        var so = AssetDatabase.LoadAssetAtPath<NewBieGuideScriptableObject>(path);
-
-        if (recommendWin == null)
-        {
-            var recommendWin = FindObjectOfType<FunctionalGuideWin>();
-            this.recommendWin = recommendWin != null ? recommendWin.gameObject : null;
-
-            if (this.recommendWin == null)
-            {
-                var prefab = UILoader.LoadWindow("FunctionalGuideWin");
-                this.recommendWin = GameObject.Instantiate(prefab) as GameObject;
-                this.recommendWin.name = "FunctionalGuideWin";
-
-                if (this.recommendWin != null)
-                {
-                    uiroot = GameObject.FindObjectOfType<UIRoot>();
-                    if (uiroot == null)
-                    {
-                        var rootPrefab = Resources.Load<GameObject>("UI/Prefabs/UIRoot");
-                        var root = GameObject.Instantiate(rootPrefab, Vector3.zero, Quaternion.identity);
-                        root.name = "UIRoot";
-                        uiroot = root.GetComponent<UIRoot>();
-                    }
-
-                    var parent = uiroot.systemCanvas.transform;
-                    (this.recommendWin.transform as RectTransform).MatchWhith(parent as RectTransform);
-                    PrefabUtility.DisconnectPrefabInstance(this.recommendWin);
-                }
-            }
-
-            Selection.activeGameObject = this.recommendWin;
-            var instance = UIUtility.CreateWidget("FunctionalGuideBehaviour", "FunctionalGuideBehaviour");
-            var behaviourRectTransform = (RectTransform)instance.transform;
-            recommendBehaviour = instance.GetComponent<FunctionalGuideBehaviour>();
-            this.recommendWin.gameObject.SetActive(true);
-            behaviourRectTransform.MatchWhith(this.recommendWin.transform as RectTransform);
-            recommendBehaviour.gameObject.SetActive(true);
-
-            this.recommendImageHint = this.recommendBehaviour.clickHintRoot;
-        }
-
-        if (so != null)
-        {
-            m_ClickTarget = uiroot.transform.Find(so.UIElementPath);
-            recommendImageHint.transform.localPosition = so.clickPosition;
-            recommendImageHint.sizeDelta = so.clickSize;
-            guideContent = so.tipContent;
-            arrowPosition = so.arrowPosition;
-            selectBox = so.selectBox;
-            var selectBosAssetName = string.Empty;
-            switch (so.selectBox)
-            {
-                case NewBieGuideScriptableObject.SelectBoxPattern.Pattern1:
-                    selectBosAssetName = "SelectBox1";
-                    break;
-                case NewBieGuideScriptableObject.SelectBoxPattern.Pattern2:
-                    selectBosAssetName = "SelectBox2";
-                    break;
-                case NewBieGuideScriptableObject.SelectBoxPattern.None:
-                    selectBosAssetName = string.Empty;
-                    break;
-            }
-
-            if (selectBoxGameObject != null)
-            {
-                DestroyImmediate(selectBoxGameObject);
-                selectBoxGameObject = null;
-            }
-
-            if (!string.IsNullOrEmpty(selectBosAssetName))
-            {
-                selectBoxGameObject = UIUtility.CreateWidget(selectBosAssetName, selectBosAssetName);
-                ((RectTransform)selectBoxGameObject.transform).MatchWhith(recommendImageHint);
-            }
-        }
-
-        Repaint();
+    private void StartFunctionalGuide()
+    {
+        FunctionalGuideCenter.Instance.StartGuide(guideId);
+    }
+
+    private GameObject GetUsherMM(int _action)
+    {
+        var instance = UIUtility.CreateWidget("GuideUsher", "GuideUsher");
+
+        return instance;
     }
 
-    private void ExportRecommondConfig()
-    {
-        var fileName = StringUtility.Contact("FunctionalGuideStep_", stepId, ".asset");
-        var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath, "Refdata/ScriptableObject/SoNewBieGuide/", fileName);
-        AssetDatabase.DeleteAsset(path);
-
-        var so = CreateInstance<NewBieGuideScriptableObject>();
-        AssetDatabase.CreateAsset(so, path);
-
-        if (recommendBehaviour != null)
-        {
-            so.stepId = stepId;
-            so.clickPosition = recommendImageHint.transform.localPosition;
-            so.clickSize = recommendImageHint.sizeDelta;
-            so.tipContent = guideContent;
-            so.arrowPosition = arrowPosition;
-            so.selectBox = selectBox;
-            if (m_ClickTarget != null)
-            {
-                so.UIElementPath = UIUtility.GetUIElementRelativePath(uiroot, m_ClickTarget);
-            }
-        }
-
-        AssetDatabase.Refresh();
-        EditorUtility.SetDirty(so);
-        AssetDatabase.SaveAssets();
-    }
-
-    private void StartNewBieGuide()
-    {
-        NewBieCenter.Instance.currentGuide = guideId;
-        NewBieCenter.Instance.StartNewBieGuide(guideId);
-    }
-
-    private void StartFunctionalGuide()
-    {
-        FunctionalGuideCenter.Instance.StartGuide(guideId);
-    }
-
-    private GameObject GetUsherMM(int _action)
-    {
-        var instance = UIUtility.CreateWidget("GuideUsher", "GuideUsher");
-
-        return instance;
-    }
-
-    enum GuideType
-    {
-        NewBie,        //鏂版墜寮曞锛屽崐寮哄埗鎬х殑銆�
-        Recommend,//鍔熻兘鎬у紩瀵硷紝鎺ㄨ崘鎬х殑銆�
+    enum GuideType
+    {
+        NewBie,        //鏂版墜寮曞锛屽崐寮哄埗鎬х殑銆�
+        Recommend,//鍔熻兘鎬у紩瀵硷紝鎺ㄨ崘鎬х殑銆�
     }
 
     List<NewBieGuide> newbieGuides = null;
-    List<FunctionalGuide> functionalGuides = null;
+    List<FunctionalGuide> functionalGuides = null;
     private Vector2 scrollPosition;
 
-    void DrawNewbieGuides()
-    {
-        if (ConfigManager.Instance.inited && newbieGuides == null)
-        {
-            newbieGuides = new List<NewBieGuide>();
-            var guides = ConfigManager.Instance.GetAllValues<GuideConfig>();
-            foreach (var config in guides)
-            {
-                if (config.Type == 1)
-                {
-                    newbieGuides.Add(new NewBieGuide(config.ID));
-                }
-            }
-        }
-
-        if (newbieGuides != null)
-        {
-            scrollPosition = GUILayout.BeginScrollView(scrollPosition, false, false);
-            foreach (var newbieGuide in newbieGuides)
-            {
-                EditorGUILayout.Space();
-                EditorGUILayout.BeginHorizontal();
-
-                EditorGUILayout.Space();
-
-                EditorGUILayout.LabelField("鍗婂己鍒跺紩瀵糏d:" + newbieGuide.guideId);
-
-                EditorGUILayout.Toggle("Completed", newbieGuide.completed);
-
-                GUI.skin.button.normal.textColor = newbieGuide.guideId == NewBieCenter.Instance.currentGuide ? Color.red : Color.white;
-
-                if (GUILayout.Button("寮�濮�"))
-                {
-                    newbieGuide.Begin();
-                }
-
-                GUI.skin.button.normal.textColor = Color.white;
-                if (GUILayout.Button("瀹屾垚"))
-                {
-                    newbieGuide.Finish();
-                }
-
-                if (GUILayout.Button("閲嶇疆"))
-                {
-                    newbieGuide.Reset();
-                }
-
-                EditorGUILayout.Space();
-                EditorGUILayout.EndHorizontal();
-            }
-
-            GUILayout.EndScrollView();
-        }
-
+    void DrawNewbieGuides()
+    {
+        if (ConfigManager.Instance.inited && newbieGuides == null)
+        {
+            newbieGuides = new List<NewBieGuide>();
+            var guides = ConfigManager.Instance.GetAllValues<GuideConfig>();
+            foreach (var config in guides)
+            {
+                if (config.Type == 1)
+                {
+                    newbieGuides.Add(new NewBieGuide(config.ID));
+                }
+            }
+        }
+
+        if (newbieGuides != null)
+        {
+            scrollPosition = GUILayout.BeginScrollView(scrollPosition, false, false);
+            foreach (var newbieGuide in newbieGuides)
+            {
+                EditorGUILayout.Space();
+                EditorGUILayout.BeginHorizontal();
+
+                EditorGUILayout.Space();
+
+                EditorGUILayout.LabelField("鍗婂己鍒跺紩瀵糏d:" + newbieGuide.guideId);
+
+                EditorGUILayout.Toggle("Completed", newbieGuide.completed);
+
+                GUI.skin.button.normal.textColor = newbieGuide.guideId == NewBieCenter.Instance.currentGuide ? Color.red : Color.white;
+
+                if (GUILayout.Button("寮�濮�"))
+                {
+                    newbieGuide.Begin();
+                }
+
+                GUI.skin.button.normal.textColor = Color.white;
+                if (GUILayout.Button("瀹屾垚"))
+                {
+                    newbieGuide.Finish();
+                }
+
+                if (GUILayout.Button("閲嶇疆"))
+                {
+                    newbieGuide.Reset();
+                }
+
+                EditorGUILayout.Space();
+                EditorGUILayout.EndHorizontal();
+            }
+
+            GUILayout.EndScrollView();
+        }
+
     }
 
-    void DrawFunctionalGuides()
-    {
-        if (ConfigManager.Instance.inited && functionalGuides == null)
-        {
-            functionalGuides = new List<FunctionalGuide>();
-            var guides = ConfigManager.Instance.GetAllValues<GuideConfig>();
-            foreach (var config in guides)
-            {
-                if (config.Type == 2)
-                {
-                    functionalGuides.Add(new FunctionalGuide(config.ID));
-                }
-            }
-        }
-
-        if (functionalGuides != null)
-        {
-            scrollPosition = GUILayout.BeginScrollView(scrollPosition, false, false);
-            foreach (var guide in functionalGuides)
-            {
-                EditorGUILayout.Space();
-                EditorGUILayout.BeginHorizontal();
-
-                EditorGUILayout.Space();
-
-                EditorGUILayout.LabelField("鑷敱寮曞Id:" + guide.guideId);
-                EditorGUILayout.Toggle("Completed", guide.completed);
-
-                GUI.skin.button.normal.textColor = FunctionalGuideCenter.Instance.GetUnderwayGuides().Contains(guide.guideId) ? Color.red : Color.white;
-
-                if (GUILayout.Button("寮�濮�"))
-                {
-                    guide.Begin();
-                }
-
-                GUI.skin.button.normal.textColor = Color.white;
-                if (GUILayout.Button("瀹屾垚"))
-                {
-                    guide.Finish();
-                }
-
-                EditorGUILayout.Space();
-                EditorGUILayout.EndHorizontal();
-            }
-
-            GUILayout.EndScrollView();
-        }
-
-
+    void DrawFunctionalGuides()
+    {
+        if (ConfigManager.Instance.inited && functionalGuides == null)
+        {
+            functionalGuides = new List<FunctionalGuide>();
+            var guides = ConfigManager.Instance.GetAllValues<GuideConfig>();
+            foreach (var config in guides)
+            {
+                if (config.Type == 2)
+                {
+                    functionalGuides.Add(new FunctionalGuide(config.ID));
+                }
+            }
+        }
+
+        if (functionalGuides != null)
+        {
+            scrollPosition = GUILayout.BeginScrollView(scrollPosition, false, false);
+            foreach (var guide in functionalGuides)
+            {
+                EditorGUILayout.Space();
+                EditorGUILayout.BeginHorizontal();
+
+                EditorGUILayout.Space();
+
+                EditorGUILayout.LabelField("鑷敱寮曞Id:" + guide.guideId);
+                EditorGUILayout.Toggle("Completed", guide.completed);
+
+                GUI.skin.button.normal.textColor = FunctionalGuideCenter.Instance.GetUnderwayGuides().Contains(guide.guideId) ? Color.red : Color.white;
+
+                if (GUILayout.Button("寮�濮�"))
+                {
+                    guide.Begin();
+                }
+
+                GUI.skin.button.normal.textColor = Color.white;
+                if (GUILayout.Button("瀹屾垚"))
+                {
+                    guide.Finish();
+                }
+
+                EditorGUILayout.Space();
+                EditorGUILayout.EndHorizontal();
+            }
+
+            GUILayout.EndScrollView();
+        }
+
+
     }
 
-    public class NewBieGuide
-    {
-        public int guideId;
-        public bool completed { get { return NewBieCenter.Instance.completeGuidesBuf.Contains(guideId); } }
-
-        public NewBieGuide(int _guideId)
-        {
-            guideId = _guideId;
-        }
-
-        public void Begin()
-        {
-            NewBieCenter.Instance.StartNewBieGuide(guideId);
-        }
-
-        public void Finish()
-        {
-            NewBieCenter.Instance.FinishNewBieGuide(guideId);
-        }
-
-        public void Reset()
-        {
-            NewBieCenter.Instance.ResetGuide(guideId);
-        }
+    public class NewBieGuide
+    {
+        public int guideId;
+        public bool completed { get { return NewBieCenter.Instance.completeGuidesBuf.Contains(guideId); } }
+
+        public NewBieGuide(int _guideId)
+        {
+            guideId = _guideId;
+        }
+
+        public void Begin()
+        {
+            NewBieCenter.Instance.StartNewBieGuide(guideId);
+        }
+
+        public void Finish()
+        {
+            NewBieCenter.Instance.FinishNewBieGuide(guideId);
+        }
+
+        public void Reset()
+        {
+            NewBieCenter.Instance.ResetGuide(guideId);
+        }
     }
 
-    public class FunctionalGuide
-    {
-        public int guideId;
-        public bool completed { get { return NewBieCenter.Instance.completeGuidesBuf.Contains(guideId); } }
-
-        public FunctionalGuide(int _guideId)
-        {
-            guideId = _guideId;
-        }
-
-        public void Begin()
-        {
-            FunctionalGuideCenter.Instance.StartGuide(guideId);
-        }
-
-        public void Finish()
-        {
-            FunctionalGuideCenter.Instance.RemoveGuide(guideId);
-        }
-
+    public class FunctionalGuide
+    {
+        public int guideId;
+        public bool completed { get { return NewBieCenter.Instance.completeGuidesBuf.Contains(guideId); } }
+
+        public FunctionalGuide(int _guideId)
+        {
+            guideId = _guideId;
+        }
+
+        public void Begin()
+        {
+            FunctionalGuideCenter.Instance.StartGuide(guideId);
+        }
+
+        public void Finish()
+        {
+            FunctionalGuideCenter.Instance.RemoveGuide(guideId);
+        }
+
     }
 
 

--
Gitblit v1.8.0