diff --git a/.gitignore b/.gitignore index 29742cc..eb6e5d3 100644 --- a/.gitignore +++ b/.gitignore @@ -84,4 +84,12 @@ crashlytics-build.properties /Assets/RawResources -/.vscode \ No newline at end of file +/.vscode + +# Excel temporary lock files +~$*.xls +~$*.xlsx +~$*.xlsm +~$*.xlsb + +/数据表/__pycache__ \ No newline at end of file diff --git a/Assets/GameMain/DataTables/Dialog.txt b/Assets/GameMain/DataTables/Dialog.txt new file mode 100644 index 0000000..a3e4690 --- /dev/null +++ b/Assets/GameMain/DataTables/Dialog.txt @@ -0,0 +1,7 @@ +# 对话标识表 筛选用数据 +# Id Title UIMode ChapterId +# int string DialogUIMode int +# 对话编号 策划备注 对话标识 对话形式 章节编号 + 1001 第一章介绍 Chapter1_Intro Mask 1.001 + 1002 第一章主流程 Chapter1_Main BottomBox 1.002 + 1003 第一章玩法开始前闲聊 Chapter1_SmallTalk1 BubbleBox 1.003 diff --git a/Assets/GameMain/DataTables/Dialog.txt.meta b/Assets/GameMain/DataTables/Dialog.txt.meta new file mode 100644 index 0000000..435ba4a --- /dev/null +++ b/Assets/GameMain/DataTables/Dialog.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 788b17ff3aef4cd4fb6c808826c875e5 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/DataTables/DialogLine.txt b/Assets/GameMain/DataTables/DialogLine.txt new file mode 100644 index 0000000..49a55c7 --- /dev/null +++ b/Assets/GameMain/DataTables/DialogLine.txt @@ -0,0 +1,13 @@ +# 对话内容表 筛选用数据 +# Id SpeakerId Expression SpeakerName Direction Text Emphasis ChapterId DialogId +# int int ExpressionType string int string EmphasisType int int +# 对话行编号 策划备注 说话人Id 表情 显示人名 说话朝向 说话内容 演出效果 章节Id 对话Id + 100100001 Id规则为 Null Null Null 0 相传。 1.00100001 1001.00001 + 100100002 第1位数为章节Id Null Null Null 0 Mask。 1.00100002 1001.00002 + 100100003 第2-4位数为对话Id Null Null Null 0 很好。 1.00100003 1001.00003 + 100200001 第5-9位数为对话行Id Xu Normal 徐晟壹 0 你好,王。 1.00200001 1002.00001 + 100200002 Wang Normal 王可嘉 1 你好,徐。 1.00200002 1002.00002 + 100200003 Master Normal 李诫 1 你们好。 1.00200003 1002.00003 + 100300001 Npc1 Null Null 0 这人谁啊? 1.00300001 1003.00001 + 100300002 Npc2 Null Null 0 不知道啊? 1.00300002 1003.00002 + 100300003 Npc1 Null Null 0 不知道你在这干嘛。 1.00300003 1003.00003 diff --git a/Assets/GameMain/DataTables/DialogLine.txt.meta b/Assets/GameMain/DataTables/DialogLine.txt.meta new file mode 100644 index 0000000..316dc2f --- /dev/null +++ b/Assets/GameMain/DataTables/DialogLine.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 378604b840f56ae49831978cf0e0a6ea +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/DataTables/Scene.txt b/Assets/GameMain/DataTables/Scene.txt index 29826e2..6aecfae 100644 --- a/Assets/GameMain/DataTables/Scene.txt +++ b/Assets/GameMain/DataTables/Scene.txt @@ -5,4 +5,3 @@ 1 菜单场景 Menu 1 2 战斗场景 Main 2 3 压力测试场景 StressTest 0 - 4 玩法A测试场景 GameplayA 0 \ No newline at end of file diff --git a/Assets/GameMain/DataTables/UIForm.txt b/Assets/GameMain/DataTables/UIForm.txt index f2b96f5..6b11bd8 100644 --- a/Assets/GameMain/DataTables/UIForm.txt +++ b/Assets/GameMain/DataTables/UIForm.txt @@ -6,4 +6,3 @@ 100 主菜单 MenuForm Default False True 101 设置 SettingForm Default False True 102 关于 AboutForm Default False True - 103 �����淨A MVC���Խ��� CombineForm Default False True diff --git a/Assets/GameMain/Scripts/DataTable/BinaryReaderExtension.cs b/Assets/GameMain/Scripts/DataTable/BinaryReaderExtension.cs index c38ba21..585d668 100644 --- a/Assets/GameMain/Scripts/DataTable/BinaryReaderExtension.cs +++ b/Assets/GameMain/Scripts/DataTable/BinaryReaderExtension.cs @@ -9,7 +9,7 @@ using System; using System.IO; using UnityEngine; -namespace StarForce +namespace DataTable { public static class BinaryReaderExtension { diff --git a/Assets/GameMain/Scripts/DataTable/DRDialog.cs b/Assets/GameMain/Scripts/DataTable/DRDialog.cs new file mode 100644 index 0000000..91274f2 --- /dev/null +++ b/Assets/GameMain/Scripts/DataTable/DRDialog.cs @@ -0,0 +1,39 @@ +using CustomUtility; +using Definition.Enum; +using UnityGameFramework.Runtime; + +namespace DataTable +{ + public class DRDialog : DataRowBase + { + private int m_Id; + + /// + /// 获取对话编号。 + /// + public override int Id => m_Id; + + /// + /// 获取对话标识。 + /// + public string Title { get; private set; } + + /// + /// 获取对话形式。 + /// + public DialogUIMode UIMode { get; private set; } + + public override bool ParseDataRow(string dataRowString, object userData) + { + string[] fields = dataRowString.Split('\t'); + + int index = 1; + m_Id = int.Parse(fields[index++]); + index++; + Title = fields[index++]; + UIMode = EnumUtility.Get(fields[index++]); + + return true; + } + } +} \ No newline at end of file diff --git a/Assets/GameMain/Scripts/DataTable/DRDialog.cs.meta b/Assets/GameMain/Scripts/DataTable/DRDialog.cs.meta new file mode 100644 index 0000000..a22d4d9 --- /dev/null +++ b/Assets/GameMain/Scripts/DataTable/DRDialog.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fb12692f2a7e6174eae3b0d28c769e55 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/DataTable/DRDialogLine.cs b/Assets/GameMain/Scripts/DataTable/DRDialogLine.cs new file mode 100644 index 0000000..f211f38 --- /dev/null +++ b/Assets/GameMain/Scripts/DataTable/DRDialogLine.cs @@ -0,0 +1,64 @@ +using CustomUtility; +using Definition.Enum; +using UnityGameFramework.Runtime; + +namespace DataTable +{ + public class DRDialogLine : DataRowBase + { + private int m_Id; + + /// + /// 获取对话行编号 + /// + public override int Id { get; } + + /// + /// 获取说话人 Id。 + /// + public string SpeakerId { get; private set; } + + /// + /// 获取说话人表情。 + /// + public ExpressionType Expression { get; private set; } + + /// + /// 获取说话人显示名。 + /// + public string SpeakerName { get; private set; } + + /// + /// 获取说话人朝向。 + /// + public int Direction { get; private set; } + + /// + /// 获取对话内容。 + /// + public string Text { get; private set; } + + /// + /// 获取对话效果。 + /// + public EmphasisType Emphasis { get; private set; } + + public override bool ParseDataRow(string dataRowString, object userData) + { + string[] fields = dataRowString.Split('\t'); + + int index = 0; + index++; + m_Id = int.Parse(fields[index++]); + index++; + SpeakerId = fields[index++]; + Expression = EnumUtility.Get(fields[index++]); + SpeakerName = fields[index++]; + Direction = int.Parse(fields[index++]); + Text = fields[index++]; + Emphasis = EnumUtility.Get(fields[index++]); + + return true; + } + } +} \ No newline at end of file diff --git a/Assets/GameMain/Scripts/DataTable/DRDialogLine.cs.meta b/Assets/GameMain/Scripts/DataTable/DRDialogLine.cs.meta new file mode 100644 index 0000000..d4e701e --- /dev/null +++ b/Assets/GameMain/Scripts/DataTable/DRDialogLine.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fc6d3e8e61ab627488e22bb5fc28f95d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/DataTable/DREntity.cs b/Assets/GameMain/Scripts/DataTable/DREntity.cs index 84fe1b2..e89ffa6 100644 --- a/Assets/GameMain/Scripts/DataTable/DREntity.cs +++ b/Assets/GameMain/Scripts/DataTable/DREntity.cs @@ -16,7 +16,7 @@ using System.Text; using UnityEngine; using UnityGameFramework.Runtime; -namespace StarForce +namespace DataTable { /// /// 实体表。 @@ -28,13 +28,7 @@ namespace StarForce /// /// 获取实体编号。 /// - public override int Id - { - get - { - return m_Id; - } - } + public override int Id => m_Id; /// /// 获取资源名称。 diff --git a/Assets/GameMain/Scripts/DataTable/DRMusic.cs b/Assets/GameMain/Scripts/DataTable/DRMusic.cs index 7bad7ce..83b2a31 100644 --- a/Assets/GameMain/Scripts/DataTable/DRMusic.cs +++ b/Assets/GameMain/Scripts/DataTable/DRMusic.cs @@ -16,7 +16,7 @@ using System.Text; using UnityEngine; using UnityGameFramework.Runtime; -namespace StarForce +namespace DataTable { /// /// 音乐配置表。 diff --git a/Assets/GameMain/Scripts/DataTable/DRScene.cs b/Assets/GameMain/Scripts/DataTable/DRScene.cs index af6154e..d68a454 100644 --- a/Assets/GameMain/Scripts/DataTable/DRScene.cs +++ b/Assets/GameMain/Scripts/DataTable/DRScene.cs @@ -1,22 +1,8 @@ -//------------------------------------------------------------ -// Game Framework -// Copyright © 2013-2021 Jiang Yin. All rights reserved. -// Homepage: https://gameframework.cn/ -// Feedback: mailto:ellan@gameframework.cn -//------------------------------------------------------------ -// 此文件由工具自动生成,请勿直接修改。 -// 生成时间:2021-06-16 21:54:35.610 -//------------------------------------------------------------ - -using GameFramework; -using System; -using System.Collections.Generic; -using System.IO; +using System.IO; using System.Text; -using UnityEngine; using UnityGameFramework.Runtime; -namespace StarForce +namespace DataTable { /// /// 场景配置表。 diff --git a/Assets/GameMain/Scripts/DataTable/DRSound.cs b/Assets/GameMain/Scripts/DataTable/DRSound.cs index 0ce1445..fe12887 100644 --- a/Assets/GameMain/Scripts/DataTable/DRSound.cs +++ b/Assets/GameMain/Scripts/DataTable/DRSound.cs @@ -1,22 +1,8 @@ -//------------------------------------------------------------ -// Game Framework -// Copyright © 2013-2021 Jiang Yin. All rights reserved. -// Homepage: https://gameframework.cn/ -// Feedback: mailto:ellan@gameframework.cn -//------------------------------------------------------------ -// 此文件由工具自动生成,请勿直接修改。 -// 生成时间:2021-06-16 21:54:35.625 -//------------------------------------------------------------ - -using GameFramework; -using System; -using System.Collections.Generic; -using System.IO; +using System.IO; using System.Text; -using UnityEngine; using UnityGameFramework.Runtime; -namespace StarForce +namespace DataTable { /// /// 声音配置表。 diff --git a/Assets/GameMain/Scripts/DataTable/DRUIForm.cs b/Assets/GameMain/Scripts/DataTable/DRUIForm.cs index 80f914b..712d3be 100644 --- a/Assets/GameMain/Scripts/DataTable/DRUIForm.cs +++ b/Assets/GameMain/Scripts/DataTable/DRUIForm.cs @@ -1,14 +1,4 @@ -//------------------------------------------------------------ -// Game Framework -// Copyright © 2013-2021 Jiang Yin. All rights reserved. -// Homepage: https://gameframework.cn/ -// Feedback: mailto:ellan@gameframework.cn -//------------------------------------------------------------ -// 此文件由工具自动生成,请勿直接修改。 -// 生成时间:2021-06-16 21:54:35.652 -//------------------------------------------------------------ - -using GameFramework; +using GameFramework; using System; using System.Collections.Generic; using System.IO; @@ -16,7 +6,7 @@ using System.Text; using UnityEngine; using UnityGameFramework.Runtime; -namespace StarForce +namespace DataTable { /// /// 界面配置表。 diff --git a/Assets/GameMain/Scripts/DataTable/DRUISound.cs b/Assets/GameMain/Scripts/DataTable/DRUISound.cs index e303c18..db77bc7 100644 --- a/Assets/GameMain/Scripts/DataTable/DRUISound.cs +++ b/Assets/GameMain/Scripts/DataTable/DRUISound.cs @@ -1,14 +1,4 @@ -//------------------------------------------------------------ -// Game Framework -// Copyright © 2013-2021 Jiang Yin. All rights reserved. -// Homepage: https://gameframework.cn/ -// Feedback: mailto:ellan@gameframework.cn -//------------------------------------------------------------ -// 此文件由工具自动生成,请勿直接修改。 -// 生成时间:2021-06-16 21:54:35.666 -//------------------------------------------------------------ - -using GameFramework; +using GameFramework; using System; using System.Collections.Generic; using System.IO; @@ -16,7 +6,7 @@ using System.Text; using UnityEngine; using UnityGameFramework.Runtime; -namespace StarForce +namespace DataTable { /// /// 声音配置表。 diff --git a/Assets/GameMain/Scripts/DataTable/DataTableExtension.cs b/Assets/GameMain/Scripts/DataTable/DataTableExtension.cs index 5e82897..b496f91 100644 --- a/Assets/GameMain/Scripts/DataTable/DataTableExtension.cs +++ b/Assets/GameMain/Scripts/DataTable/DataTableExtension.cs @@ -1,16 +1,10 @@ -//------------------------------------------------------------ -// Game Framework -// Copyright © 2013-2021 Jiang Yin. All rights reserved. -// Homepage: https://gameframework.cn/ -// Feedback: mailto:ellan@gameframework.cn -//------------------------------------------------------------ - -using GameFramework.DataTable; +using GameFramework.DataTable; using System; +using Definition; using UnityEngine; using UnityGameFramework.Runtime; -namespace StarForce +namespace DataTable { public static class DataTableExtension { diff --git a/Assets/GameMain/Scripts/Debugger/ChangeLanguageDebuggerWindow.cs b/Assets/GameMain/Scripts/Debugger/ChangeLanguageDebuggerWindow.cs index 32d46c4..b1632bb 100644 --- a/Assets/GameMain/Scripts/Debugger/ChangeLanguageDebuggerWindow.cs +++ b/Assets/GameMain/Scripts/Debugger/ChangeLanguageDebuggerWindow.cs @@ -5,6 +5,7 @@ // Feedback: mailto:ellan@gameframework.cn //------------------------------------------------------------ +using Definition; using GameFramework.Debugger; using GameFramework.Localization; using UnityEngine; diff --git a/Assets/GameMain/Scripts/Definition/Constant/Constant.AssetPriority.cs b/Assets/GameMain/Scripts/Definition/Constant/Constant.AssetPriority.cs index 9d1c0b9..6c863b6 100644 --- a/Assets/GameMain/Scripts/Definition/Constant/Constant.AssetPriority.cs +++ b/Assets/GameMain/Scripts/Definition/Constant/Constant.AssetPriority.cs @@ -5,7 +5,7 @@ // Feedback: mailto:ellan@gameframework.cn //------------------------------------------------------------ -namespace StarForce +namespace Definition { public static partial class Constant { diff --git a/Assets/GameMain/Scripts/Definition/Constant/Constant.Layer.cs b/Assets/GameMain/Scripts/Definition/Constant/Constant.Layer.cs index 29c6cda..3f89d5b 100644 --- a/Assets/GameMain/Scripts/Definition/Constant/Constant.Layer.cs +++ b/Assets/GameMain/Scripts/Definition/Constant/Constant.Layer.cs @@ -7,7 +7,7 @@ using UnityEngine; -namespace StarForce +namespace Definition { public static partial class Constant { diff --git a/Assets/GameMain/Scripts/Definition/Constant/Constant.Setting.cs b/Assets/GameMain/Scripts/Definition/Constant/Constant.Setting.cs index 05e6037..1595633 100644 --- a/Assets/GameMain/Scripts/Definition/Constant/Constant.Setting.cs +++ b/Assets/GameMain/Scripts/Definition/Constant/Constant.Setting.cs @@ -5,7 +5,7 @@ // Feedback: mailto:ellan@gameframework.cn //------------------------------------------------------------ -namespace StarForce +namespace Definition { public static partial class Constant { diff --git a/Assets/GameMain/Scripts/Definition/Enum/DialogUIMode.cs b/Assets/GameMain/Scripts/Definition/Enum/DialogUIMode.cs new file mode 100644 index 0000000..8fff194 --- /dev/null +++ b/Assets/GameMain/Scripts/Definition/Enum/DialogUIMode.cs @@ -0,0 +1,22 @@ +namespace Definition.Enum +{ + public enum DialogUIMode + { + None = 0, + + /// + /// 黑屏白字 + /// + Mask = 1, + + /// + /// 底部对话框 + /// + BottomBox = 2, + + /// + /// 对话气泡 + /// + BubbleBox = 3 + } +} \ No newline at end of file diff --git a/Assets/GameMain/Scripts/Definition/Enum/DialogUIMode.cs.meta b/Assets/GameMain/Scripts/Definition/Enum/DialogUIMode.cs.meta new file mode 100644 index 0000000..9b7298a --- /dev/null +++ b/Assets/GameMain/Scripts/Definition/Enum/DialogUIMode.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 7a10763d137f413d828c534b0233f2a6 +timeCreated: 1770600423 \ No newline at end of file diff --git a/Assets/GameMain/Scripts/Definition/Enum/EmphasisType.cs b/Assets/GameMain/Scripts/Definition/Enum/EmphasisType.cs new file mode 100644 index 0000000..642dba9 --- /dev/null +++ b/Assets/GameMain/Scripts/Definition/Enum/EmphasisType.cs @@ -0,0 +1,13 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Definition.Enum +{ + public enum EmphasisType + { + None, + Shake, + Blink, + } +} \ No newline at end of file diff --git a/Assets/GameMain/Scripts/Definition/Enum/EmphasisType.cs.meta b/Assets/GameMain/Scripts/Definition/Enum/EmphasisType.cs.meta new file mode 100644 index 0000000..793bc8e --- /dev/null +++ b/Assets/GameMain/Scripts/Definition/Enum/EmphasisType.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 96908bdc885697e4d9cb0f6627d13230 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/Definition/Enum/ExpressionType.cs b/Assets/GameMain/Scripts/Definition/Enum/ExpressionType.cs new file mode 100644 index 0000000..55ec0e3 --- /dev/null +++ b/Assets/GameMain/Scripts/Definition/Enum/ExpressionType.cs @@ -0,0 +1,14 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Definition.Enum +{ + public enum ExpressionType + { + None, + Normal, + Shock, + Happy, + } +} \ No newline at end of file diff --git a/Assets/GameMain/Scripts/Definition/Enum/ExpressionType.cs.meta b/Assets/GameMain/Scripts/Definition/Enum/ExpressionType.cs.meta new file mode 100644 index 0000000..664286a --- /dev/null +++ b/Assets/GameMain/Scripts/Definition/Enum/ExpressionType.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 174e046d822a14d49843dc415067f13c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/UIFormId.cs b/Assets/GameMain/Scripts/Definition/Enum/UIFormId.cs similarity index 100% rename from Assets/GameMain/Scripts/UI/UIFormId.cs rename to Assets/GameMain/Scripts/Definition/Enum/UIFormId.cs diff --git a/Assets/GameMain/Scripts/UI/UIFormId.cs.meta b/Assets/GameMain/Scripts/Definition/Enum/UIFormId.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/UI/UIFormId.cs.meta rename to Assets/GameMain/Scripts/Definition/Enum/UIFormId.cs.meta diff --git a/Assets/GameMain/Scripts/Entity/EntityExtension.cs b/Assets/GameMain/Scripts/Entity/EntityExtension.cs index 2f99f10..6d0da7a 100644 --- a/Assets/GameMain/Scripts/Entity/EntityExtension.cs +++ b/Assets/GameMain/Scripts/Entity/EntityExtension.cs @@ -7,6 +7,8 @@ using GameFramework.DataTable; using System; +using CustomUtility; +using DataTable; using Entity; using Entity.EntityData; using UnityGameFramework.Runtime; diff --git a/Assets/GameMain/Scripts/Procedure/BuiltIn/ProcedureChangeScene.cs b/Assets/GameMain/Scripts/Procedure/BuiltIn/ProcedureChangeScene.cs index d357d7d..97e9998 100644 --- a/Assets/GameMain/Scripts/Procedure/BuiltIn/ProcedureChangeScene.cs +++ b/Assets/GameMain/Scripts/Procedure/BuiltIn/ProcedureChangeScene.cs @@ -1,10 +1,6 @@ -//------------------------------------------------------------ -// Game Framework -// Copyright © 2013-2021 Jiang Yin. All rights reserved. -// Homepage: https://gameframework.cn/ -// Feedback: mailto:ellan@gameframework.cn -//------------------------------------------------------------ - +using CustomUtility; +using DataTable; +using Definition; using GameFramework.DataTable; using GameFramework.Event; using Scene; diff --git a/Assets/GameMain/Scripts/Procedure/BuiltIn/ProcedureLaunch.cs b/Assets/GameMain/Scripts/Procedure/BuiltIn/ProcedureLaunch.cs index 6b8e9bc..f86746a 100644 --- a/Assets/GameMain/Scripts/Procedure/BuiltIn/ProcedureLaunch.cs +++ b/Assets/GameMain/Scripts/Procedure/BuiltIn/ProcedureLaunch.cs @@ -1,12 +1,6 @@ -//------------------------------------------------------------ -// Game Framework -// Copyright © 2013-2021 Jiang Yin. All rights reserved. -// Homepage: https://gameframework.cn/ -// Feedback: mailto:ellan@gameframework.cn -//------------------------------------------------------------ - -using GameFramework.Localization; +using GameFramework.Localization; using System; +using Definition; using StarForce; using UnityGameFramework.Runtime; using ProcedureOwner = GameFramework.Fsm.IFsm; diff --git a/Assets/GameMain/Scripts/Procedure/BuiltIn/ProcedurePreload.cs b/Assets/GameMain/Scripts/Procedure/BuiltIn/ProcedurePreload.cs index 0b98cf8..d517acd 100644 --- a/Assets/GameMain/Scripts/Procedure/BuiltIn/ProcedurePreload.cs +++ b/Assets/GameMain/Scripts/Procedure/BuiltIn/ProcedurePreload.cs @@ -1,15 +1,10 @@ -//------------------------------------------------------------ -// Game Framework -// Copyright © 2013-2021 Jiang Yin. All rights reserved. -// Homepage: https://gameframework.cn/ -// Feedback: mailto:ellan@gameframework.cn -//------------------------------------------------------------ - -using GameFramework; +using GameFramework; using GameFramework.Event; using GameFramework.Resource; using System.Collections.Generic; -using StarForce; +using CustomUtility; +using DataTable; +using Definition; using TMPro; using UI; using UnityEngine; @@ -28,6 +23,8 @@ namespace Procedure "Sound", "UIForm", "UISound", + "Dialog", + "DialogLine" }; private Dictionary _loadedFlag = new Dictionary(); diff --git a/Assets/GameMain/Scripts/Sound/SoundExtension.cs b/Assets/GameMain/Scripts/Sound/SoundExtension.cs index 518fd5d..d8fce21 100644 --- a/Assets/GameMain/Scripts/Sound/SoundExtension.cs +++ b/Assets/GameMain/Scripts/Sound/SoundExtension.cs @@ -5,6 +5,9 @@ // Feedback: mailto:ellan@gameframework.cn //------------------------------------------------------------ +using CustomUtility; +using DataTable; +using Definition; using Entity; using GameFramework; using GameFramework.DataTable; diff --git a/Assets/GameMain/Scripts/UI/Base.meta b/Assets/GameMain/Scripts/UI/Base.meta new file mode 100644 index 0000000..4c418c7 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Base.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8cb383e8977814343a630c164eed6c51 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/IFormController.cs b/Assets/GameMain/Scripts/UI/Base/IFormController.cs similarity index 100% rename from Assets/GameMain/Scripts/UI/IFormController.cs rename to Assets/GameMain/Scripts/UI/Base/IFormController.cs diff --git a/Assets/GameMain/Scripts/UI/IFormController.cs.meta b/Assets/GameMain/Scripts/UI/Base/IFormController.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/UI/IFormController.cs.meta rename to Assets/GameMain/Scripts/UI/Base/IFormController.cs.meta diff --git a/Assets/GameMain/Scripts/UI/UGuiForm.cs b/Assets/GameMain/Scripts/UI/Base/UGuiForm.cs similarity index 100% rename from Assets/GameMain/Scripts/UI/UGuiForm.cs rename to Assets/GameMain/Scripts/UI/Base/UGuiForm.cs diff --git a/Assets/GameMain/Scripts/UI/UGuiForm.cs.meta b/Assets/GameMain/Scripts/UI/Base/UGuiForm.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/UI/UGuiForm.cs.meta rename to Assets/GameMain/Scripts/UI/Base/UGuiForm.cs.meta diff --git a/Assets/GameMain/Scripts/UI/UIContext.cs b/Assets/GameMain/Scripts/UI/Base/UIContext.cs similarity index 100% rename from Assets/GameMain/Scripts/UI/UIContext.cs rename to Assets/GameMain/Scripts/UI/Base/UIContext.cs diff --git a/Assets/GameMain/Scripts/UI/UIContext.cs.meta b/Assets/GameMain/Scripts/UI/Base/UIContext.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/UI/UIContext.cs.meta rename to Assets/GameMain/Scripts/UI/Base/UIContext.cs.meta diff --git a/Assets/GameMain/Scripts/UI/GameplayA.meta b/Assets/GameMain/Scripts/UI/Combine.meta similarity index 100% rename from Assets/GameMain/Scripts/UI/GameplayA.meta rename to Assets/GameMain/Scripts/UI/Combine.meta diff --git a/Assets/GameMain/Scripts/UI/GameplayA/Context.meta b/Assets/GameMain/Scripts/UI/Combine/Context.meta similarity index 100% rename from Assets/GameMain/Scripts/UI/GameplayA/Context.meta rename to Assets/GameMain/Scripts/UI/Combine/Context.meta diff --git a/Assets/GameMain/Scripts/UI/GameplayA/Context/CombineFormContext.cs b/Assets/GameMain/Scripts/UI/Combine/Context/CombineFormContext.cs similarity index 100% rename from Assets/GameMain/Scripts/UI/GameplayA/Context/CombineFormContext.cs rename to Assets/GameMain/Scripts/UI/Combine/Context/CombineFormContext.cs diff --git a/Assets/GameMain/Scripts/UI/GameplayA/Context/CombineFormContext.cs.meta b/Assets/GameMain/Scripts/UI/Combine/Context/CombineFormContext.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/UI/GameplayA/Context/CombineFormContext.cs.meta rename to Assets/GameMain/Scripts/UI/Combine/Context/CombineFormContext.cs.meta diff --git a/Assets/GameMain/Scripts/UI/GameplayA/Context/CombinePartContext.cs b/Assets/GameMain/Scripts/UI/Combine/Context/CombinePartContext.cs similarity index 100% rename from Assets/GameMain/Scripts/UI/GameplayA/Context/CombinePartContext.cs rename to Assets/GameMain/Scripts/UI/Combine/Context/CombinePartContext.cs diff --git a/Assets/GameMain/Scripts/UI/GameplayA/Context/CombinePartContext.cs.meta b/Assets/GameMain/Scripts/UI/Combine/Context/CombinePartContext.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/UI/GameplayA/Context/CombinePartContext.cs.meta rename to Assets/GameMain/Scripts/UI/Combine/Context/CombinePartContext.cs.meta diff --git a/Assets/GameMain/Scripts/UI/GameplayA/Context/CombineSlotContext.cs b/Assets/GameMain/Scripts/UI/Combine/Context/CombineSlotContext.cs similarity index 100% rename from Assets/GameMain/Scripts/UI/GameplayA/Context/CombineSlotContext.cs rename to Assets/GameMain/Scripts/UI/Combine/Context/CombineSlotContext.cs diff --git a/Assets/GameMain/Scripts/UI/GameplayA/Context/CombineSlotContext.cs.meta b/Assets/GameMain/Scripts/UI/Combine/Context/CombineSlotContext.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/UI/GameplayA/Context/CombineSlotContext.cs.meta rename to Assets/GameMain/Scripts/UI/Combine/Context/CombineSlotContext.cs.meta diff --git a/Assets/GameMain/Scripts/UI/GameplayA/Controller.meta b/Assets/GameMain/Scripts/UI/Combine/Controller.meta similarity index 100% rename from Assets/GameMain/Scripts/UI/GameplayA/Controller.meta rename to Assets/GameMain/Scripts/UI/Combine/Controller.meta diff --git a/Assets/GameMain/Scripts/UI/GameplayA/Controller/CombineFormController.cs b/Assets/GameMain/Scripts/UI/Combine/Controller/CombineFormController.cs similarity index 100% rename from Assets/GameMain/Scripts/UI/GameplayA/Controller/CombineFormController.cs rename to Assets/GameMain/Scripts/UI/Combine/Controller/CombineFormController.cs diff --git a/Assets/GameMain/Scripts/UI/GameplayA/Controller/CombineFormController.cs.meta b/Assets/GameMain/Scripts/UI/Combine/Controller/CombineFormController.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/UI/GameplayA/Controller/CombineFormController.cs.meta rename to Assets/GameMain/Scripts/UI/Combine/Controller/CombineFormController.cs.meta diff --git a/Assets/GameMain/Scripts/UI/GameplayA/View.meta b/Assets/GameMain/Scripts/UI/Combine/View.meta similarity index 100% rename from Assets/GameMain/Scripts/UI/GameplayA/View.meta rename to Assets/GameMain/Scripts/UI/Combine/View.meta diff --git a/Assets/GameMain/Scripts/UI/GameplayA/View/CombineDraggablePart.cs b/Assets/GameMain/Scripts/UI/Combine/View/CombineDraggablePart.cs similarity index 100% rename from Assets/GameMain/Scripts/UI/GameplayA/View/CombineDraggablePart.cs rename to Assets/GameMain/Scripts/UI/Combine/View/CombineDraggablePart.cs diff --git a/Assets/GameMain/Scripts/UI/GameplayA/View/CombineDraggablePart.cs.meta b/Assets/GameMain/Scripts/UI/Combine/View/CombineDraggablePart.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/UI/GameplayA/View/CombineDraggablePart.cs.meta rename to Assets/GameMain/Scripts/UI/Combine/View/CombineDraggablePart.cs.meta diff --git a/Assets/GameMain/Scripts/UI/GameplayA/View/CombineForm.cs b/Assets/GameMain/Scripts/UI/Combine/View/CombineForm.cs similarity index 100% rename from Assets/GameMain/Scripts/UI/GameplayA/View/CombineForm.cs rename to Assets/GameMain/Scripts/UI/Combine/View/CombineForm.cs diff --git a/Assets/GameMain/Scripts/UI/GameplayA/View/CombineForm.cs.meta b/Assets/GameMain/Scripts/UI/Combine/View/CombineForm.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/UI/GameplayA/View/CombineForm.cs.meta rename to Assets/GameMain/Scripts/UI/Combine/View/CombineForm.cs.meta diff --git a/Assets/GameMain/Scripts/UI/GameplayA/View/CombineSlot.cs b/Assets/GameMain/Scripts/UI/Combine/View/CombineSlot.cs similarity index 100% rename from Assets/GameMain/Scripts/UI/GameplayA/View/CombineSlot.cs rename to Assets/GameMain/Scripts/UI/Combine/View/CombineSlot.cs diff --git a/Assets/GameMain/Scripts/UI/GameplayA/View/CombineSlot.cs.meta b/Assets/GameMain/Scripts/UI/Combine/View/CombineSlot.cs.meta similarity index 100% rename from Assets/GameMain/Scripts/UI/GameplayA/View/CombineSlot.cs.meta rename to Assets/GameMain/Scripts/UI/Combine/View/CombineSlot.cs.meta diff --git a/Assets/GameMain/Scripts/UI/UIExtension.cs b/Assets/GameMain/Scripts/UI/UIExtension.cs index 3b6d6b8..795c8d9 100644 --- a/Assets/GameMain/Scripts/UI/UIExtension.cs +++ b/Assets/GameMain/Scripts/UI/UIExtension.cs @@ -1,13 +1,9 @@ -//------------------------------------------------------------ -// Game Framework -// Copyright © 2013-2021 Jiang Yin. All rights reserved. -// Homepage: https://gameframework.cn/ -// Feedback: mailto:ellan@gameframework.cn -//------------------------------------------------------------ - -using GameFramework.DataTable; +using GameFramework.DataTable; using GameFramework.UI; using System.Collections; +using CustomUtility; +using DataTable; +using Definition; using Procedure; using StarForce; using UnityEngine; diff --git a/Assets/GameMain/Scripts/Utility/AssetUtility.cs b/Assets/GameMain/Scripts/Utility/AssetUtility.cs index 5557d0c..4b9449a 100644 --- a/Assets/GameMain/Scripts/Utility/AssetUtility.cs +++ b/Assets/GameMain/Scripts/Utility/AssetUtility.cs @@ -7,7 +7,7 @@ using GameFramework; -namespace StarForce +namespace CustomUtility { public static class AssetUtility { diff --git a/Assets/GameMain/Scripts/Utility/EnumUtility.cs b/Assets/GameMain/Scripts/Utility/EnumUtility.cs new file mode 100644 index 0000000..83de003 --- /dev/null +++ b/Assets/GameMain/Scripts/Utility/EnumUtility.cs @@ -0,0 +1,27 @@ +using System.Collections.Generic; +using UnityGameFramework.Runtime; + +namespace CustomUtility +{ + public static class EnumUtility where T : struct, System.Enum + { + private static readonly Dictionary _enumCache = new(); + + public static T Get(string value) + { + if (!_enumCache.TryGetValue(value, out T result)) + { + if (System.Enum.TryParse(value, true, out result)) + { + _enumCache[value] = result; + } + else + { + Log.Error($"Enum 解析失败:类型:{typeof(T).Name} 不包含值 {value}"); + } + } + + return result; + } + } +} diff --git a/Assets/GameMain/Scripts/Utility/EnumUtility.cs.meta b/Assets/GameMain/Scripts/Utility/EnumUtility.cs.meta new file mode 100644 index 0000000..6850aba --- /dev/null +++ b/Assets/GameMain/Scripts/Utility/EnumUtility.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d0591e8f95955014f8c2f8d9ba3c9247 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/Utility/LitJsonHelper.cs b/Assets/GameMain/Scripts/Utility/LitJsonHelper.cs index 19a242e..f2d3f1e 100644 --- a/Assets/GameMain/Scripts/Utility/LitJsonHelper.cs +++ b/Assets/GameMain/Scripts/Utility/LitJsonHelper.cs @@ -9,7 +9,7 @@ using GameFramework; using LitJson; using System; -namespace StarForce +namespace CustomUtility { /// /// LitJSON 函数集辅助器。 diff --git a/Assets/GameMain/Scripts/Utility/WebUtility.cs b/Assets/GameMain/Scripts/Utility/WebUtility.cs index 8d5ceeb..f1c0fcf 100644 --- a/Assets/GameMain/Scripts/Utility/WebUtility.cs +++ b/Assets/GameMain/Scripts/Utility/WebUtility.cs @@ -1,13 +1,6 @@ -//------------------------------------------------------------ -// Game Framework -// Copyright © 2013-2021 Jiang Yin. All rights reserved. -// Homepage: https://gameframework.cn/ -// Feedback: mailto:ellan@gameframework.cn -//------------------------------------------------------------ +using System; -using System; - -namespace StarForce +namespace CustomUtility { public static class WebUtility { diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index c2da562..403c004 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -812,11 +812,23 @@ PlayerSettings: webGLMemoryGeometricGrowthCap: 96 webGLPowerPreference: 2 scriptingDefineSymbols: - Android: ENABLE_DEBUG_AND_ABOVE_LOG - Standalone: ENABLE_DEBUG_AND_ABOVE_LOG - WebGL: ENABLE_DEBUG_AND_ABOVE_LOG - Windows Store Apps: ENABLE_DEBUG_AND_ABOVE_LOG - iPhone: ENABLE_DEBUG_AND_ABOVE_LOG + Android: ENABLE_DEBUG_AND_ABOVE_LOG;DOTWEEN + EmbeddedLinux: DOTWEEN + GameCoreScarlett: DOTWEEN + GameCoreXboxOne: DOTWEEN + LinuxHeadlessSimulation: DOTWEEN + Nintendo Switch: DOTWEEN + PS4: DOTWEEN + PS5: DOTWEEN + QNX: DOTWEEN + Stadia: DOTWEEN + Standalone: ENABLE_DEBUG_AND_ABOVE_LOG;DOTWEEN + VisionOS: DOTWEEN + WebGL: ENABLE_DEBUG_AND_ABOVE_LOG;DOTWEEN + Windows Store Apps: ENABLE_DEBUG_AND_ABOVE_LOG;DOTWEEN + XboxOne: DOTWEEN + iPhone: ENABLE_DEBUG_AND_ABOVE_LOG;DOTWEEN + tvOS: DOTWEEN additionalCompilerArguments: {} platformArchitecture: {} scriptingBackend: {} diff --git a/数据表/Dialog.txt b/数据表/Dialog.txt new file mode 100644 index 0000000..a3e4690 --- /dev/null +++ b/数据表/Dialog.txt @@ -0,0 +1,7 @@ +# 对话标识表 筛选用数据 +# Id Title UIMode ChapterId +# int string DialogUIMode int +# 对话编号 策划备注 对话标识 对话形式 章节编号 + 1001 第一章介绍 Chapter1_Intro Mask 1.001 + 1002 第一章主流程 Chapter1_Main BottomBox 1.002 + 1003 第一章玩法开始前闲聊 Chapter1_SmallTalk1 BubbleBox 1.003 diff --git a/数据表/Dialog.xlsx b/数据表/Dialog.xlsx new file mode 100644 index 0000000..6643c37 Binary files /dev/null and b/数据表/Dialog.xlsx differ diff --git a/数据表/DialogLine.txt b/数据表/DialogLine.txt new file mode 100644 index 0000000..49a55c7 --- /dev/null +++ b/数据表/DialogLine.txt @@ -0,0 +1,13 @@ +# 对话内容表 筛选用数据 +# Id SpeakerId Expression SpeakerName Direction Text Emphasis ChapterId DialogId +# int int ExpressionType string int string EmphasisType int int +# 对话行编号 策划备注 说话人Id 表情 显示人名 说话朝向 说话内容 演出效果 章节Id 对话Id + 100100001 Id规则为 Null Null Null 0 相传。 1.00100001 1001.00001 + 100100002 第1位数为章节Id Null Null Null 0 Mask。 1.00100002 1001.00002 + 100100003 第2-4位数为对话Id Null Null Null 0 很好。 1.00100003 1001.00003 + 100200001 第5-9位数为对话行Id Xu Normal 徐晟壹 0 你好,王。 1.00200001 1002.00001 + 100200002 Wang Normal 王可嘉 1 你好,徐。 1.00200002 1002.00002 + 100200003 Master Normal 李诫 1 你们好。 1.00200003 1002.00003 + 100300001 Npc1 Null Null 0 这人谁啊? 1.00300001 1003.00001 + 100300002 Npc2 Null Null 0 不知道啊? 1.00300002 1003.00002 + 100300003 Npc1 Null Null 0 不知道你在这干嘛。 1.00300003 1003.00003 diff --git a/数据表/DialogLine.xlsx b/数据表/DialogLine.xlsx new file mode 100644 index 0000000..7caec29 Binary files /dev/null and b/数据表/DialogLine.xlsx differ diff --git a/数据表/Scene.txt b/数据表/Scene.txt index 29826e2..6aecfae 100644 --- a/数据表/Scene.txt +++ b/数据表/Scene.txt @@ -5,4 +5,3 @@ 1 菜单场景 Menu 1 2 战斗场景 Main 2 3 压力测试场景 StressTest 0 - 4 玩法A测试场景 GameplayA 0 \ No newline at end of file diff --git a/数据表/UIForm.txt b/数据表/UIForm.txt index 20740d2..6b11bd8 100644 --- a/数据表/UIForm.txt +++ b/数据表/UIForm.txt @@ -6,4 +6,3 @@ 100 主菜单 MenuForm Default False True 101 设置 SettingForm Default False True 102 关于 AboutForm Default False True - 103 淨A MVCԽ CoreGameplayAMvcForm Default False True diff --git a/数据表/Weapon.txt b/数据表/Weapon.txt deleted file mode 100644 index 8d2b3fd..0000000 --- a/数据表/Weapon.txt +++ /dev/null @@ -1,5 +0,0 @@ -# 武器表 -# Id Attack AttackInterval BulletId BulletSpeed BulletSoundId -# int int float int float int -# 武器编号 策划备注 攻击力 攻击间隔 子弹编号 子弹速度 子弹声音编号 - 30000 玩家武器 100 0.2 50000 20 10000 diff --git a/数据表/Weapon.xlsx b/数据表/Weapon.xlsx deleted file mode 100644 index d1a4057..0000000 Binary files a/数据表/Weapon.xlsx and /dev/null differ diff --git a/数据表/convert.py b/数据表/convert.py index 82e3435..ba85f28 100644 --- a/数据表/convert.py +++ b/数据表/convert.py @@ -1,45 +1,53 @@ -import pandas as pd -import os +import os import shutil +import pandas as pd + + def convert_excel_to_txt(folder_path='.'): - # 计数器,用于最后汇总 + # 计数器,用于最后统计 count = 0 target_dir = os.path.join(os.path.dirname(__file__), '../Assets/GameMain/DataTables') target_dir = os.path.abspath(target_dir) - + # 确保目标目录存在 os.makedirs(target_dir, exist_ok=True) - - for file_name in os.listdir(folder_path): - if file_name.endswith(('.xlsx', '.xls')): - file_path = os.path.join(folder_path, file_name) + + for root, _, files in os.walk(folder_path): + for file_name in files: + if not file_name.lower().endswith(('.xlsx', '.xls')): + continue + # 跳过 Excel 临时锁文件 + if file_name.startswith('~$'): + continue + + file_path = os.path.join(root, file_name) base_name = os.path.splitext(file_path)[0] - output_file = base_name.replace(os.path.basename(base_name), os.path.basename(base_name)) + '.txt' - - print(f"正在处理: {file_name}...") - + output_file = base_name + '.txt' + + print(f"正在处理: {file_path}...") + try: df = pd.read_excel(file_path, header=None) - + df.to_csv(output_file, sep='\t', index=False, header=False, encoding='utf-8') - + # 复制文件到目标目录 target_file = os.path.join(target_dir, os.path.basename(output_file)) shutil.copy2(output_file, target_file) - + print(f"成功转换 -> {output_file}") print(f"已复制到 -> {target_file}") count += 1 - + except Exception as e: - print(f"处理 {file_name} 时出错: {e}") + print(f"处理 {file_path} 时出错: {e}") print(f"\n任务完成!共转换了 {count} 个文件。") + if __name__ == "__main__": convert_excel_to_txt('.') - - # --- 关键修改:在这里添加暂停 --- - print("\n" + "="*30) - input("按回车键(Enter)退出程序...") \ No newline at end of file + + print("\n" + "=" * 30) + input("按回车键(Enter)退出程序...")