瀏覽代碼

Merge branch 'master' of http://fort23.cn:3000/ck/XiuXianGame

LT 1 天之前
父節點
當前提交
4016e92b20
共有 27 個文件被更改,包括 1262 次插入311 次删除
  1. 6 27
      Assets/Editor/GameRuntimeConfigInspector.cs
  2. 92 0
      Assets/Res/Config/LanguageChineseConfig.json
  3. 444 15
      Assets/Res/Config/PlayerGuideConfig.json
  4. 86 2
      Assets/Res/UI/GuidePanel/GuidePanel.prefab
  5. 3 3
      Assets/Res/UI/SkillSelectPanel/SkillSelectPanel.prefab
  6. 0 0
      Assets/Resources/GameRuntimeConfig.asset
  7. 0 0
      Assets/Resources/GameRuntimeConfig.asset.meta
  8. 12 159
      Assets/Scripts/Core/Utility/GameRuntimeConfig.cs
  9. 5 1
      Assets/Scripts/GameLogic/Player/AccountFileInfo.cs
  10. 9 1
      Assets/Scripts/GameUI/EventManager/EventSystemManager.cs
  11. 2 0
      Assets/Scripts/GameUI/UI/AppBarPanel/AppBarPanel.cs
  12. 31 4
      Assets/Scripts/GameUI/UI/CombatPanel/SkillSelectPanel.cs
  13. 5 0
      Assets/Scripts/GameUI/UI/DivineSence/DivineSenceEventPreviewPanel.cs
  14. 4 0
      Assets/Scripts/GameUI/UI/DivineSence/DivineSenceInfoPanel.cs
  15. 2 2
      Assets/Scripts/GameUI/UI/GuidePanel/DialogBox.cs
  16. 5 2
      Assets/Scripts/GameUI/UI/GuidePanel/IGuideLogic.cs
  17. 10 10
      Assets/Scripts/GameUI/UI/GuidePanel/Phases/Phase1.cs
  18. 13 13
      Assets/Scripts/GameUI/UI/GuidePanel/Phases/Phase2.cs
  19. 158 0
      Assets/Scripts/GameUI/UI/GuidePanel/Phases/Phase3.cs
  20. 3 0
      Assets/Scripts/GameUI/UI/GuidePanel/Phases/Phase3.cs.meta
  21. 274 0
      Assets/Scripts/GameUI/UI/GuidePanel/Phases/Phase4.cs
  22. 3 0
      Assets/Scripts/GameUI/UI/GuidePanel/Phases/Phase4.cs.meta
  23. 90 72
      Assets/Scripts/GameUI/UI/GuidePanel/PlayerGuideManager.cs
  24. 5 0
      Assets/Scripts/GameUI/UI/MainPanel/MainPanel.cs
  25. 二進制
      Excel2Json/Excel/EventConfig.xlsx
  26. 二進制
      Excel2Json/Excel/Language.xlsx
  27. 二進制
      Excel2Json/Excel/PlayerGuide.xlsx

+ 6 - 27
Assets/Editor/GameRuntimeConfigInspector.cs

@@ -11,33 +11,12 @@ namespace Fort23.Editor
     {
         public override void OnInspectorGUI()
         {
-            // GameRuntimeConfig runtimeConfig = target as GameRuntimeConfig;
-            // runtimeConfig.isUpdateAsset = EditorGUILayout.Toggle("是否开启更新资源", runtimeConfig.isUpdateAsset);
-            // runtimeConfig.version = EditorGUILayout.IntField("当前大版本", runtimeConfig.version);
-            // runtimeConfig.buildVer = EditorGUILayout.IntField("当前小版本", runtimeConfig.buildVer);
-            // runtimeConfig.assetVer = EditorGUILayout.IntField("当前资源版本", runtimeConfig.assetVer);
-            // runtimeConfig.serverVer = EditorGUILayout.IntField("当前服务器版本", runtimeConfig.serverVer);
-            // // runtimeConfig.authen = EditorGUILayout.Toggle("是否开启防沉谜", runtimeConfig.authen);
-            // runtimeConfig.unLockAll = EditorGUILayout.Toggle("是否解锁全部系统", runtimeConfig.unLockAll);
-            //
-            //
-            // EditorGUILayout.Space(20);
-            // EditorGUILayout.LabelField("引导相关");
-            //
-            // runtimeConfig.isSkip = EditorGUILayout.Toggle("是否跳过", runtimeConfig.isSkip);
-            // runtimeConfig.isUnlockAll = EditorGUILayout.Toggle("是否全部解锁", runtimeConfig.isUnlockAll);
-            // runtimeConfig.IsUseServerData = EditorGUILayout.Toggle("是否使用服务器引导数据", runtimeConfig.IsUseServerData);
-            // runtimeConfig.isDebug = EditorGUILayout.Toggle("是否开启调试模式", runtimeConfig.isDebug);
-            //
-            //
-            //
-            // runtimeConfig.debugPhase = EditorGUILayout.Vector4Field("指定调试新手引导", runtimeConfig.debugPhase);
-            //
-            //
-            // runtimeConfig.ClearGuideData = EditorGUILayout.Toggle("是否清除新手引导数据", runtimeConfig.ClearGuideData);
-            //
-            // runtimeConfig.isSaveCombat = EditorGUILayout.Toggle("开始战斗日志保存", runtimeConfig.isSaveCombat);
-            // runtimeConfig.isAllLog = EditorGUILayout.Toggle("开始战斗日志记录", runtimeConfig.isAllLog);
+            GameRuntimeConfig runtimeConfig = target as GameRuntimeConfig;
+            runtimeConfig.isSkip = EditorGUILayout.Toggle("是否跳过", runtimeConfig.isSkip);
+            runtimeConfig.isUnlockAll = EditorGUILayout.Toggle("是否全部解锁", runtimeConfig.isUnlockAll);
+            runtimeConfig.isDebug = EditorGUILayout.Toggle("是否开启调试模式", runtimeConfig.isDebug);
+            runtimeConfig.debugPhase = EditorGUILayout.Vector4Field("指定调试新手引导", runtimeConfig.debugPhase);
+
             
             if (GUILayout.Button("清理本地储存"))
             {

+ 92 - 0
Assets/Res/Config/LanguageChineseConfig.json

@@ -37595,6 +37595,98 @@
     {
       "ID": 10139,
       "txt": "我们先完成主线吧"
+    },
+    {
+      "ID": 10140,
+      "txt": "再完成10个神识事件,就可以发现新地点了"
+    },
+    {
+      "ID": 10141,
+      "txt": "完成这些神识事件,发现新的地点"
+    },
+    {
+      "ID": 10142,
+      "txt": "很好,你的境界提升了,可同时使用更多功法"
+    },
+    {
+      "ID": 10143,
+      "txt": "这里可以调整功法,下方是你拥有的功法"
+    },
+    {
+      "ID": 10144,
+      "txt": "上方的功法盘,是正在使用的功法"
+    },
+    {
+      "ID": 10145,
+      "txt": "点击调整按钮,开始配置功法"
+    },
+    {
+      "ID": 10146,
+      "txt": "点击想上阵的功法"
+    },
+    {
+      "ID": 10147,
+      "txt": "可以将功法放入功法盘的任意空位"
+    },
+    {
+      "ID": 10148,
+      "txt": "这是个{火}功法,把他放在功法盘{火}的附近,会优先释放"
+    },
+    {
+      "ID": 10149,
+      "txt": "功法盘调整完毕,点这里返回"
+    },
+    {
+      "ID": 10150,
+      "txt": "0"
+    },
+    {
+      "ID": 10151,
+      "txt": "0"
+    },
+    {
+      "ID": 10152,
+      "txt": "0"
+    },
+    {
+      "ID": 10153,
+      "txt": "0"
+    },
+    {
+      "ID": 10154,
+      "txt": "0"
+    },
+    {
+      "ID": 10155,
+      "txt": "0"
+    },
+    {
+      "ID": 10156,
+      "txt": "0"
+    },
+    {
+      "ID": 10157,
+      "txt": "0"
+    },
+    {
+      "ID": 10158,
+      "txt": "0"
+    },
+    {
+      "ID": 10159,
+      "txt": "0"
+    },
+    {
+      "ID": 10160,
+      "txt": "0"
+    },
+    {
+      "ID": 10161,
+      "txt": "0"
+    },
+    {
+      "ID": 10162,
+      "txt": "0"
     }
   ]
 }

+ 444 - 15
Assets/Res/Config/PlayerGuideConfig.json

@@ -20,7 +20,7 @@
       ],
       "SpeakerName": 0,
       "SpeakerStyle": 1,
-      "SpeakerImage": 303,
+      "SpeakerImage": 3,
       "desc": -1,
       "ExtraShow": [
         "0"
@@ -44,7 +44,7 @@
       "Index": 2,
       "NeedLevel": 0,
       "groupID": 1,
-      "FingerType": 1,
+      "FingerType": -1,
       "dialogPos": [
         -125,
         -100
@@ -59,7 +59,7 @@
       ],
       "SpeakerName": 0,
       "SpeakerStyle": 3,
-      "SpeakerImage": 303,
+      "SpeakerImage": 3,
       "desc": 10132,
       "ExtraShow": [
         "0"
@@ -97,8 +97,8 @@
         500
       ],
       "SpeakerName": 0,
-      "SpeakerStyle": 3,
-      "SpeakerImage": 303,
+      "SpeakerStyle": 1,
+      "SpeakerImage": 3,
       "desc": 10133,
       "ExtraShow": [
         "0"
@@ -137,7 +137,7 @@
       ],
       "SpeakerName": 0,
       "SpeakerStyle": 1,
-      "SpeakerImage": 303,
+      "SpeakerImage": 3,
       "desc": 10134,
       "ExtraShow": [
         "0"
@@ -176,7 +176,7 @@
       ],
       "SpeakerName": 0,
       "SpeakerStyle": 1,
-      "SpeakerImage": 303,
+      "SpeakerImage": 3,
       "desc": 10135,
       "ExtraShow": [
         "0"
@@ -200,7 +200,7 @@
       "Index": 3,
       "NeedLevel": 0,
       "groupID": 2,
-      "FingerType": 1,
+      "FingerType": -1,
       "dialogPos": [
         -215,
         -117
@@ -215,7 +215,7 @@
       ],
       "SpeakerName": 0,
       "SpeakerStyle": 1,
-      "SpeakerImage": 303,
+      "SpeakerImage": 3,
       "desc": 10136,
       "ExtraShow": [
         "0"
@@ -239,7 +239,7 @@
       "Index": 4,
       "NeedLevel": 0,
       "groupID": 2,
-      "FingerType": 1,
+      "FingerType": -1,
       "dialogPos": [
         -234,
         -114
@@ -254,7 +254,7 @@
       ],
       "SpeakerName": 0,
       "SpeakerStyle": 1,
-      "SpeakerImage": 303,
+      "SpeakerImage": 3,
       "desc": 10137,
       "ExtraShow": [
         "0"
@@ -278,7 +278,7 @@
       "Index": 5,
       "NeedLevel": 0,
       "groupID": 2,
-      "FingerType": 1,
+      "FingerType": -1,
       "dialogPos": [
         -125,
         -100
@@ -293,7 +293,7 @@
       ],
       "SpeakerName": 0,
       "SpeakerStyle": 1,
-      "SpeakerImage": 303,
+      "SpeakerImage": 3,
       "desc": 10138,
       "ExtraShow": [
         "0"
@@ -332,7 +332,7 @@
       ],
       "SpeakerName": 0,
       "SpeakerStyle": 1,
-      "SpeakerImage": 303,
+      "SpeakerImage": 3,
       "desc": 10139,
       "ExtraShow": [
         "0"
@@ -371,7 +371,7 @@
       ],
       "SpeakerName": 0,
       "SpeakerStyle": 1,
-      "SpeakerImage": 303,
+      "SpeakerImage": 3,
       "desc": -1,
       "ExtraShow": [
         "0"
@@ -389,6 +389,435 @@
       "ForceOnclick": 1,
       "forceText": 1,
       "voiceFile": ""
+    },
+    {
+      "ID": 301,
+      "Index": 1,
+      "NeedLevel": 0,
+      "groupID": 3,
+      "FingerType": 1,
+      "dialogPos": [
+        -182,
+        -517
+      ],
+      "NpcPos": [
+        422,
+        -100
+      ],
+      "NpcSize": [
+        500,
+        500
+      ],
+      "SpeakerName": 0,
+      "SpeakerStyle": 1,
+      "SpeakerImage": 3,
+      "desc": 10140,
+      "ExtraShow": [
+        "0"
+      ],
+      "Highlighting": 1,
+      "blackAlpha": 0.0,
+      "Handle": 1,
+      "IsSkip": 0,
+      "TextSize": [
+        1240,
+        157
+      ],
+      "reversalFinger": 1,
+      "reversalBox": 2,
+      "ForceOnclick": 1,
+      "forceText": 1,
+      "voiceFile": ""
+    },
+    {
+      "ID": 302,
+      "Index": 2,
+      "NeedLevel": 0,
+      "groupID": 3,
+      "FingerType": 1,
+      "dialogPos": [
+        -182,
+        -517
+      ],
+      "NpcPos": [
+        422,
+        -100
+      ],
+      "NpcSize": [
+        500,
+        500
+      ],
+      "SpeakerName": 0,
+      "SpeakerStyle": 1,
+      "SpeakerImage": 3,
+      "desc": -1,
+      "ExtraShow": [
+        "0"
+      ],
+      "Highlighting": 1,
+      "blackAlpha": 0.0,
+      "Handle": 1,
+      "IsSkip": 0,
+      "TextSize": [
+        1240,
+        157
+      ],
+      "reversalFinger": 1,
+      "reversalBox": 2,
+      "ForceOnclick": 1,
+      "forceText": 1,
+      "voiceFile": ""
+    },
+    {
+      "ID": 303,
+      "Index": 3,
+      "NeedLevel": 0,
+      "groupID": 3,
+      "FingerType": -1,
+      "dialogPos": [
+        -182,
+        -517
+      ],
+      "NpcPos": [
+        422,
+        -100
+      ],
+      "NpcSize": [
+        500,
+        500
+      ],
+      "SpeakerName": 0,
+      "SpeakerStyle": 1,
+      "SpeakerImage": 3,
+      "desc": 10141,
+      "ExtraShow": [
+        "0"
+      ],
+      "Highlighting": 1,
+      "blackAlpha": 0.0,
+      "Handle": 1,
+      "IsSkip": 0,
+      "TextSize": [
+        1240,
+        157
+      ],
+      "reversalFinger": 1,
+      "reversalBox": 2,
+      "ForceOnclick": 0,
+      "forceText": 1,
+      "voiceFile": ""
+    },
+    {
+      "ID": 401,
+      "Index": 1,
+      "NeedLevel": 0,
+      "groupID": 4,
+      "FingerType": 1,
+      "dialogPos": [
+        -182,
+        -517
+      ],
+      "NpcPos": [
+        422,
+        -100
+      ],
+      "NpcSize": [
+        500,
+        500
+      ],
+      "SpeakerName": 0,
+      "SpeakerStyle": 1,
+      "SpeakerImage": 3,
+      "desc": 10142,
+      "ExtraShow": [
+        "0"
+      ],
+      "Highlighting": 1,
+      "blackAlpha": 0.0,
+      "Handle": 1,
+      "IsSkip": 0,
+      "TextSize": [
+        1240,
+        157
+      ],
+      "reversalFinger": 1,
+      "reversalBox": 2,
+      "ForceOnclick": 1,
+      "forceText": 1,
+      "voiceFile": ""
+    },
+    {
+      "ID": 402,
+      "Index": 2,
+      "NeedLevel": 0,
+      "groupID": 4,
+      "FingerType": -1,
+      "dialogPos": [
+        -213,
+        231
+      ],
+      "NpcPos": [
+        422,
+        -100
+      ],
+      "NpcSize": [
+        500,
+        500
+      ],
+      "SpeakerName": 0,
+      "SpeakerStyle": 1,
+      "SpeakerImage": 3,
+      "desc": 10143,
+      "ExtraShow": [
+        "0"
+      ],
+      "Highlighting": 1,
+      "blackAlpha": 0.0,
+      "Handle": 1,
+      "IsSkip": 0,
+      "TextSize": [
+        1240,
+        157
+      ],
+      "reversalFinger": 1,
+      "reversalBox": 2,
+      "ForceOnclick": 0,
+      "forceText": 1,
+      "voiceFile": ""
+    },
+    {
+      "ID": 403,
+      "Index": 3,
+      "NeedLevel": 0,
+      "groupID": 4,
+      "FingerType": -1,
+      "dialogPos": [
+        -182,
+        -517
+      ],
+      "NpcPos": [
+        422,
+        -100
+      ],
+      "NpcSize": [
+        500,
+        500
+      ],
+      "SpeakerName": 0,
+      "SpeakerStyle": 1,
+      "SpeakerImage": 3,
+      "desc": 10144,
+      "ExtraShow": [
+        "0"
+      ],
+      "Highlighting": 1,
+      "blackAlpha": 0.0,
+      "Handle": 1,
+      "IsSkip": 0,
+      "TextSize": [
+        1240,
+        157
+      ],
+      "reversalFinger": 1,
+      "reversalBox": 2,
+      "ForceOnclick": 0,
+      "forceText": 1,
+      "voiceFile": ""
+    },
+    {
+      "ID": 404,
+      "Index": 4,
+      "NeedLevel": 0,
+      "groupID": 4,
+      "FingerType": 1,
+      "dialogPos": [
+        -182,
+        -517
+      ],
+      "NpcPos": [
+        422,
+        -100
+      ],
+      "NpcSize": [
+        500,
+        500
+      ],
+      "SpeakerName": 0,
+      "SpeakerStyle": 1,
+      "SpeakerImage": 3,
+      "desc": 10145,
+      "ExtraShow": [
+        "0"
+      ],
+      "Highlighting": 1,
+      "blackAlpha": 0.0,
+      "Handle": 1,
+      "IsSkip": 0,
+      "TextSize": [
+        1240,
+        157
+      ],
+      "reversalFinger": 1,
+      "reversalBox": 2,
+      "ForceOnclick": 1,
+      "forceText": 1,
+      "voiceFile": ""
+    },
+    {
+      "ID": 405,
+      "Index": 5,
+      "NeedLevel": 0,
+      "groupID": 4,
+      "FingerType": 1,
+      "dialogPos": [
+        -182,
+        -517
+      ],
+      "NpcPos": [
+        422,
+        -100
+      ],
+      "NpcSize": [
+        500,
+        500
+      ],
+      "SpeakerName": 0,
+      "SpeakerStyle": 1,
+      "SpeakerImage": 3,
+      "desc": 10146,
+      "ExtraShow": [
+        "0"
+      ],
+      "Highlighting": 1,
+      "blackAlpha": 0.0,
+      "Handle": 1,
+      "IsSkip": 0,
+      "TextSize": [
+        1240,
+        157
+      ],
+      "reversalFinger": 1,
+      "reversalBox": 2,
+      "ForceOnclick": 1,
+      "forceText": 1,
+      "voiceFile": ""
+    },
+    {
+      "ID": 406,
+      "Index": 6,
+      "NeedLevel": 0,
+      "groupID": 4,
+      "FingerType": -1,
+      "dialogPos": [
+        -182,
+        -517
+      ],
+      "NpcPos": [
+        422,
+        -100
+      ],
+      "NpcSize": [
+        500,
+        500
+      ],
+      "SpeakerName": 0,
+      "SpeakerStyle": 1,
+      "SpeakerImage": 3,
+      "desc": 10147,
+      "ExtraShow": [
+        "0"
+      ],
+      "Highlighting": 1,
+      "blackAlpha": 0.0,
+      "Handle": 1,
+      "IsSkip": 0,
+      "TextSize": [
+        1240,
+        157
+      ],
+      "reversalFinger": 1,
+      "reversalBox": 2,
+      "ForceOnclick": 0,
+      "forceText": 1,
+      "voiceFile": ""
+    },
+    {
+      "ID": 407,
+      "Index": 7,
+      "NeedLevel": 0,
+      "groupID": 4,
+      "FingerType": 1,
+      "dialogPos": [
+        -182,
+        -517
+      ],
+      "NpcPos": [
+        422,
+        -100
+      ],
+      "NpcSize": [
+        500,
+        500
+      ],
+      "SpeakerName": 0,
+      "SpeakerStyle": 1,
+      "SpeakerImage": 3,
+      "desc": 10148,
+      "ExtraShow": [
+        "0"
+      ],
+      "Highlighting": 1,
+      "blackAlpha": 0.0,
+      "Handle": 1,
+      "IsSkip": 0,
+      "TextSize": [
+        1240,
+        157
+      ],
+      "reversalFinger": 1,
+      "reversalBox": 2,
+      "ForceOnclick": 1,
+      "forceText": 1,
+      "voiceFile": ""
+    },
+    {
+      "ID": 408,
+      "Index": 8,
+      "NeedLevel": 0,
+      "groupID": 4,
+      "FingerType": 1,
+      "dialogPos": [
+        -182,
+        -517
+      ],
+      "NpcPos": [
+        422,
+        -100
+      ],
+      "NpcSize": [
+        500,
+        500
+      ],
+      "SpeakerName": 0,
+      "SpeakerStyle": 1,
+      "SpeakerImage": 3,
+      "desc": 10149,
+      "ExtraShow": [
+        "0"
+      ],
+      "Highlighting": 1,
+      "blackAlpha": 0.0,
+      "Handle": 1,
+      "IsSkip": 0,
+      "TextSize": [
+        1240,
+        157
+      ],
+      "reversalFinger": 1,
+      "reversalBox": 2,
+      "ForceOnclick": 1,
+      "forceText": 1,
+      "voiceFile": ""
     }
   ]
 }

+ 86 - 2
Assets/Res/UI/GuidePanel/GuidePanel.prefab

@@ -976,6 +976,38 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 6330229592131453682}
     m_Modifications:
+    - target: {fileID: 313721103517240215, guid: c49f0291e3d46584db5de0cfca5970e2, type: 3}
+      propertyPath: m_Enabled
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 313721103517240215, guid: c49f0291e3d46584db5de0cfca5970e2, type: 3}
+      propertyPath: _icon_name
+      value: dec_ty_biaoji
+      objectReference: {fileID: 0}
+    - target: {fileID: 313721103517240215, guid: c49f0291e3d46584db5de0cfca5970e2, type: 3}
+      propertyPath: CurrSpriteAtlas
+      value: 
+      objectReference: {fileID: 100100200, guid: b02f6b41a7a9fa8458f4226ab6b3ea47, type: 3}
+    - target: {fileID: 313721103517240215, guid: c49f0291e3d46584db5de0cfca5970e2, type: 3}
+      propertyPath: packInfo.packName
+      value: tongyong
+      objectReference: {fileID: 0}
+    - target: {fileID: 313721103517240215, guid: c49f0291e3d46584db5de0cfca5970e2, type: 3}
+      propertyPath: packInfo.lasetJsonGUID
+      value: 0dc26aad2093bf99c21596c28053b889
+      objectReference: {fileID: 0}
+    - target: {fileID: 313721103517240215, guid: c49f0291e3d46584db5de0cfca5970e2, type: 3}
+      propertyPath: packInfo.packgJsonPath
+      value: /Art/UIAssets/TextrueJson\tongyong.txt
+      objectReference: {fileID: 0}
+    - target: {fileID: 313721103517240215, guid: c49f0291e3d46584db5de0cfca5970e2, type: 3}
+      propertyPath: packInfo.packgSpritePath
+      value: Assets/Res/UIAtlas/tongyong.spriteatlasv2
+      objectReference: {fileID: 0}
+    - target: {fileID: 734780392825207831, guid: c49f0291e3d46584db5de0cfca5970e2, type: 3}
+      propertyPath: m_IsActive
+      value: 1
+      objectReference: {fileID: 0}
     - target: {fileID: 734780393184598388, guid: c49f0291e3d46584db5de0cfca5970e2, type: 3}
       propertyPath: m_Name
       value: GuideHand
@@ -1042,11 +1074,11 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 734780393184598389, guid: c49f0291e3d46584db5de0cfca5970e2, type: 3}
       propertyPath: m_AnchoredPosition.x
-      value: 532
+      value: 663
       objectReference: {fileID: 0}
     - target: {fileID: 734780393184598389, guid: c49f0291e3d46584db5de0cfca5970e2, type: 3}
       propertyPath: m_AnchoredPosition.y
-      value: -34
+      value: 15
       objectReference: {fileID: 0}
     - target: {fileID: 734780393184598389, guid: c49f0291e3d46584db5de0cfca5970e2, type: 3}
       propertyPath: m_LocalEulerAnglesHint.x
@@ -1060,10 +1092,18 @@ PrefabInstance:
       propertyPath: m_LocalEulerAnglesHint.z
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 1687954597473891029, guid: c49f0291e3d46584db5de0cfca5970e2, type: 3}
+      propertyPath: m_Enabled
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 1687954597473891029, guid: c49f0291e3d46584db5de0cfca5970e2, type: 3}
       propertyPath: m_SortingLayer
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 1687954597818881593, guid: c49f0291e3d46584db5de0cfca5970e2, type: 3}
+      propertyPath: m_IsActive
+      value: 1
+      objectReference: {fileID: 0}
     - target: {fileID: 1687954597818881594, guid: c49f0291e3d46584db5de0cfca5970e2, type: 3}
       propertyPath: m_LocalScale.x
       value: 0
@@ -1076,10 +1116,34 @@ PrefabInstance:
       propertyPath: m_LocalScale.z
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 1687954597818881594, guid: c49f0291e3d46584db5de0cfca5970e2, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1687954597818881594, guid: c49f0291e3d46584db5de0cfca5970e2, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3642755943783118606, guid: c49f0291e3d46584db5de0cfca5970e2, type: 3}
+      propertyPath: m_Enabled
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 3642755943783118606, guid: c49f0291e3d46584db5de0cfca5970e2, type: 3}
       propertyPath: m_SortingLayer
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 4714872258754713434, guid: c49f0291e3d46584db5de0cfca5970e2, type: 3}
+      propertyPath: m_Enabled
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4714872258754713434, guid: c49f0291e3d46584db5de0cfca5970e2, type: 3}
+      propertyPath: m_SortingLayer
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5059957099899968773, guid: c49f0291e3d46584db5de0cfca5970e2, type: 3}
+      propertyPath: CurrIndex
+      value: 0
+      objectReference: {fileID: 0}
     m_RemovedComponents: []
     m_RemovedGameObjects: []
     m_AddedGameObjects: []
@@ -1109,6 +1173,14 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 6330229592131453682}
     m_Modifications:
+    - target: {fileID: 729793689063530974, guid: 100fb54f4740f6e49aec0b41541234e1, type: 3}
+      propertyPath: m_IsActive
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 1578969768378412423, guid: 100fb54f4740f6e49aec0b41541234e1, type: 3}
+      propertyPath: m_IsActive
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 1967189969305390292, guid: 100fb54f4740f6e49aec0b41541234e1, type: 3}
       propertyPath: m_Pivot.x
       value: 0.5
@@ -1189,6 +1261,10 @@ PrefabInstance:
       propertyPath: m_LocalEulerAnglesHint.z
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 3412874384718582225, guid: 100fb54f4740f6e49aec0b41541234e1, type: 3}
+      propertyPath: m_RaycastTarget
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 4272906380317684913, guid: 100fb54f4740f6e49aec0b41541234e1, type: 3}
       propertyPath: m_Name
       value: DialogBox
@@ -1201,6 +1277,10 @@ PrefabInstance:
       propertyPath: m_FontData.m_FontSize
       value: 30
       objectReference: {fileID: 0}
+    - target: {fileID: 6292012909776935884, guid: 100fb54f4740f6e49aec0b41541234e1, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: -577
+      objectReference: {fileID: 0}
     - target: {fileID: 6671338867877508527, guid: 100fb54f4740f6e49aec0b41541234e1, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -1225,6 +1305,10 @@ PrefabInstance:
       propertyPath: m_SizeDelta.x
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 8842748389199906682, guid: 100fb54f4740f6e49aec0b41541234e1, type: 3}
+      propertyPath: m_RaycastTarget
+      value: 1
+      objectReference: {fileID: 0}
     m_RemovedComponents: []
     m_RemovedGameObjects: []
     m_AddedGameObjects: []

+ 3 - 3
Assets/Res/UI/SkillSelectPanel/SkillSelectPanel.prefab

@@ -171,8 +171,8 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
-  m_AnchoredPosition: {x: -323.9, y: -804.6}
-  m_SizeDelta: {x: 79, y: 84}
+  m_AnchoredPosition: {x: -337.1, y: -804.6}
+  m_SizeDelta: {x: 94, y: 94}
   m_Pivot: {x: 0, y: 0}
 --- !u!222 &4355836709569313884
 CanvasRenderer:
@@ -256,7 +256,7 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
-  _icon_name: dec_fanhui1
+  _icon_name: dec_fanhuianniu
   isNotLoadDeftIcon: 0
   CurrSpriteAtlas: {fileID: 100100200, guid: b02f6b41a7a9fa8458f4226ab6b3ea47, type: 3}
   packInfo:

+ 0 - 0
Assets/Editor/GameRuntimeConfig.asset → Assets/Resources/GameRuntimeConfig.asset


+ 0 - 0
Assets/Editor/GameRuntimeConfig.asset.meta → Assets/Resources/GameRuntimeConfig.asset.meta


+ 12 - 159
Assets/Scripts/Core/Utility/GameRuntimeConfig.cs

@@ -7,166 +7,19 @@ namespace Fort23.Mono
     [CreateAssetMenu(fileName = "Assets/GameRuntimeConfig", menuName = "GameRuntimeConfig", order = 0)]
     public class GameRuntimeConfig : ScriptableObject
     {
-        // // 大版本号
-        // public int version;
-        //
-        // // 发布版本号
-        // public int buildVer;
-        //
-        // // 资源版本号
-        // public int assetVer;
-        //
-        // // 服务器版本号
-        // public int serverVer;
-        //
-        // // 发送给服务器的资源版本号,与服务器对比,用于客户端资源强更
-        // public int sendAssetVer;
-        //
-        // /// <summary>
-        // /// 解锁所有系统
-        // /// </summary>
-        // public bool unLockAll;
-        //
-        // public bool isUpdateAsset;
-        //
-        //
-        // public bool isSkip;
-        //
-        // public bool isUnlockAll;
-        //
-        // public bool isDebug;
-        //
-        // public bool IsUseServerData;
-        //
-        // public Vector4 debugPhase;
-        //
-        // public bool ClearGuideData;
-        //
-        //
-        // public Area area;
-        // public CDN cdn;
-        // public LoginServer loginServer;
-        // public bool isSaveCombat = false;
-        // public bool isAllLog = false;
-        //
-        // public string AppVer
-        // {
-        //     get { return version + "." + buildVer; }
-        // }
+
+        public bool isSkip;
+        
+        public bool isUnlockAll;
+        
+        public bool isDebug;
+        
+        public Vector4 debugPhase;
+        
+    
+ 
     }
 
 
-    // [Flags]
-    // public enum Area
-    // {
-    //     [EnumLabel("无", "")] None = 0,
-    //     [EnumLabel("国际", "AREA_ABROAD")] Abroad = 2,
-    //     [EnumLabel("越南", "AREA_VIETNAM")] Vietnam = 4,
-    //     [EnumLabel("韩国", "AREA_KOREA")] Korea = 8,
-    //     [EnumLabel("国内", "AREA_CHINA")] China = 16,
-    //     [EnumLabel("香港", "AREA_HK")] HongKang = 32,
-    // }
-    //
-    // public enum CDN
-    // {
-    //     [EnumLabel("华为云(备用)", "http://121.36.145.47/TestAsset/")]
-    //     HuaWei,
-    //
-    //     [EnumLabel("国际正式", "http://autoheros.test.233i.com/data/007asset/")]
-    //     HaiWai,
-    //
-    //     [EnumLabel("国际测试", "http://121.36.145.47/GuoJi/")]
-    //     HaiWaiTest,
-    //
-    //     [EnumLabel("国内正式", "http://cn-autoheros.233i.com/data/007asset/")]
-    //     GuoNei,
-    //
-    //     [EnumLabel("国内测试", "http://121.36.145.47/GuoNei/")]
-    //     GuoNeiTest,
-    //
-    //     [EnumLabel("韩国正式", "http://autoheros.test.233i.com/data/007asset/fort23Test/")]
-    //     HanGuo,
-    //
-    //     [EnumLabel("韩国测试", "http://121.36.145.47/HanGuo/")]
-    //     HanGuoTest,
-    //
-    //     [EnumLabel("越南正式", "http://121.36.145.47/TestAsset/")]
-    //     YueNan,
-    //
-    //     [EnumLabel("越南测试", "http://121.36.145.47/YueNan/")]
-    //     YueNanTest,
-    //
-    //     [EnumLabel("港澳台正式", "http://121.36.145.47/GAT/")]
-    //     HK,
-    //
-    //     [EnumLabel("港澳台测试", "http://121.36.145.47/YueNan/")]
-    //     KHTest,
-    //
-    //     [EnumLabel("本地(192.168.123.xxx:8080)", "http://192.168.123.216:8080/res/")]
-    //     Other,
-    // }
-    //
-    // public enum LoginServer
-    // {
-    //     [EnumLabel("国际测试(华为)", data: "http://121.36.145.47:998")]
-    //     HuaWei,
-    //
-    //     [EnumLabel("国际正式(腾讯)", "http://autoheros.login.233i.com:1000")]
-    //     HaiWai,
-    //
-    //     [EnumLabel("国内正式", "http://cn-autoheros.login.233i.com:999")]
-    //     GuoNei,
-    //
-    //     [EnumLabel("国内审核测试", "http://autoheros_cn_test.login.233i.com:1000")]
-    //     GuoNeiTest,
-    //
-    //     [EnumLabel("韩国", "http://101.33.66.62:1000")]
-    //     HanGuo,
-    //
-    //     [EnumLabel("越南", "http://103.124.94.73:1000")]
-    //     YueNan,
-    //
-    //     [EnumLabel("港澳台", "http://175.97.134.167:10001")]
-    //     HK,
-    //
-    //     [EnumLabel("海外测试(华为997)", data: "http://121.36.145.47:997")]
-    //     HuaWei_997,
-    //
-    //     //[EnumLabel("其他(192.168.123.xxx:1000)", "http://192.168.123.216:1000")]
-    //     [EnumLabel("其他(192.168.123.xxx:1000)", "http://127.0.0.1:1000")]
-    //     Other
-    // }
-    //
-    // public enum AnaroidPackNameServer
-    // {
-    //     [EnumLabel("海外", data = "com.axe233i.autoheroes.oversea.andriod")]
-    //     A_Google,
-    //
-    //     [EnumLabel("国内", data = "com.shiguangniuniu.autoheroes.domestic.android")]
-    //     A_GuoNei,
-    //
-    //     [EnumLabel("韩国", data = "com.youloft.autoheroes")]
-    //     A_HaiGuo,
-    //
-    //     [EnumLabel("越南", data = "com.mobileevosaigon.starvearena")] // com.misaigon.starvearena
-    //     A_YueNan,
-    //
-    //     [EnumLabel("港澳台", data = "com.luckyfun.aedzj")]
-    //     A_GangAoTai,
-    // }
-    //
-    // public enum IosPackNameServer
-    // {
-    //     [EnumLabel("海外", data = "com.axe233i.autoheroes.oversea.ios")]
-    //     iOS_haiwai,
-    //
-    //     [EnumLabel("国内", data = "com.shiguangniuniu.autoheroes.domestic.ios")]
-    //     iOS_GuoNei,
-    //
-    //     [EnumLabel("越南", data = "com.mobileevosaigon.starvearena.ios")]
-    //     iOS_YueNan,
-    //
-    //     [EnumLabel("港澳台", data = "com.cyh.aedzj")]
-    //     ioS_GangAoTai,
-    // }
+    
 }

+ 5 - 1
Assets/Scripts/GameLogic/Player/AccountFileInfo.cs

@@ -684,7 +684,11 @@ public class AccountFileInfo : Singleton<AccountFileInfo>
             skillData.id = initialPlayerConfig.gongfaId[i];
             skillData.star = 1;
             skillData.level = 1;
-            skillData.useIndex = i;
+            if (i <= 0)
+            {
+                skillData.useIndex = i;
+            }
+          
             playerData.AllSkillDatas.Add(skillData);
         }
 

+ 9 - 1
Assets/Scripts/GameUI/EventManager/EventSystemManager.cs

@@ -652,8 +652,16 @@ public class EventSystemManager : Singleton<EventSystemManager>
                                                         lastSmallPlacesData.completionEventCount <
                                                         lastSmallPlacesConfig.CompletionEventCount))
                 {
-                    TipMessagePanel.OpenTipMessagePanel(
+                    TipMessagePanel tipMessagePanel = await TipMessagePanel.OpenTipMessagePanel(
                         $"该任务需要先解锁[{LanguageManager.Instance.Text(lastSmallPlacesConfig.placeName)}], 完成{lastSmallPlacesConfig.CompletionEventCount}个任务后, 可解锁.");
+                    tipMessagePanel.UIClosed(() =>
+                    {
+                        if (PlayerGuideManager.Instance.GuideIsCanDo(3))
+                        {
+                            PlayerGuideManager.Instance.SetGuid(3);
+                        }
+                    });
+
                     return;
                 }
 

+ 2 - 0
Assets/Scripts/GameUI/UI/AppBarPanel/AppBarPanel.cs

@@ -187,6 +187,8 @@ namespace Fort23.Mono
 
             if(PlayerGuideManager.Instance.curPhase == 2)  
                 PlayerGuideManager.Instance.StepInit();
+            if(PlayerGuideManager.Instance.curPhase == 3)  
+                PlayerGuideManager.Instance.StepInit();
 
             EventSystemManager.Instance.isTriggerEvent = true;
             CombatDrive.Instance.CombatController.ChangeState(CombatController.idle);

+ 31 - 4
Assets/Scripts/GameUI/UI/CombatPanel/SkillSelectPanel.cs

@@ -16,7 +16,7 @@ namespace Fort23.Mono
     public partial class SkillSelectPanel : UIPanel, IScrollListContent
     {
         private bool _isSelectSkill;
-        private List<SkillKongWidget> allKongSkill = new List<SkillKongWidget>();
+        public List<SkillKongWidget> allKongSkill = new List<SkillKongWidget>();
         List<WuXingGongFaWidget> _wuXingGongFaWidgets = new List<WuXingGongFaWidget>();
         private SkillInfo selectSkillConfig;
         private bool isAlter;
@@ -80,6 +80,11 @@ namespace Fort23.Mono
 
         public override CTask<bool> AsyncInit(object[] uiData)
         {
+            if (PlayerGuideManager.Instance.GuideIsCanDo(4, 1))
+            {
+                PlayerGuideManager.Instance.NextGuide();
+            }
+
             allUseSkill = PlayerManager.Instance.GongFaControl.allUseSkill.ToArray();
             currenRoadSkilId = PlayerManager.Instance.myHero.TaoismSkillId;
             UpdateSkillWidget();
@@ -211,7 +216,14 @@ namespace Fort23.Mono
                 });
             });
 
-            Btn_Setting.onClick.AddListener(() => { ChangeInfoType(2); });
+            Btn_Setting.onClick.AddListener(() =>
+            {
+                ChangeInfoType(2);
+                if (PlayerGuideManager.Instance.GuideIsCanDo(4, 4))
+                {
+                    PlayerGuideManager.Instance.NextGuide();
+                }
+            });
 
             Btn_Jin.onClick.AddListener(() =>
             {
@@ -303,6 +315,11 @@ namespace Fort23.Mono
 
             guanbi.onClick.AddListener(() =>
             {
+                if (PlayerGuideManager.Instance.GuideIsCanDo(4, 8))
+                {
+                    PlayerGuideManager.Instance.NextGuide();
+                }
+
                 if (infoType == 2)
                 {
                     ChangeInfoType(1);
@@ -561,6 +578,11 @@ namespace Fort23.Mono
 
         private async void OnClickSkillKongWidget(ItemWidgetBasic obj)
         {
+            if (PlayerGuideManager.Instance.GuideIsCanDo(4, 7))
+            {
+                PlayerGuideManager.Instance.NextGuide();
+            }
+
             SkillKongWidget skillKongWidget = obj as SkillKongWidget;
             if (infoType == 1)
             {
@@ -939,7 +961,7 @@ namespace Fort23.Mono
             CombatDrive.Instance.CombatController.isUpdate = true;
         }
 
-        List<SkillWidget> _skillWidgets = new List<SkillWidget>();
+        public List<SkillWidget> _skillWidgets = new List<SkillWidget>();
 
         public async CTask<IScorllListWidget> GetIScorllListWidget(int index, RectTransform root)
         {
@@ -1017,6 +1039,11 @@ namespace Fort23.Mono
                     SelectSkill(skillWidget.skillConfigId, false, true);
                 }
             }
+
+            if (PlayerGuideManager.Instance.GuideIsCanDo(4, 5))
+            {
+                PlayerGuideManager.Instance.NextGuide();
+            }
         }
 
         /// <summary>
@@ -1098,7 +1125,7 @@ namespace Fort23.Mono
 
             foreach (var skillKongWidget in allKongSkill)
             {
-                UIManager.Instance.DormancyGComponent(skillKongWidget);
+                // UIManager.Instance.DormancyGComponent(skillKongWidget);
             }
 
             allKongSkill.Clear();

+ 5 - 0
Assets/Scripts/GameUI/UI/DivineSence/DivineSenceEventPreviewPanel.cs

@@ -33,6 +33,11 @@ namespace Fort23.Mono
             {
                 PlayerGuideManager.Instance.NextGuide();
             }
+            if (PlayerGuideManager.Instance.GuideIsCanDo(3, 2))
+            {
+                PlayerGuideManager.Instance.NextGuide();
+            }
+            
             
             if (isTriggerEvent)
                 GObjectPoolInterface.SetActive(false);

+ 4 - 0
Assets/Scripts/GameUI/UI/DivineSence/DivineSenceInfoPanel.cs

@@ -87,6 +87,10 @@ namespace Fort23.Mono
             {
                 PlayerGuideManager.Instance.NextGuide();
             }
+            if (PlayerGuideManager.Instance.GuideIsCanDo(3, 1))
+            {
+                PlayerGuideManager.Instance.NextGuide();
+            }
             _divineSenceInfoBtnWidgets.Clear();
             divineSenseConfig = ConfigComponent.Instance.Get<DivineSenseConfig>(AccountFileInfo.Instance.playerData.divineSenseLevel);
             HeroPowerUpConfig heroPowerUpConfig = PlayerManager.Instance.myHero.powerUpConfig;

+ 2 - 2
Assets/Scripts/GameUI/UI/GuidePanel/DialogBox.cs

@@ -85,7 +85,7 @@ namespace Fort23.Mono
         /// <param name="id">1:默认 2:剧情1 3:boss</param>
         public async CTask SetDiTex(PlayerGuideConfig playerGuideConfig, int id)
         {
-            HeroModelConfig heroModelConfig = ConfigComponent.Instance.Get<HeroModelConfig>(id);
+            EventNPC heroModelConfig = ConfigComponent.Instance.Get<EventNPC>(id);
             NpcIcon.gameObject.SetActive(false);
             CTask cTask = CTask.Create();
             NpcIcon.onSpriteAlter = () =>
@@ -94,7 +94,7 @@ namespace Fort23.Mono
                 NpcIcon.gameObject.SetActive(true);
                 cTask.SetResult();
             };
-            // NpcIcon.icon_name = heroModelConfig.LiHuiName;
+            NpcIcon.icon_name = heroModelConfig.icon;
             // HeroIcon.icon_name = heroModelConfig.HeroUIIconName;
 
 

+ 5 - 2
Assets/Scripts/GameUI/UI/GuidePanel/IGuideLogic.cs

@@ -1,11 +1,14 @@
 using System;
 using System.Collections.Generic;
 using Excel2Json;
+using Fort23.Core;
 using Fort23.UTool;
 using UnityEngine.Device;
 
 namespace Fort23.Mono
 {
+    public delegate CTask CustomAction(UnityEngine.Object o);
+    
     public abstract class IGuideLogic
     {
         // /// <summary>
@@ -18,7 +21,7 @@ namespace Fort23.Mono
         public int guideID;
 
         public int guideIdx = 0;
-        protected List<Action<UnityEngine.Object>> actionList = new List<Action<UnityEngine.Object>>();
+        protected List<CustomAction> actionList = new List<CustomAction>();
 
         protected int step;
 
@@ -36,7 +39,7 @@ namespace Fort23.Mono
         /// <summary>
         /// 新手,引导吧...
         /// </summary>
-        public virtual async void Guide()
+        public virtual async CTask Guide()
         {
         }
 

+ 10 - 10
Assets/Scripts/GameUI/UI/GuidePanel/Phases/Phase1.cs

@@ -44,7 +44,7 @@ namespace Fort23.Mono.Phases
         {
         }
 
-        public override async void Guide()
+        public override async CTask Guide()
         {
             if (actionList.Count > guideIdx)
             {
@@ -75,13 +75,13 @@ namespace Fort23.Mono.Phases
         /// 点击主界面神识
         /// </summary>
         /// <param name="obj"></param>
-        public async void OnStep101(UnityEngine.Object obj)
+        public async CTask OnStep101(UnityEngine.Object obj)
         {
             pgm.StepInit();
-            // await pgm.ConfigLogic(101, delegate()
-            // {
-            //    
-            // });
+            await pgm.ConfigLogic(101, delegate()
+            {
+               
+            });
             pgm.SetOnClickMask(true);
 
             TipMessagePanelType2 tipMessagePanelType2 = await TipMessagePanelType2.OpenTipMessagePanel(10131,isClose:false);
@@ -98,7 +98,7 @@ namespace Fort23.Mono.Phases
         /// 开始探索
         /// </summary>
         /// <param name="obj"></param>
-        public async void OnStep102(UnityEngine.Object obj)
+        public async CTask OnStep102(UnityEngine.Object obj)
         {
             pgm.StepInit();
             await pgm.ConfigLogic(102, delegate()
@@ -110,7 +110,7 @@ namespace Fort23.Mono.Phases
         }
 
 
-        public async void OnStep103(UnityEngine.Object obj)
+        public async CTask OnStep103(UnityEngine.Object obj)
         {
             pgm.StepInit();
             GameObject gameObject = UIManager.Instance.GetComponent<MainPanel>().Btn_StartEvent.gameObject;
@@ -123,12 +123,12 @@ namespace Fort23.Mono.Phases
 
             await pgm.ConfigLogic(103, delegate() { });
 
-            pgm.SetFingerPos(localPos);
+            pgm.SetFingerPos(pgm.Setpos(localPos, size, gameObject));
             pgm.SetFingerVisiable(true);
         }
 
 
-        public async void OnStepEnd(UnityEngine.Object obj)
+        public async CTask OnStepEnd(UnityEngine.Object obj)
         {
             pgm.StepInit();
             pgm.SetBlackBaseVisiable(false);

+ 13 - 13
Assets/Scripts/GameUI/UI/GuidePanel/Phases/Phase2.cs

@@ -48,7 +48,7 @@ namespace Fort23.Mono.Phases
         {
         }
 
-        public override async void Guide()
+        public override async CTask Guide()
         {
             if (actionList.Count > guideIdx)
             {
@@ -79,7 +79,7 @@ namespace Fort23.Mono.Phases
         /// 点击主界面神识
         /// </summary>
         /// <param name="obj"></param>
-        public async void OnStep201(UnityEngine.Object obj)
+        public async CTask OnStep201(UnityEngine.Object obj)
         {
             pgm.StepInit();
             GameObject gameObject = UIManager.Instance.GetComponent<AppBarPanel>().bnt_shengShi.gameObject;
@@ -100,7 +100,7 @@ namespace Fort23.Mono.Phases
         /// 开始探索
         /// </summary>
         /// <param name="obj"></param>
-        public async void OnStep202(UnityEngine.Object obj)
+        public async CTask OnStep202(UnityEngine.Object obj)
         {
             pgm.StepInit();
             GameObject gameObject = UIManager.Instance.GetComponent<DivineSenceInfoPanel>().Btn_Ok.gameObject;
@@ -118,7 +118,7 @@ namespace Fort23.Mono.Phases
         }
 
 
-        public async void OnStep203(UnityEngine.Object obj)
+        public async CTask OnStep203(UnityEngine.Object obj)
         {
             pgm.StepInit();
 
@@ -127,7 +127,7 @@ namespace Fort23.Mono.Phases
         }
 
 
-        public async void OnStep204(UnityEngine.Object obj)
+        public async CTask OnStep204(UnityEngine.Object obj)
         {
             pgm.StepInit();
             await TimerComponent.Instance.WaitAsync(100);
@@ -138,9 +138,9 @@ namespace Fort23.Mono.Phases
             Vector2 size = gameObject.GetComponent<RectTransform>().sizeDelta;
 
             pgm.SetfxTransVisiable(true);
-            pgm.SetMaskTarget(gameObject);
-            size = new Vector2(718, 348);
-            localPos = new Vector2(0, 199);
+            // pgm.SetMaskTarget(gameObject);
+            size = new Vector2(718, 938);
+            localPos = new Vector2(0, -96);
             pgm.SetShowFramePosAndSize(localPos, size, 0, null);
 
             await pgm.ConfigLogic(204, delegate() { pgm.NextGuide(); });
@@ -149,7 +149,7 @@ namespace Fort23.Mono.Phases
             pgm.SetFingerVisiable(true);
         }
 
-        public async void OnStep205(UnityEngine.Object obj)
+        public async CTask OnStep205(UnityEngine.Object obj)
         {
             pgm.StepInit();
 
@@ -161,7 +161,7 @@ namespace Fort23.Mono.Phases
             Vector2 size = gameObject.GetComponent<RectTransform>().sizeDelta;
 
             pgm.SetfxTransVisiable(true);
-            pgm.SetMaskTarget(gameObject);
+            // pgm.SetMaskTarget(gameObject);
             pgm.SetShowFramePosAndSize(localPos, size, 0, gameObject);
 
             await pgm.ConfigLogic(205, delegate() { pgm.NextGuide(); });
@@ -171,7 +171,7 @@ namespace Fort23.Mono.Phases
         }
 
 
-        public async void OnStep206(UnityEngine.Object obj)
+        public async CTask OnStep206(UnityEngine.Object obj)
         {
             pgm.StepInit();
             GameObject gameObject = UIManager.Instance.GetComponent<DivineSenceEventPreviewPanel>()
@@ -189,7 +189,7 @@ namespace Fort23.Mono.Phases
             pgm.SetFingerVisiable(true);
         }
 
-        public async void OnStep207(UnityEngine.Object obj)
+        public async CTask OnStep207(UnityEngine.Object obj)
         {
             pgm.StepInit();
             GameObject gameObject = UIManager.Instance.GetComponent<TaskInfoPanel>().Btn_Ok.gameObject;
@@ -206,7 +206,7 @@ namespace Fort23.Mono.Phases
             pgm.SetFingerVisiable(true);
         }
 
-        public async void OnStepEnd(UnityEngine.Object obj)
+        public async CTask OnStepEnd(UnityEngine.Object obj)
         {
             pgm.StepInit();
             pgm.SetBlackBaseVisiable(false);

+ 158 - 0
Assets/Scripts/GameUI/UI/GuidePanel/Phases/Phase3.cs

@@ -0,0 +1,158 @@
+using Fort23.Core;
+using Fort23.UTool;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Fort23.Mono.Phases
+{
+    public class Phase3 : IGuideLogic
+    {
+        public PlayerGuideManager pgm;
+
+
+        public BetterList<string> dialogList = new BetterList<string>();
+
+
+        private bool once = false;
+
+        public Phase3(PlayerGuideManager guideManager)
+        {
+            this.pgm = guideManager;
+            once = true;
+        }
+
+        public override void Active()
+        {
+            base.Active();
+            actionList.Add(OnStep301);
+            actionList.Add(OnStep302);
+            actionList.Add(OnStep303);
+
+
+            actionList.Add(OnStepEnd);
+        }
+
+        public override void Begin()
+        {
+            guideID = 3;
+            guideIdx = -1;
+            pgm.isForceDone = false;
+            pgm.isTriggerDone = false;
+        }
+
+        public override void End()
+        {
+        }
+
+        public override async CTask Guide()
+        {
+            if (actionList.Count > guideIdx)
+            {
+                pgm.ResetPlayerGuide();
+                guideIdx++;
+
+
+                SaveStep(guideIdx);
+                await actionList[guideIdx](null);
+            }
+            else
+            {
+                LogTool.Error("没有引导了,强制结束。出错步骤,:" + pgm.curPhase + guideIdx);
+                pgm.isForceDone = true;
+            }
+        }
+
+        public override void LogicRelase()
+        {
+            actionList.Clear();
+        }
+
+        public override void LogicUpdate()
+        {
+        }
+
+
+        /// <summary>
+        /// 点击主界面神识
+        /// </summary>
+        /// <param name="obj"></param>
+        public async CTask OnStep301(UnityEngine.Object obj)
+        {
+            pgm.StepInit();
+            GameObject gameObject = UIManager.Instance.GetComponent<AppBarPanel>().bnt_shengShi.gameObject;
+            Vector3 localPos = pgm.WorldPosToLocalPos(gameObject.transform.position);
+            Vector2 size = gameObject.GetComponent<RectTransform>().sizeDelta;
+
+            pgm.SetfxTransVisiable(true);
+            pgm.SetMaskTarget(gameObject);
+            pgm.SetShowFramePosAndSize(localPos, size, 0, gameObject);
+
+            await pgm.ConfigLogic(301, delegate() { });
+
+            pgm.SetFingerPos(localPos);
+            pgm.SetFingerVisiable(true);
+        }
+
+        /// <summary>
+        /// 开始探索
+        /// </summary>
+        /// <param name="obj"></param>
+        public async CTask OnStep302(UnityEngine.Object obj)
+        {
+            pgm.StepInit();
+            await TimerComponent.Instance.WaitAsync(100);
+            GameObject gameObject = UIManager.Instance.GetComponent<DivineSenceInfoPanel>().Btn_Ok.gameObject;
+            Vector3 localPos = pgm.WorldPosToLocalPos(gameObject.transform.position);
+            Vector2 size = gameObject.GetComponent<RectTransform>().sizeDelta;
+
+            pgm.SetfxTransVisiable(true);
+            pgm.SetMaskTarget(gameObject);
+            pgm.SetShowFramePosAndSize(localPos, size, 0, gameObject);
+
+            await pgm.ConfigLogic(302, delegate() { });
+
+            pgm.SetFingerPos(localPos);
+            pgm.SetFingerVisiable(true);
+        }
+
+
+        public async CTask OnStep303(UnityEngine.Object obj)
+        {
+            pgm.StepInit();
+            await TimerComponent.Instance.WaitAsync(100);
+
+            GameObject gameObject =
+                UIManager.Instance.GetComponent<DivineSenceEventPreviewPanel>().ContentRoot.gameObject;
+            Vector3 localPos = pgm.WorldPosToLocalPos(gameObject.transform.position);
+            Vector2 size = gameObject.GetComponent<RectTransform>().sizeDelta;
+
+            pgm.SetfxTransVisiable(true);
+            pgm.SetMaskTarget(gameObject);
+            size = new Vector2(718, 938);
+            localPos = new Vector2(0, -96);
+            pgm.SetShowFramePosAndSize(localPos, size, 0, null);
+
+            await pgm.ConfigLogic(303, delegate() { pgm.NextGuide(); });
+
+            pgm.SetFingerPos(localPos);
+            pgm.SetFingerVisiable(true);
+        }
+
+
+        public async CTask OnStepEnd(UnityEngine.Object obj)
+        {
+            pgm.StepInit();
+            pgm.SetBlackBaseVisiable(false);
+            ForceGuideOver();
+        }
+
+        /// <summary>
+        /// 引导完成
+        /// </summary>
+        private void ForceGuideOver()
+        {
+            pgm.CloseForceGuide();
+            pgm.RestGuide();
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameUI/UI/GuidePanel/Phases/Phase3.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 5cdaef8494aa412887455c74586ae6c7
+timeCreated: 1757561114

+ 274 - 0
Assets/Scripts/GameUI/UI/GuidePanel/Phases/Phase4.cs

@@ -0,0 +1,274 @@
+using Fort23.Core;
+using Fort23.UTool;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Fort23.Mono.Phases
+{
+    public class Phase4 : IGuideLogic
+    {
+        public PlayerGuideManager pgm;
+
+
+        public BetterList<string> dialogList = new BetterList<string>();
+
+
+        private bool once = false;
+
+        public Phase4(PlayerGuideManager guideManager)
+        {
+            this.pgm = guideManager;
+            once = true;
+        }
+
+        public override void Active()
+        {
+            base.Active();
+            actionList.Add(OnStep401);
+            actionList.Add(OnStep402);
+            actionList.Add(OnStep403);
+            actionList.Add(OnStep404);
+            actionList.Add(OnStep405);
+            actionList.Add(OnStep406);
+            actionList.Add(OnStep407);
+            actionList.Add(OnStep408);
+
+
+            actionList.Add(OnStepEnd);
+        }
+
+        public override void Begin()
+        {
+            guideID = 4;
+            guideIdx = -1;
+            pgm.isForceDone = false;
+            pgm.isTriggerDone = false;
+        }
+
+        public override void End()
+        {
+        }
+
+        public override async CTask Guide()
+        {
+            if (actionList.Count > guideIdx)
+            {
+                pgm.ResetPlayerGuide();
+                guideIdx++;
+
+
+                SaveStep(guideIdx);
+                await actionList[guideIdx](null);
+            }
+            else
+            {
+                LogTool.Error("没有引导了,强制结束。出错步骤,:" + pgm.curPhase + guideIdx);
+                pgm.isForceDone = true;
+            }
+        }
+
+        public override void LogicRelase()
+        {
+            actionList.Clear();
+        }
+
+        public override void LogicUpdate()
+        {
+        }
+
+
+        /// <summary>
+        /// 点击功法
+        /// </summary>
+        /// <param name="obj"></param>
+        public async CTask OnStep401(UnityEngine.Object obj)
+        {
+            pgm.StepInit();
+            GameObject gameObject = UIManager.Instance.GetComponent<AppBarPanel>().Btn_GongFa.gameObject;
+            Vector3 localPos = pgm.WorldPosToLocalPos(gameObject.transform.position);
+            Vector2 size = gameObject.GetComponent<RectTransform>().sizeDelta;
+            localPos = new Vector2(-30, -755);
+            size = new Vector2(78, 97);
+            pgm.SetfxTransVisiable(true);
+            pgm.SetMaskTarget(gameObject);
+            pgm.SetShowFramePosAndSize(localPos, size, 0, gameObject);
+
+            await pgm.ConfigLogic(401, delegate() { });
+
+            pgm.SetFingerPos(localPos);
+            pgm.SetFingerVisiable(true);
+        }
+
+        /// <summary>
+        /// 框选功法 
+        /// </summary>
+        /// <param name="obj"></param>
+        public async CTask OnStep402(UnityEngine.Object obj)
+        {
+            pgm.StepInit();
+            await TimerComponent.Instance.WaitAsync(100);
+
+            Vector2 size = new Vector2(735, 785);
+            Vector3 localPos = new Vector2(0, -279);
+            pgm.SetfxTransVisiable(true);
+
+            pgm.SetShowFramePosAndSize(localPos, size, 0, null);
+
+            await pgm.ConfigLogic(402, delegate() { pgm.NextGuide(); });
+
+            pgm.SetFingerPos(localPos);
+            pgm.SetFingerVisiable(true);
+        }
+
+
+        /// <summary>
+        /// 框选功法盘
+        /// </summary>
+        /// <param name="obj"></param>
+        public async CTask OnStep403(UnityEngine.Object obj)
+        {
+            pgm.StepInit();
+            await TimerComponent.Instance.WaitAsync(100);
+
+
+            pgm.SetfxTransVisiable(true);
+
+            Vector2 size = new Vector2(743, 690);
+            Vector2 localPos = new Vector2(0, 461);
+            pgm.SetShowFramePosAndSize(localPos, size, 0, null);
+
+            await pgm.ConfigLogic(403, delegate() { pgm.NextGuide(); });
+
+            pgm.SetFingerPos(localPos);
+            pgm.SetFingerVisiable(true);
+        }
+
+        /// <summary>
+        /// 点击调整
+        /// </summary>
+        /// <param name="obj"></param>
+        public async CTask OnStep404(UnityEngine.Object obj)
+        {
+            pgm.StepInit();
+            await TimerComponent.Instance.WaitAsync(100);
+
+            GameObject gameObject =
+                UIManager.Instance.GetComponent<SkillSelectPanel>().Btn_Setting.gameObject;
+            Vector3 localPos = pgm.WorldPosToLocalPos(gameObject.transform.position);
+            Vector2 size = gameObject.GetComponent<RectTransform>().sizeDelta;
+
+            pgm.SetfxTransVisiable(true);
+            pgm.SetMaskTarget(gameObject);
+            pgm.SetShowFramePosAndSize(localPos, size, 0, gameObject);
+
+            await pgm.ConfigLogic(404, delegate() { });
+
+            pgm.SetFingerPos(localPos);
+            pgm.SetFingerVisiable(true);
+        }
+
+
+        /// <summary>
+        /// 点击第二个功法
+        /// </summary>
+        /// <param name="obj"></param>
+        public async CTask OnStep405(UnityEngine.Object obj)
+        {
+            pgm.StepInit();
+            await TimerComponent.Instance.WaitAsync(100);
+
+            GameObject gameObject =
+                UIManager.Instance.GetComponent<SkillSelectPanel>()._skillWidgets[1].own;
+            Vector3 localPos = pgm.WorldPosToLocalPos(gameObject.transform.position);
+            Vector2 size = gameObject.GetComponent<RectTransform>().sizeDelta;
+
+            pgm.SetfxTransVisiable(true);
+            pgm.SetMaskTarget(gameObject);
+            pgm.SetShowFramePosAndSize(localPos, size, 0, gameObject);
+
+            await pgm.ConfigLogic(405, delegate() { });
+
+            pgm.SetFingerPos(pgm.Setpos(localPos, size, gameObject));
+            pgm.SetFingerVisiable(true);
+        }
+
+        /// <summary>
+        /// 对话
+        /// </summary>
+        /// <param name="obj"></param>
+        public async CTask OnStep406(UnityEngine.Object obj)
+        {
+            pgm.StepInit();
+            await TimerComponent.Instance.WaitAsync(100);
+
+
+            await pgm.ConfigLogic(406, delegate() { pgm.NextGuide(); });
+        }
+
+
+        /// <summary>
+        /// 这是个{火}功法,把他放在功法盘{火}的附近,会优先释放
+        /// </summary>
+        /// <param name="obj"></param>
+        public async CTask OnStep407(UnityEngine.Object obj)
+        {
+            pgm.StepInit();
+            await TimerComponent.Instance.WaitAsync(100);
+
+            GameObject gameObject =
+                UIManager.Instance.GetComponent<SkillSelectPanel>().allKongSkill[6].own;
+            Vector3 localPos = pgm.WorldPosToLocalPos(gameObject.transform.position);
+            Vector2 size = gameObject.GetComponent<RectTransform>().sizeDelta;
+
+            pgm.SetfxTransVisiable(true);
+            pgm.SetMaskTarget(gameObject);
+            pgm.SetShowFramePosAndSize(localPos, size, 0, gameObject);
+
+            await pgm.ConfigLogic(407, delegate() { });
+
+            pgm.SetFingerPos(pgm.Setpos(localPos, size, gameObject));
+            pgm.SetFingerVisiable(true);
+        }
+
+
+        /// <summary>
+        /// 功法调整完毕,点这里返回
+        /// </summary>
+        /// <param name="obj"></param>
+        public async CTask OnStep408(UnityEngine.Object obj)
+        {
+            pgm.StepInit();
+            await TimerComponent.Instance.WaitAsync(100);
+
+            GameObject gameObject =
+                UIManager.Instance.GetComponent<SkillSelectPanel>().guanbi.gameObject;
+            Vector3 localPos = pgm.WorldPosToLocalPos(gameObject.transform.position);
+            Vector2 size = gameObject.GetComponent<RectTransform>().sizeDelta;
+
+            pgm.SetfxTransVisiable(true);
+            pgm.SetMaskTarget(gameObject);
+            pgm.SetShowFramePosAndSize(localPos, size, 0, gameObject);
+
+            await pgm.ConfigLogic(408, delegate() { });
+
+            pgm.SetFingerPos(pgm.Setpos(localPos, size, gameObject));
+            pgm.SetFingerVisiable(true);
+        }
+
+        public async CTask OnStepEnd(UnityEngine.Object obj)
+        {
+            pgm.StepInit();
+            pgm.SetBlackBaseVisiable(false);
+            ForceGuideOver();
+        }
+
+        /// <summary>
+        /// 引导完成
+        /// </summary>
+        private void ForceGuideOver()
+        {
+            pgm.CloseForceGuide();
+            pgm.RestGuide();
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameUI/UI/GuidePanel/Phases/Phase4.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: ed38b2c9c7c943328d0b60deda59aff5
+timeCreated: 1757577243

+ 90 - 72
Assets/Scripts/GameUI/UI/GuidePanel/PlayerGuideManager.cs

@@ -1,4 +1,5 @@
-using System.Collections.Generic;
+using System;
+using System.Collections.Generic;
 using Core.Language;
 using Excel2Json;
 using Fort23.Core;
@@ -18,8 +19,6 @@ namespace Fort23.Mono
         public bool isUnLockAll = false;
 
 
-
-
         /// <summary>
         /// 调试模式.
         /// </summary>
@@ -130,7 +129,7 @@ namespace Fort23.Mono
         {
             InitGuide();
         }
-        
+
         /// <summary>
         /// 引导重置
         /// </summary>
@@ -228,9 +227,6 @@ namespace Fort23.Mono
 
             int step = GetPhaseStep(groupID);
 
-        
-
-    
 
             if (curstep != -1) //判断这个新手引导这一步能否做
             {
@@ -285,34 +281,29 @@ namespace Fort23.Mono
                     ALLGuideStepData[playerGuideConfig.groupID] += 1;
                 }
             }
+
             //
             // EventManager.Instance.AddEventListener(CustomEventType.NextGuide, RunNextGuide);
-            // GameRuntimeConfig = GameApplction.Instance.runtimeConfig;
-            // LogTool.Log("InitGuide************************");
-            // if (isInitGuide)
-            // {
-            //     LogTool.Log("已初始化");
-            //     return;
-            // }
-            //
-            // if (GameRuntimeConfig.ClearGuideData)
-            // {
-            //     AccountFileInfo.Instance.ClearGuideData();
-            // }
-            //
-            //
-            // isSkip = GameRuntimeConfig.isSkip;
-            //
-            //
-            // IsUseServerData = GameRuntimeConfig.IsUseServerData;
+            GameRuntimeConfig = Resources.Load<GameRuntimeConfig>("GameRuntimeConfig");
+            LogTool.Log("InitGuide************************");
+            if (isInitGuide)
+            {
+                LogTool.Log("已初始化");
+                return;
+            }
+
+
+            isSkip = GameRuntimeConfig.isSkip;
+            isDebugging = GameRuntimeConfig.isDebug;
+            isUnLockAll = GameRuntimeConfig.isUnlockAll;
+
 
 #if UNITY_IPHONE || UNITY_ANDROID&&!UNITY_EDITOR
             IsUseServerData = true;
 #endif
 
             //
-            // isDebugging = GameRuntimeConfig.isDebug;
-            // isUnLockAll = GameRuntimeConfig.isUnlockAll;
+
 
 #if !UNITY_EDITOR
             isSkip = false;
@@ -322,30 +313,30 @@ namespace Fort23.Mono
 
 #endif
 
-            // List<int> ids = new List<int>();
-            //
-            // if (GameRuntimeConfig.debugPhase.x != 0)
-            // {
-            //     ids.Add((int)GameRuntimeConfig.debugPhase.x);
-            // }
-            //
-            // if (GameRuntimeConfig.debugPhase.y != 0)
-            // {
-            //     ids.Add((int)GameRuntimeConfig.debugPhase.y);
-            // }
-            //
-            // if (GameRuntimeConfig.debugPhase.z != 0)
-            // {
-            //     ids.Add((int)GameRuntimeConfig.debugPhase.z);
-            // }
-            //
-            // if (GameRuntimeConfig.debugPhase.w != 0)
-            // {
-            //     ids.Add((int)GameRuntimeConfig.debugPhase.w);
-            // }
+            List<int> ids = new List<int>();
 
+            if (GameRuntimeConfig.debugPhase.x != 0)
+            {
+                ids.Add((int)GameRuntimeConfig.debugPhase.x);
+            }
 
-            // debugPhase = ids;
+            if (GameRuntimeConfig.debugPhase.y != 0)
+            {
+                ids.Add((int)GameRuntimeConfig.debugPhase.y);
+            }
+
+            if (GameRuntimeConfig.debugPhase.z != 0)
+            {
+                ids.Add((int)GameRuntimeConfig.debugPhase.z);
+            }
+
+            if (GameRuntimeConfig.debugPhase.w != 0)
+            {
+                ids.Add((int)GameRuntimeConfig.debugPhase.w);
+            }
+
+
+            debugPhase = ids;
 
 
             if (isDebugging)
@@ -521,7 +512,6 @@ namespace Fort23.Mono
         /// <param name="phase"></param>
         public async CTask SetGuid(int phase)
         {
-          
             if (isDebugging)
             {
                 if (!debugPhase.Contains(phase))
@@ -542,8 +532,6 @@ namespace Fort23.Mono
 
             UIManager.Instance.SetEventSystemEnable(false);
 
-    
-
 
             curPhase = phase;
             guideLogic = null;
@@ -551,7 +539,8 @@ namespace Fort23.Mono
 
             guideLogic = GetIGuideLogic(curPhase);
 
-            GuidePanel guildPanel = await UIManager.Instance.LoadAndOpenPanel<GuidePanel>(null, UILayer.Top, isFocus: false);
+            GuidePanel guildPanel =
+                await UIManager.Instance.LoadAndOpenPanel<GuidePanel>(null, UILayer.Top, isFocus: false);
             dialogBox.Init();
             UIManager.Instance.SetEventSystemEnable(true);
 
@@ -571,17 +560,32 @@ namespace Fort23.Mono
 
         public IGuideLogic GetIGuideLogic(int groupId)
         {
+            string typeName = " Fort23.Mono.Phases.Phase" + groupId;
+
+
             IGuideLogic guideLogic = null;
-            switch (groupId)
+            System.Type type = System.Type.GetType(typeName);
+            if (type == null)
             {
-                case 1:
-                    guideLogic = new Phase1(this);
-                    break;
-                case 2:
-                    guideLogic = new Phase2(this);
-                    break;
+                LogTool.Error("没有找到Phase" + groupId + "脚本");
+                return null;
             }
 
+            object[] constructorArgs = new object[] { this };
+            guideLogic = (IGuideLogic)Activator.CreateInstance(type, constructorArgs);
+            // switch (groupId)
+            // {
+            //     case 1:
+            //         guideLogic = new Phase1(this);
+            //         break;
+            //     case 2:
+            //         guideLogic = new Phase2(this);
+            //         break;
+            //     case 3:
+            //         guideLogic = new Phase3(this);
+            //         break;
+            // }
+
             return guideLogic;
         }
 
@@ -664,7 +668,6 @@ namespace Fort23.Mono
             }
         }
 
- 
 
         public bool IsStepSkip = false;
 
@@ -725,28 +728,28 @@ namespace Fort23.Mono
         /// <summary>
         /// 下一步引导
         /// </summary>
-        public void NextGuide()
+        public async void NextGuide()
         {
             if (BreakGuide(guideLogic))
             {
                 return;
             }
-            
+
             try
             {
                 //容错:
-                guideLogic.Guide();
+                await guideLogic.Guide();
             }
             catch (System.Exception e)
             {
                 LogTool.Error("打印异常信息:" + e);
                 ResetPlayerGuide();
                 CloseForceGuide();
-            
+
                 LogTool.Error("引导出错,出错步骤,Phase=" + curPhase + "-" + curStep);
             }
 
-            EventManager.Instance.Dispatch(CustomEventType.NextGuide,null);
+            EventManager.Instance.Dispatch(CustomEventType.NextGuide, null);
         }
 
 
@@ -776,7 +779,6 @@ namespace Fort23.Mono
 
             try
             {
-              
                 //容错:
                 guideLogic.Guide();
             }
@@ -848,7 +850,6 @@ namespace Fort23.Mono
 
 
             UIManager.Instance.HideUIUIPanel<GuidePanel>(UIDestroyType.ImmediatelyDestroy);
-       
         }
 
         public void SetBlackAlpha(float f)
@@ -990,7 +991,8 @@ namespace Fort23.Mono
             // SetFingerAnimation("Loop");
             _customVectorTween?.Kill();
             _customVectorTween = null;
-            _customVectorTween = CustomTweenManager.To(() => starPos, x => SetFingerPos(x), endPos, time, finger.gameObject)
+            _customVectorTween = CustomTweenManager
+                .To(() => starPos, x => SetFingerPos(x), endPos, time, finger.gameObject)
                 .SetEase(CustomTweenEX.CustomAnimationCurve.Line).SetLoop(true);
         }
 
@@ -1076,9 +1078,11 @@ namespace Fort23.Mono
 
 
                     fxTrans01.GetComponent<RectTransform>().sizeDelta = size * 2f;
-                    CustomTweenManager.To(() => fxTrans01.GetComponent<RectTransform>().sizeDelta, x => fxTrans01.GetComponent<RectTransform>().sizeDelta = x,
-                        size, 0.3f, fxTrans01.gameObject).OnComplete(
-                        () => { fxTrans01.GetComponent<RectTransform>().sizeDelta = size; }).SetEase(CustomTweenEX.CustomAnimationCurve.InExpo);
+                    CustomTweenManager.To(() => fxTrans01.GetComponent<RectTransform>().sizeDelta,
+                            x => fxTrans01.GetComponent<RectTransform>().sizeDelta = x,
+                            size, 0.3f, fxTrans01.gameObject).OnComplete(
+                            () => { fxTrans01.GetComponent<RectTransform>().sizeDelta = size; })
+                        .SetEase(CustomTweenEX.CustomAnimationCurve.InExpo);
                     //fxTrans01.GetComponent<RectTransform>().sizeDelta = size;
 
                     break;
@@ -1099,6 +1103,20 @@ namespace Fort23.Mono
             }
         }
 
+        public Vector3 Setpos(Vector3 pos, Vector2 size,  GameObject gameObject )
+        {
+            RectTransform rectTransform = gameObject.GetComponent<RectTransform>();
+            Vector2 pivot = rectTransform.pivot;
+            Vector2 pivot1 = pivot - Vector2.one * 0.5f;
+
+
+            float x = pos.x - size.x * pivot1.x;
+            float y = pos.y - size.y * pivot1.y;
+
+        return new Vector3(x, y, 0);
+        }
+        
+
         /// <summary>
         /// 设置文本大小
         /// </summary>

+ 5 - 0
Assets/Scripts/GameUI/UI/MainPanel/MainPanel.cs

@@ -50,6 +50,11 @@ namespace Fort23.Mono
             {
                 await PlayerGuideManager.Instance.SetGuid(1);
             }
+            
+            if (PlayerGuideManager.Instance.GuideIsCanDo(4))
+            {
+                await PlayerGuideManager.Instance.SetGuid(4);
+            }
 
             base.GetFocus();
         }

二進制
Excel2Json/Excel/EventConfig.xlsx


二進制
Excel2Json/Excel/Language.xlsx


二進制
Excel2Json/Excel/PlayerGuide.xlsx