From 967b0232d8e24e2b1e89c6656fa62f02492bfcb5 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期四, 09 十月 2025 15:42:22 +0800
Subject: [PATCH] 257 子 【配套功能】新手引导 / 【常规】引导
---
Assets/Editor/SpritePacking/SpriteSettings.asset | 44 -------
Assets/Editor/ScriptEditor/NewBieGuideScriptableObjectEditor.cs | 82 +++++++++++++
Assets/Editor/InvalidScriptScanner.cs | 6
Assets/Editor/ScriptEditor/NewBieGuideEditorWindow.cs | 182 ++++++++++++++++++++++++++++++
Assets/Editor/ScriptEditor/NewBieGuideEditorWindow.cs.meta | 12 ++
Assets/Editor/ScriptEditor/NewBieGuideScriptableObjectEditor.cs.meta | 12 ++
Assets/Editor/UI/PSDTOUGUIProcessor.cs | 2
7 files changed, 292 insertions(+), 48 deletions(-)
diff --git a/Assets/Editor/InvalidScriptScanner.cs b/Assets/Editor/InvalidScriptScanner.cs
index f2a324b..95d85ba 100644
--- a/Assets/Editor/InvalidScriptScanner.cs
+++ b/Assets/Editor/InvalidScriptScanner.cs
@@ -24,7 +24,7 @@
/// <summary>
/// 娣诲姞鍙抽敭鑿滃崟椤�
/// </summary>
- [MenuItem("GameObject/鎵弿鏃犳晥鑴氭湰", false, 20)]
+ [MenuItem("GameObject/鑴氭湰/鎵弿鏃犳晥鑴氭湰", false, 20)]
private static void ScanInvalidScripts()
{
GameObject selectedObject = Selection.activeGameObject;
@@ -311,7 +311,7 @@
/// <summary>
/// 閫掑綊鎵弿鎵�鏈夊瓙瀵硅薄涓殑鏃犳晥鑴氭湰
/// </summary>
- [MenuItem("GameObject/閫掑綊鎵弿鎵�鏈夋棤鏁堣剼鏈�", false, 21)]
+ [MenuItem("GameObject/鑴氭湰/閫掑綊鎵弿鎵�鏈夋棤鏁堣剼鏈�", false, 21)]
private static void ScanAllInvalidScriptsRecursively()
{
GameObject selectedObject = Selection.activeGameObject;
@@ -404,7 +404,7 @@
/// <summary>
/// 娣诲姞璁剧疆鑿滃崟椤�
/// </summary>
- [MenuItem("GameObject/鏃犳晥鑴氭湰鎵弿璁剧疆", false, 22)]
+ [MenuItem("GameObject/鑴氭湰/鏃犳晥鑴氭湰鎵弿璁剧疆", false, 22)]
private static void ShowSettings()
{
// 鍒涘缓璁剧疆绐楀彛
diff --git a/Assets/Editor/ScriptEditor/NewBieGuideEditorWindow.cs b/Assets/Editor/ScriptEditor/NewBieGuideEditorWindow.cs
new file mode 100644
index 0000000..3d2eb56
--- /dev/null
+++ b/Assets/Editor/ScriptEditor/NewBieGuideEditorWindow.cs
@@ -0,0 +1,182 @@
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEditor;
+using UnityEngine.UI;
+
+
+public class NewBieGuideEditorWindow : EditorWindow
+{
+ [MenuItem("绋嬪簭/寮曞缂栬緫鍣�")]
+ public static void Create()
+ {
+ var window = GetWindow(typeof(NewBieGuideEditorWindow), false, "寮曞缂栬緫鍣�") as NewBieGuideEditorWindow;
+ window.Show();
+ window.autoRepaintOnSceneChange = true;
+ }
+
+
+ private void OnGUI()
+ {
+ if (!Application.isPlaying)
+ {
+ //閲嶆柊缂栬緫 EditorGUILayout
+ EditorGUILayout.BeginVertical();
+ GUILayout.Label("璇峰厛杩愯娓告垙");
+ EditorGUILayout.EndVertical();
+ return;
+ }
+ EditorGUILayout.BeginVertical();
+
+ EditorGUILayout.BeginHorizontal();
+ if (GUILayout.Button("鎷疯礉缁勪欢璺緞鍒板壀鍒囨澘"))
+ {
+ GameObject go = Selection.activeGameObject;
+ if (go == null)
+ {
+ Debug.LogError("璇峰厛閫夋嫨涓�涓狦ameObject");
+ return;
+ }
+
+
+ // 鑾峰彇 GameObject 鐨勮矾寰�
+ string path = GetGameObjectPath(go);
+
+ // 鎷疯礉鍒板壀鍒囨澘
+ GUIUtility.systemCopyBuffer = path;
+ Debug.Log("宸叉嫹璐濆埌鍓垏鏉�: " + path);
+ }
+ EditorGUILayout.EndHorizontal();
+
+ EditorGUILayout.BeginHorizontal();
+
+ if (GUILayout.Button("閲嶇疆鎵�鏈夊紩瀵�"))
+ {
+ NewBieCenter.Instance.ResetAllGuides();
+ }
+
+ if (GUILayout.Button("缁撴潫鎵�鏈夊紩瀵�"))
+ {
+ NewBieCenter.Instance.CompleteAllGuides();
+ }
+ EditorGUILayout.EndHorizontal();
+
+ DrawNewbieGuides();
+
+ EditorGUILayout.EndVertical();
+ }
+
+
+ // 閫掑綊鑾峰彇 GameObject 鐨勮矾寰�
+ private static string GetGameObjectPath(GameObject obj)
+ {
+ if (obj == null)
+ return string.Empty;
+
+ if (obj.transform.parent == null)
+ {
+ return obj.name;
+ }
+
+ if (obj.transform.parent.name == "UIRoot")
+ {
+ // 濡傛灉鐖惰妭鐐规槸 UIRoot锛屽垯杩斿洖褰撳墠鑺傜偣鐨勫悕绉�
+ return obj.name;
+ }
+
+
+ return GetGameObjectPath(obj.transform.parent.gameObject) + "/" + obj.name;
+ }
+
+
+ List<NewBieGuide> newbieGuides = null;
+ private Vector2 scrollPosition;
+
+ void DrawNewbieGuides()
+ {
+ if (newbieGuides == null)
+ {
+ newbieGuides = new List<NewBieGuide>();
+ var guides = GuideConfig.GetValues();
+ foreach (var config in guides)
+ {
+ 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("寮曞ID:" + 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();
+ }
+
+ }
+
+
+ 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()
+ {
+ if (!NewBieCenter.Instance.CheckGuideCondition(guideId))
+ {
+ Debug.LogError("寮曞鏉′欢涓嶆弧瓒�");
+ return;
+ }
+ NewBieCenter.Instance.StartNewBieGuide(guideId);
+ }
+
+ public void Finish()
+ {
+ NewBieCenter.Instance.FinishNewBieGuide(guideId);
+ }
+
+ public void Reset()
+ {
+ NewBieCenter.Instance.ResetGuide(guideId);
+ }
+ }
+
+
+
+}
diff --git a/Assets/Editor/ScriptEditor/NewBieGuideEditorWindow.cs.meta b/Assets/Editor/ScriptEditor/NewBieGuideEditorWindow.cs.meta
new file mode 100644
index 0000000..9c04435
--- /dev/null
+++ b/Assets/Editor/ScriptEditor/NewBieGuideEditorWindow.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 710406c165328b24189405363e66239d
+timeCreated: 1511919350
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Editor/ScriptEditor/NewBieGuideScriptableObjectEditor.cs b/Assets/Editor/ScriptEditor/NewBieGuideScriptableObjectEditor.cs
new file mode 100644
index 0000000..30b9ddb
--- /dev/null
+++ b/Assets/Editor/ScriptEditor/NewBieGuideScriptableObjectEditor.cs
@@ -0,0 +1,82 @@
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEditor;
+
+[CustomEditor(typeof(NewBieGuideScriptableObject))]
+public class NewBieGuideScriptableObjectEditor : Editor
+{
+ //鍔熻兘锛�1.鏄惁鍔熻兘寮�鍚紝椋炶鐩爣
+ // 2.鏄惁鏆傚仠涓绘垬鍦烘垬鏂�
+ public override void OnInspectorGUI()
+ {
+ var guide = target as NewBieGuideScriptableObject;
+
+ guide.stepId = EditorGUILayout.IntField("姝ラID", guide.stepId);
+ guide.guideType = (GuideType)EditorGUILayout.EnumPopup("寮曞绫诲瀷", guide.guideType);
+ if (guide.guideType == GuideType.NewBie)
+ {
+ //鐐瑰嚮寮曞
+ guide.UIElementPath = EditorGUILayout.TextField("鐐瑰嚮鐩爣璺緞", guide.UIElementPath);
+ guide.clickPosition = EditorGUILayout.Vector2Field("闀傜┖涓績涓庣洰鏍囩殑鍋忕Щ閲�", guide.clickPosition);
+ guide.clickSize = EditorGUILayout.Vector2Field("闀傜┖鍗婂緞", guide.clickSize);
+ guide.tipPosition = EditorGUILayout.Vector2Field("鎻愮ず璇綅缃笌鐩爣鐨勫亸绉婚噺", guide.tipPosition);
+ guide.arrowPosition = (NewBieGuideScriptableObject.ArrowPosition)EditorGUILayout.EnumPopup("寮曞绠ご浣嶇疆", guide.arrowPosition);
+
+ guide.voice = EditorGUILayout.IntField("闊虫晥", guide.voice);
+ guide.effect = EditorGUILayout.IntField("鐐瑰嚮鐗规晥", guide.effect);
+ guide.usherPosition = EditorGUILayout.Vector2Field("鐐瑰嚮鐗规晥涓庣洰鏍囩殑鍋忕Щ閲�", guide.usherPosition);
+ // guide.usherOrientation = (NewBieGuideScriptableObject.UsherOrientation)EditorGUILayout.EnumPopup("鏃犳晥", guide.usherOrientation);
+ // guide.usherAction = EditorGUILayout.IntField("鏃犳晥", guide.usherAction);
+
+ guide.clickAnyWhereComplete = EditorGUILayout.Toggle("鐐瑰嚮浠绘剰浣嶇疆瀹屾垚寮曞", guide.clickAnyWhereComplete);
+ guide.clickCompleteNoMask = EditorGUILayout.Toggle("鐐瑰嚮浠绘剰浣嶇疆瀹屾垚寮曞(鏃犺挋鐗堟ā寮�)", guide.clickCompleteNoMask);
+ }
+ else if (guide.guideType == GuideType.Function)
+ {
+ //鍔熻兘寮�鍚�
+ guide.UIElementPath = EditorGUILayout.TextField("鍔熻兘寮�鍚鍏ョ粓鐐�", guide.UIElementPath);
+
+ guide.clickPosition = EditorGUILayout.Vector2Field("闀傜┖涓績涓庣洰鏍囩殑鍋忕Щ閲�", guide.clickPosition);
+ guide.clickSize = EditorGUILayout.Vector2Field("闀傜┖鍗婂緞", guide.clickSize);
+ // guide.tipPosition = EditorGUILayout.Vector2Field("鏃犳晥", guide.tipPosition);
+ // guide.arrowPosition = (NewBieGuideScriptableObject.ArrowPosition)EditorGUILayout.EnumPopup("鏃犳晥", guide.arrowPosition);
+
+ guide.voice = EditorGUILayout.IntField("闊虫晥", guide.voice);
+ // guide.effect = EditorGUILayout.IntField("鏃犳晥", guide.effect);
+ // guide.usherPosition = EditorGUILayout.Vector2Field("鏃犳晥", guide.usherPosition);
+ // guide.usherOrientation = (NewBieGuideScriptableObject.UsherOrientation)EditorGUILayout.EnumPopup("鏃犳晥", guide.usherOrientation);
+ // guide.usherAction = EditorGUILayout.IntField("鏃犳晥", guide.usherAction);
+
+ // guide.clickAnyWhereComplete = EditorGUILayout.Toggle("鏃犳晥", guide.clickAnyWhereComplete);
+ // guide.clickCompleteNoMask = EditorGUILayout.Toggle("鏃犳晥", guide.clickCompleteNoMask);
+ }
+ else
+ {
+ //npc瀵硅瘽
+ guide.UIElementPath = EditorGUILayout.TextField("鏃犳晥", guide.UIElementPath);
+ guide.clickPosition = EditorGUILayout.Vector2Field("闀傜┖涓績涓庣洰鏍囩殑鍋忕Щ閲�", guide.clickPosition);
+ guide.clickSize = EditorGUILayout.Vector2Field("闀傜┖鍗婂緞", guide.clickSize);
+ // guide.tipPosition = EditorGUILayout.Vector2Field("鏃犳晥", guide.tipPosition);
+ // guide.arrowPosition = (NewBieGuideScriptableObject.ArrowPosition)EditorGUILayout.EnumPopup("鏃犳晥", guide.arrowPosition);
+
+ guide.voice = EditorGUILayout.IntField("闊虫晥", guide.voice);
+ guide.effect = EditorGUILayout.IntField("寮曞MM澶栬锛堢壒鏁圛D锛�", guide.effect);
+ guide.usherOrientation = (NewBieGuideScriptableObject.UsherOrientation)EditorGUILayout.EnumPopup("寮曞灏忓鏈濆悜", guide.usherOrientation);
+ guide.usherAction = EditorGUILayout.IntField("寮曞灏忓鍔ㄤ綔", guide.usherAction);
+ guide.usherPosition = EditorGUILayout.Vector2Field("寮曞灏忓浣嶇疆", guide.usherPosition);
+ // guide.clickAnyWhereComplete = EditorGUILayout.Toggle("鏃犳晥", guide.clickAnyWhereComplete);
+ // guide.clickCompleteNoMask = EditorGUILayout.Toggle("鏃犳晥", guide.clickCompleteNoMask);
+ }
+
+
+ EditorGUILayout.HelpBox("寮曞姝ラ鐨勬枃鏈唴瀹瑰湪璇█琛ㄤ腑閰嶇疆濡� guide_new_1; 璇█琛ㄦ湭閰嶇疆鍒欎笉浼氭樉绀�", MessageType.Info);
+
+
+ if (GUI.changed)
+ {
+ EditorUtility.SetDirty(target);
+ serializedObject.ApplyModifiedProperties();
+ }
+ }
+}
diff --git a/Assets/Editor/ScriptEditor/NewBieGuideScriptableObjectEditor.cs.meta b/Assets/Editor/ScriptEditor/NewBieGuideScriptableObjectEditor.cs.meta
new file mode 100644
index 0000000..1827bb2
--- /dev/null
+++ b/Assets/Editor/ScriptEditor/NewBieGuideScriptableObjectEditor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 9389d1a8a10fc6e41877f92c4b874d9f
+timeCreated: 1511794110
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Editor/SpritePacking/SpriteSettings.asset b/Assets/Editor/SpritePacking/SpriteSettings.asset
index 60ce5ff..5606880 100644
--- a/Assets/Editor/SpritePacking/SpriteSettings.asset
+++ b/Assets/Editor/SpritePacking/SpriteSettings.asset
@@ -79,28 +79,6 @@
maxTextureSize: 2048
textureCompression: 1
textureFormat: 50
- - folderName: 8Words
- blockOffset: 1
- enableRotation: 0
- enableTightPacking: 0
- padding: 4
- readable: 0
- generateMipMaps: 0
- sRGB: 1
- filterMode: 1
- platformSettings:
- - name: Standalone
- maxTextureSize: 2048
- textureCompression: 1
- textureFormat: 4
- - name: Android
- maxTextureSize: 2048
- textureCompression: 1
- textureFormat: 50
- - name: iPhone
- maxTextureSize: 2048
- textureCompression: 1
- textureFormat: 50
- folderName: Common
blockOffset: 1
enableRotation: 0
@@ -190,28 +168,6 @@
textureCompression: 1
textureFormat: 50
- folderName: icon16
- blockOffset: 1
- enableRotation: 0
- enableTightPacking: 0
- padding: 4
- readable: 0
- generateMipMaps: 0
- sRGB: 1
- filterMode: 1
- platformSettings:
- - name: Standalone
- maxTextureSize: 2048
- textureCompression: 1
- textureFormat: 4
- - name: Android
- maxTextureSize: 2048
- textureCompression: 1
- textureFormat: 50
- - name: iPhone
- maxTextureSize: 2048
- textureCompression: 1
- textureFormat: 50
- - folderName: Important
blockOffset: 1
enableRotation: 0
enableTightPacking: 0
diff --git a/Assets/Editor/UI/PSDTOUGUIProcessor.cs b/Assets/Editor/UI/PSDTOUGUIProcessor.cs
index 9e995f8..47d4560 100644
--- a/Assets/Editor/UI/PSDTOUGUIProcessor.cs
+++ b/Assets/Editor/UI/PSDTOUGUIProcessor.cs
@@ -79,7 +79,7 @@
return result;
}
- [UnityEditor.MenuItem("GameObject/鐢熸垚UI鑴氭湰", false, 10)]
+ [UnityEditor.MenuItem("GameObject/鑴氭湰/鐢熸垚UI鑴氭湰", false, 10)]
public static void GenerateUIScript()
{
GameObject go = Selection.activeGameObject;
--
Gitblit v1.8.0