From ea39ed27a339f4fadc5af9724c21cce85bb7ad2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=80=9D=E6=B5=B7?= <10001@qq.com> Date: Sun, 26 Jan 2025 20:55:39 +0800 Subject: [PATCH] add alicizax.unity.editor.extension --- Client/Assets/Editor/Build/ReleaseTools.cs | 2 +- Client/Assets/Editor/Build/YooExtension.meta | 3 + .../Editor/Build/YooExtension/Encryption.cs | 51 + .../Build/YooExtension/Encryption.cs.meta | 3 + .../Build/YooExtension/GameIgnoreRule.cs | 47 + .../Build/YooExtension/GameIgnoreRule.cs.meta | 3 + .../Assets/Editor/Tools/ScreenShotWindow.cs | 3 +- Client/Assets/Main.unity | 880 ++---------------- .../Framework/Procedure/HotfixHelper.cs | 61 -- .../Framework/Procedure/HotfixHelper.cs.meta | 3 - .../Framework/Procedure/LauncherUIHandler.cs | 9 +- .../PatchUpdater/ProcedureClearCache.cs | 2 +- .../PatchUpdater/ProcedureCreateDownloader.cs | 13 +- .../PatchUpdater/ProcedureDownloadWebFiles.cs | 2 +- .../ProcedureGetAppVersionInfoState.cs | 3 +- .../Procedure/ProcedureGetGlobalInfoState.cs | 5 +- .../Procedure/ProcedureLoadAssembly.cs | 4 +- .../AssetBundleCollectorSetting.asset | 2 +- .../Editor.meta | 8 + .../AlicizaX.EditorExtension.Editor.asmdef | 16 + ...licizaX.EditorExtension.Editor.asmdef.meta | 7 + .../Editor/Table.meta | 8 + .../Editor/Table/GenericTableWindow.cs | 400 ++++++++ .../Editor/Table/GenericTableWindow.cs.meta | 11 + .../Editor/Table/TableColumn.cs | 40 + .../Editor/Table/TableColumn.cs.meta | 11 + .../Editor/Table/TableView.cs | 447 +++++++++ .../Editor/Table/TableView.cs.meta | 11 + .../Editor/Table/TableViewItem.cs | 21 + .../Editor/Table/TableViewItem.cs.meta | 11 + .../Editor/Table/TestWindow.cs | 123 +++ .../Editor/Table/TestWindow.cs.meta | 3 + .../Editor/Utility.meta | 3 + .../Editor/Utility/EditorGUIStyleTools.cs | 34 + .../Utility/EditorGUIStyleTools.cs.meta | 3 + .../Editor/Utility}/GameEditorPrefs.cs | 2 +- .../Editor/Utility}/GameEditorPrefs.cs.meta | 0 .../LICENSE.md | 201 ++++ .../LICENSE.md.meta | 7 + .../Plugins.meta | 2 +- .../Plugins/Sirenix.meta | 0 .../Plugins/Sirenix/Assemblies.meta | 0 .../Plugins/Sirenix/Assemblies/NoEditor.meta | 0 .../NoEditor/Sirenix.Serialization.dll | Bin .../NoEditor/Sirenix.Serialization.dll.meta | 0 .../Assemblies/NoEditor/Sirenix.Utilities.dll | Bin .../NoEditor/Sirenix.Utilities.dll.meta | 0 .../Sirenix/Assemblies/NoEmitAndNoEditor.meta | 0 .../Sirenix.Serialization.dll | Bin .../Sirenix.Serialization.dll.meta | 0 .../NoEmitAndNoEditor/Sirenix.Utilities.dll | Bin .../Sirenix.Utilities.dll.meta | 0 .../Sirenix.OdinInspector.Attributes.dll | Bin .../Sirenix.OdinInspector.Attributes.dll.meta | 0 .../Sirenix.OdinInspector.Attributes.xml | 0 .../Sirenix.OdinInspector.Attributes.xml.meta | 0 .../Sirenix.OdinInspector.Editor.dll | Bin .../Sirenix.OdinInspector.Editor.dll.meta | 0 .../Sirenix.OdinInspector.Editor.xml | 0 .../Sirenix.OdinInspector.Editor.xml.meta | 0 .../Sirenix.OdinValidator.Editor.dll | Bin .../Sirenix.OdinValidator.Editor.dll.meta | 0 .../Sirenix.OdinValidator.Editor.xml | 0 .../Sirenix.OdinValidator.Editor.xml.meta | 0 .../Sirenix.Serialization.Config.dll | Bin .../Sirenix.Serialization.Config.dll.meta | 0 .../Sirenix.Serialization.Config.xml | 0 .../Sirenix.Serialization.Config.xml.meta | 0 .../Assemblies/Sirenix.Serialization.dll | Bin .../Assemblies/Sirenix.Serialization.dll.meta | 0 .../Assemblies/Sirenix.Serialization.xml | 0 .../Assemblies/Sirenix.Serialization.xml.meta | 0 .../Assemblies/Sirenix.Utilities.Editor.dll | Bin .../Sirenix.Utilities.Editor.dll.meta | 0 .../Assemblies/Sirenix.Utilities.Editor.xml | 0 .../Sirenix.Utilities.Editor.xml.meta | 0 .../Sirenix/Assemblies/Sirenix.Utilities.dll | Bin .../Assemblies/Sirenix.Utilities.dll.meta | 0 .../Sirenix/Assemblies/Sirenix.Utilities.xml | 0 .../Assemblies/Sirenix.Utilities.xml.meta | 0 .../Plugins/Sirenix/Assemblies/link.xml | 0 .../Plugins/Sirenix/Assemblies/link.xml.meta | 0 .../Plugins/Sirenix/Odin Inspector.meta | 0 .../Sirenix/Odin Inspector/Assets.meta | 0 .../Sirenix/Odin Inspector/Assets/Editor.meta | 0 .../Assets/Editor/Bootstrap License.txt | 0 .../Assets/Editor/Bootstrap License.txt.meta | 0 .../Assets/Editor/ConfigData.bytes | Bin .../Assets/Editor/ConfigData.bytes.meta | 0 .../Assets/Editor/OdinPathLookup.asset | 0 .../Assets/Editor/OdinPathLookup.asset.meta | 0 .../Assets/Editor/SdfIconAtlas.png | Bin .../Assets/Editor/SdfIconAtlas.png.meta | 0 .../Sirenix/Odin Inspector/Config.meta | 0 .../Sirenix/Odin Inspector/Config/Editor.meta | 0 .../Config/Editor/AOTGenerationConfig.asset | 0 .../Editor/AOTGenerationConfig.asset.meta | 0 .../Config/Editor/ColorPaletteManager.asset | 0 .../Editor/ColorPaletteManager.asset.meta | 0 .../Config/Editor/GeneralDrawerConfig.asset | 0 .../Editor/GeneralDrawerConfig.asset.meta | 0 .../Config/Editor/ImportSettingsConfig.asset | 0 .../Editor/ImportSettingsConfig.asset.meta | 0 .../Config/Editor/InspectorConfig.asset | 0 .../Config/Editor/InspectorConfig.asset.meta | 0 .../Config/Editor/OdinModuleConfig.asset | 0 .../Config/Editor/OdinModuleConfig.asset.meta | 0 .../Odin Inspector/Config/Resources.meta | 0 .../Config/Resources/Sirenix.meta | 0 .../Sirenix/GlobalSerializationConfig.asset | 0 .../GlobalSerializationConfig.asset.meta | 0 .../Sirenix/Odin Inspector/Modules.meta | 0 .../Modules/Unity.Entities.data | Bin .../Modules/Unity.Entities.data.meta | 0 .../Modules/Unity.Localization.data | Bin .../Modules/Unity.Localization.data.meta | 0 .../Modules/Unity.Mathematics.data | Bin .../Modules/Unity.Mathematics.data.meta | 0 .../Plugins/Sirenix/Odin Validator.meta | 0 .../Sirenix/Odin Validator/Editor.meta | 0 .../Sirenix/Odin Validator/Editor/Config.meta | 0 .../Editor/Config/AutomationConfig.asset | 0 .../Editor/Config/AutomationConfig.asset.meta | 0 .../Config/GlobalValidationConfig.asset | 0 .../Config/GlobalValidationConfig.asset.meta | 0 .../Editor/Config/RuleConfig.asset | 0 .../Editor/Config/RuleConfig.asset.meta | 0 .../Odin Validator/Editor/Profiles.meta | 0 .../Editor/Profiles/Main Profile.asset | 0 .../Editor/Profiles/Main Profile.asset.meta | 0 .../EnsureCorrectOdinVersion.cs | 0 .../EnsureCorrectOdinVersion.cs.meta | 0 .../Plugins/Sirenix/Odin Validator/Readme.txt | 0 .../Sirenix/Odin Validator/Readme.txt.meta | 0 .../Plugins/Sirenix/Readme.txt | 0 .../Plugins/Sirenix/Readme.txt.meta | 0 .../README.md | 19 + .../README.md.meta | 7 + .../package.json | 20 + .../package.json.meta | 7 + .../com.alicizax.unity.entry/Resources.meta | 8 + .../Resources/Entry.prefab | 827 ++++++++++++++++ .../Resources/Entry.prefab.meta | 7 + .../Editor/ProcedureComponentInspector.cs | 4 +- .../Editor/AlicizaX.Resource.Editor.asmdef | 3 +- .../Inspector/ResourceComponentInspector.cs | 48 +- .../ResourceExtComponent.Resource.cs | 4 +- .../Runtime/Resource/ResourceComponent.cs | 14 +- .../ResourceManager.Initialization.cs | 8 +- .../Resource/ResourceManager.Services.cs | 71 +- .../Runtime/Resource/ResourceManager.cs | 7 +- .../Editor/AlicizaX.UI.Editor.asmdef | 3 +- .../Assets/UIGenerateGlobalSettings.asset | 30 + .../UIConfig/UIGenerateGlobalSettingTab.cs | 11 +- .../UIConfig/UIGenerateGlobalSettings.cs | 63 +- .../UI/ComponentBindTool/UIBindComponent.cs | 2 +- .../Inspector/ObjectPoolComponentInspector.cs | 10 +- .../ReferencePoolComponentInspector.cs | 9 +- Client/Packages/packages-lock.json | 6 + Client/UserSettings/Layouts/default-6000.dwlt | 114 +-- 160 files changed, 2684 insertions(+), 1083 deletions(-) create mode 100644 Client/Assets/Editor/Build/YooExtension.meta create mode 100644 Client/Assets/Editor/Build/YooExtension/Encryption.cs create mode 100644 Client/Assets/Editor/Build/YooExtension/Encryption.cs.meta create mode 100644 Client/Assets/Editor/Build/YooExtension/GameIgnoreRule.cs create mode 100644 Client/Assets/Editor/Build/YooExtension/GameIgnoreRule.cs.meta delete mode 100644 Client/Assets/Scripts/Startup/Framework/Procedure/HotfixHelper.cs delete mode 100644 Client/Assets/Scripts/Startup/Framework/Procedure/HotfixHelper.cs.meta create mode 100644 Client/Packages/com.alicizax.unity.editor.extension/Editor.meta create mode 100644 Client/Packages/com.alicizax.unity.editor.extension/Editor/AlicizaX.EditorExtension.Editor.asmdef create mode 100644 Client/Packages/com.alicizax.unity.editor.extension/Editor/AlicizaX.EditorExtension.Editor.asmdef.meta create mode 100644 Client/Packages/com.alicizax.unity.editor.extension/Editor/Table.meta create mode 100644 Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/GenericTableWindow.cs create mode 100644 Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/GenericTableWindow.cs.meta create mode 100644 Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TableColumn.cs create mode 100644 Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TableColumn.cs.meta create mode 100644 Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TableView.cs create mode 100644 Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TableView.cs.meta create mode 100644 Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TableViewItem.cs create mode 100644 Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TableViewItem.cs.meta create mode 100644 Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TestWindow.cs create mode 100644 Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TestWindow.cs.meta create mode 100644 Client/Packages/com.alicizax.unity.editor.extension/Editor/Utility.meta create mode 100644 Client/Packages/com.alicizax.unity.editor.extension/Editor/Utility/EditorGUIStyleTools.cs create mode 100644 Client/Packages/com.alicizax.unity.editor.extension/Editor/Utility/EditorGUIStyleTools.cs.meta rename Client/{Assets/Editor/Tools => Packages/com.alicizax.unity.editor.extension/Editor/Utility}/GameEditorPrefs.cs (97%) rename Client/{Assets/Editor/Tools => Packages/com.alicizax.unity.editor.extension/Editor/Utility}/GameEditorPrefs.cs.meta (100%) create mode 100644 Client/Packages/com.alicizax.unity.editor.extension/LICENSE.md create mode 100644 Client/Packages/com.alicizax.unity.editor.extension/LICENSE.md.meta rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins.meta (77%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/NoEditor.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/NoEditor/Sirenix.Serialization.dll (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/NoEditor/Sirenix.Serialization.dll.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/NoEditor/Sirenix.Utilities.dll (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/NoEditor/Sirenix.Utilities.dll.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor/Sirenix.Serialization.dll (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor/Sirenix.Serialization.dll.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor/Sirenix.Utilities.dll (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor/Sirenix.Utilities.dll.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Attributes.dll (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Attributes.dll.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Attributes.xml (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Attributes.xml.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Editor.dll (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Editor.dll.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Editor.xml (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Editor.xml.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.OdinValidator.Editor.dll (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.OdinValidator.Editor.dll.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.OdinValidator.Editor.xml (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.OdinValidator.Editor.xml.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.Serialization.Config.dll (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.Serialization.Config.dll.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.Serialization.Config.xml (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.Serialization.Config.xml.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.Serialization.dll (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.Serialization.dll.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.Serialization.xml (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.Serialization.xml.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.Utilities.Editor.dll (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.Utilities.Editor.dll.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.Utilities.Editor.xml (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.Utilities.Editor.xml.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.Utilities.dll (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.Utilities.dll.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.Utilities.xml (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/Sirenix.Utilities.xml.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/link.xml (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Assemblies/link.xml.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Assets.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Assets/Editor.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Assets/Editor/Bootstrap License.txt (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Assets/Editor/Bootstrap License.txt.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Assets/Editor/ConfigData.bytes (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Assets/Editor/ConfigData.bytes.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Assets/Editor/OdinPathLookup.asset (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Assets/Editor/OdinPathLookup.asset.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Assets/Editor/SdfIconAtlas.png (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Assets/Editor/SdfIconAtlas.png.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Config.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Config/Editor.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Config/Editor/AOTGenerationConfig.asset (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Config/Editor/AOTGenerationConfig.asset.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Config/Editor/ColorPaletteManager.asset (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Config/Editor/ColorPaletteManager.asset.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Config/Editor/GeneralDrawerConfig.asset (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Config/Editor/GeneralDrawerConfig.asset.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Config/Editor/ImportSettingsConfig.asset (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Config/Editor/ImportSettingsConfig.asset.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Config/Editor/InspectorConfig.asset (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Config/Editor/InspectorConfig.asset.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Config/Editor/OdinModuleConfig.asset (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Config/Editor/OdinModuleConfig.asset.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Config/Resources.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Config/Resources/Sirenix.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Config/Resources/Sirenix/GlobalSerializationConfig.asset (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Config/Resources/Sirenix/GlobalSerializationConfig.asset.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Modules.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Modules/Unity.Entities.data (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Modules/Unity.Entities.data.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Modules/Unity.Localization.data (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Modules/Unity.Localization.data.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics.data (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics.data.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Validator.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Validator/Editor.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Validator/Editor/Config.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Validator/Editor/Config/AutomationConfig.asset (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Validator/Editor/Config/AutomationConfig.asset.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Validator/Editor/Config/GlobalValidationConfig.asset (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Validator/Editor/Config/GlobalValidationConfig.asset.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Validator/Editor/Config/RuleConfig.asset (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Validator/Editor/Config/RuleConfig.asset.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Validator/Editor/Profiles.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Validator/Editor/Profiles/Main Profile.asset (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Validator/Editor/Profiles/Main Profile.asset.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Validator/EnsureCorrectOdinVersion.cs (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Validator/EnsureCorrectOdinVersion.cs.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Validator/Readme.txt (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Odin Validator/Readme.txt.meta (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Readme.txt (100%) rename Client/{Assets => Packages/com.alicizax.unity.editor.extension}/Plugins/Sirenix/Readme.txt.meta (100%) create mode 100644 Client/Packages/com.alicizax.unity.editor.extension/README.md create mode 100644 Client/Packages/com.alicizax.unity.editor.extension/README.md.meta create mode 100644 Client/Packages/com.alicizax.unity.editor.extension/package.json create mode 100644 Client/Packages/com.alicizax.unity.editor.extension/package.json.meta create mode 100644 Client/Packages/com.alicizax.unity.entry/Resources.meta create mode 100644 Client/Packages/com.alicizax.unity.entry/Resources/Entry.prefab create mode 100644 Client/Packages/com.alicizax.unity.entry/Resources/Entry.prefab.meta diff --git a/Client/Assets/Editor/Build/ReleaseTools.cs b/Client/Assets/Editor/Build/ReleaseTools.cs index a793fe9..90704e5 100644 --- a/Client/Assets/Editor/Build/ReleaseTools.cs +++ b/Client/Assets/Editor/Build/ReleaseTools.cs @@ -219,7 +219,7 @@ namespace BuildCli buildParameters.FileNameStyle = EFileNameStyle.BundleName_HashName; buildParameters.BuildinFileCopyOption = EBuildinFileCopyOption.ClearAndCopyByTags; buildParameters.BuildinFileCopyParams = "Launch"; - buildParameters.EncryptionServices = CreateEncryptionInstance("DefaultPackage", EBuildPipeline.ScriptableBuildPipeline); + buildParameters.EncryptionServices = CreateEncryptionInstance("DefaultPackage", EBuildPipeline.BuiltinBuildPipeline); // 启用共享资源打包 buildParameters.EnableSharePackRule = true; diff --git a/Client/Assets/Editor/Build/YooExtension.meta b/Client/Assets/Editor/Build/YooExtension.meta new file mode 100644 index 0000000..7e5fba3 --- /dev/null +++ b/Client/Assets/Editor/Build/YooExtension.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: d4c8155609124d828af3f732a15a0992 +timeCreated: 1737867267 \ No newline at end of file diff --git a/Client/Assets/Editor/Build/YooExtension/Encryption.cs b/Client/Assets/Editor/Build/YooExtension/Encryption.cs new file mode 100644 index 0000000..5fbacd9 --- /dev/null +++ b/Client/Assets/Editor/Build/YooExtension/Encryption.cs @@ -0,0 +1,51 @@ +namespace BuildCli.YooExtension +{ + using System; + using System.IO; + using YooAsset; + + /// + /// 文件偏移加密方式 + /// + public class FileOffsetEncryption : IEncryptionServices + { + public EncryptResult Encrypt(EncryptFileInfo fileInfo) + { + int offset = 32; + byte[] fileData = File.ReadAllBytes(fileInfo.FileLoadPath); + var encryptedData = new byte[fileData.Length + offset]; + Buffer.BlockCopy(fileData, 0, encryptedData, offset, fileData.Length); + + EncryptResult result = new EncryptResult(); + result.Encrypted = true; + result.EncryptedData = encryptedData; + return result; + } + } + + // + // /// + // /// 文件流加密方式 + // /// + // public class FileStreamEncryption : IEncryptionServices + // { + // public EncryptResult Encrypt(EncryptFileInfo fileInfo) + // { + // if (fileInfo.BundleName.Contains("DLL")) + // { + // + // } + // + // var fileData = File.ReadAllBytes(fileInfo.FileLoadPath); + // for (int i = 0; i < fileData.Length; i++) + // { + // fileData[i] ^= BundleStream.KEY; + // } + // + // EncryptResult result = new EncryptResult(); + // result.Encrypted = true; + // result.EncryptedData = fileData; + // return result; + // } + // } +} diff --git a/Client/Assets/Editor/Build/YooExtension/Encryption.cs.meta b/Client/Assets/Editor/Build/YooExtension/Encryption.cs.meta new file mode 100644 index 0000000..7233121 --- /dev/null +++ b/Client/Assets/Editor/Build/YooExtension/Encryption.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 39b42829cd724f10999caec280e260f7 +timeCreated: 1737867622 \ No newline at end of file diff --git a/Client/Assets/Editor/Build/YooExtension/GameIgnoreRule.cs b/Client/Assets/Editor/Build/YooExtension/GameIgnoreRule.cs new file mode 100644 index 0000000..08054e1 --- /dev/null +++ b/Client/Assets/Editor/Build/YooExtension/GameIgnoreRule.cs @@ -0,0 +1,47 @@ +using UnityEditor; +using YooAsset.Editor; + +namespace BuildCli.YooExtension +{ + public class GameIgnoreRule : IIgnoreRule + { + /// + /// 查询是否为忽略文件 + /// + public bool IsIgnore(AssetInfo assetInfo) + { + if (assetInfo.AssetPath.StartsWith("Assets/") == false && assetInfo.AssetPath.StartsWith("Packages/") == false) + { + UnityEngine.Debug.LogError($"Invalid asset path : {assetInfo.AssetPath}"); + return true; + } + + // 忽略文件夹 + if (AssetDatabase.IsValidFolder(assetInfo.AssetPath)) + return true; + + // 忽略编辑器图标资源 + if (assetInfo.AssetPath.Contains("/Gizmos/")) + return true; + // 忽略编辑器专属资源 + if (assetInfo.AssetPath.Contains("/Editor/") || assetInfo.AssetPath.Contains("/Editor Resources/")) + return true; + + + // 忽略编辑器下的类型资源 + if (assetInfo.AssetType == typeof(LightingDataAsset)) + return true; + if (assetInfo.AssetType == typeof(LightmapParameters)) + return true; + + // 忽略Unity引擎无法识别的文件 + if (assetInfo.AssetType == typeof(UnityEditor.DefaultAsset)) + { + UnityEngine.Debug.LogWarning($"Cannot pack default asset : {assetInfo.AssetPath}"); + return true; + } + + return DefaultIgnoreRule.IgnoreFileExtensions.Contains(assetInfo.FileExtension); + } + } +} diff --git a/Client/Assets/Editor/Build/YooExtension/GameIgnoreRule.cs.meta b/Client/Assets/Editor/Build/YooExtension/GameIgnoreRule.cs.meta new file mode 100644 index 0000000..5fde24c --- /dev/null +++ b/Client/Assets/Editor/Build/YooExtension/GameIgnoreRule.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 61fc20278e7f482cb871fb5c6259a70b +timeCreated: 1737867291 \ No newline at end of file diff --git a/Client/Assets/Editor/Tools/ScreenShotWindow.cs b/Client/Assets/Editor/Tools/ScreenShotWindow.cs index cb7c3d3..530d1cf 100644 --- a/Client/Assets/Editor/Tools/ScreenShotWindow.cs +++ b/Client/Assets/Editor/Tools/ScreenShotWindow.cs @@ -1,6 +1,7 @@ using UnityEngine; using UnityEditor; using System; +using AlicizaX.EditorExtension.Editor; namespace BuildCli { @@ -9,7 +10,7 @@ namespace BuildCli private string saveFileName = string.Empty; private string saveDirPathKey = "CaptureSaveDirPathKey"; - [UnityEditor.MenuItem("开发工具/截图工具", false, 102)] + [UnityEditor.MenuItem("开发工具/常用Tools/截图工具", false, 102)] private static void Capture() { if (HasOpenInstances()) diff --git a/Client/Assets/Main.unity b/Client/Assets/Main.unity index df1579b..2559a1b 100644 --- a/Client/Assets/Main.unity +++ b/Client/Assets/Main.unity @@ -119,519 +119,6 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} ---- !u!1 &17177054 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 17177055} - - component: {fileID: 17177056} - m_Layer: 0 - m_Name: EventKit - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &17177055 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 17177054} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1455375114} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &17177056 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 17177054} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7eec9f691e06464cbfc45f619c7fee9d, type: 3} - m_Name: - m_EditorClassIdentifier: - componentType: ---- !u!1 &77951143 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 77951144} - - component: {fileID: 77951145} - m_Layer: 0 - m_Name: Event - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &77951144 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 77951143} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1455375114} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &77951145 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 77951143} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 48602115335c4223a70dc35cd6b29bbd, type: 3} - m_Name: - m_EditorClassIdentifier: - componentType: AlicizaX.Event.Runtime.EventManager ---- !u!1 &110080585 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 110080586} - - component: {fileID: 110080587} - m_Layer: 0 - m_Name: Resources - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &110080586 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 110080585} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1455375114} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &110080587 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 110080585} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 91e581bb79676824f8c04687f21ed727, type: 3} - m_Name: - m_EditorClassIdentifier: - componentType: AlicizaX.Resource.Runtime.ResourceManager - m_GamePlayMode: 2 - m_Milliseconds: 30 - m_defaultPackageName: DefaultPackage - m_AssetAutoReleaseInterval: 60 - m_AssetCapacity: 64 - m_AssetExpireTime: 60 - m_AssetPriority: 0 ---- !u!1 &187276826 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 187276827} - - component: {fileID: 187276828} - m_Layer: 0 - m_Name: ResourcesExt - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &187276827 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 187276826} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1455375114} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &187276828 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 187276826} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e3adf1e69b12944448c9fe6ae10983cb, type: 3} - m_Name: - m_EditorClassIdentifier: - componentType: - m_CheckCanReleaseInterval: 30 - m_AutoReleaseInterval: 60 ---- !u!1 &354344801 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 354344802} - - component: {fileID: 354344803} - m_Layer: 0 - m_Name: UI - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &354344802 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 354344801} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1455375114} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &354344803 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 354344801} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 028204b1d2277bd4782816ee91aeed81, type: 3} - m_Name: - m_EditorClassIdentifier: - componentType: AlicizaX.UI.Runtime.UIManager - uiRoot: {fileID: 4612363183729467837, guid: 9368ff38b2090b2468f8358242026e4b, type: 3} ---- !u!1 &539295520 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 539295521} - - component: {fileID: 539295522} - m_Layer: 0 - m_Name: Scene - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &539295521 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 539295520} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1455375114} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &539295522 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 539295520} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6ccaedadefd0fbf498241670caa387e8, type: 3} - m_Name: - m_EditorClassIdentifier: - componentType: AlicizaX.Scene.Runtime.GameSceneManager - m_EnableLoadSceneUpdateEvent: 1 - m_EnableLoadSceneDependencyAssetEvent: 1 ---- !u!1 &559090126 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 559090127} - - component: {fileID: 559090128} - m_Layer: 0 - m_Name: Config - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &559090127 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 559090126} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1455375114} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &559090128 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 559090126} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: be92abf1b6aa472c9ff7ebd49bbab9bf, type: 3} - m_Name: - m_EditorClassIdentifier: - componentType: AlicizaX.Config.Runtime.ConfigManager ---- !u!1 &804333829 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 804333830} - - component: {fileID: 804333831} - m_Layer: 0 - m_Name: Procedure - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &804333830 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 804333829} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1455375114} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &804333831 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 804333829} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4d13b628448e4c71a78c4e51756cf98c, type: 3} - m_Name: - m_EditorClassIdentifier: - componentType: AlicizaX.Procedure.Runtime.ProcedureManager - m_AvailableProcedureTypeNames: - - Unity.Startup.Procedure.ProcedureClearCache - - Unity.Startup.Procedure.ProcedureCreateDownloader - - Unity.Startup.Procedure.ProcedureDownloadWebFiles - - Unity.Startup.Procedure.ProcedureGameLauncherState - - Unity.Startup.Procedure.ProcedureGetAppVersionInfoState - - Unity.Startup.Procedure.ProcedureGetGlobalInfoState - - Unity.Startup.Procedure.ProcedureLauncherState - - Unity.Startup.Procedure.ProcedureLoadAssembly - - Unity.Startup.Procedure.ProcedurePatchDone - - Unity.Startup.Procedure.ProcedurePatchInit - - Unity.Startup.Procedure.ProcedureUpdateManifest - - Unity.Startup.Procedure.ProcedureUpdateStaticVersion - m_EntranceProcedureTypeName: Unity.Startup.Procedure.ProcedureLauncherState ---- !u!1 &965054549 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 965054550} - - component: {fileID: 965054551} - m_Layer: 0 - m_Name: Audio - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &965054550 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 965054549} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1455375114} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &965054551 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 965054549} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7d0b3cff83fd3874394b1b456bb54dab, type: 3} - m_Name: - m_EditorClassIdentifier: - componentType: AlicizaX.Audio.Runtime.AudioManager - m_AudioMixer: {fileID: 24100000, guid: 1af7a1b121ae17541a1967d430cef006, type: 2} - m_InstanceRoot: {fileID: 965054550} - m_AudioGroupConfigs: - - m_Name: Music - m_Mute: 0 - m_Volume: 0.5 - m_AgentHelperCount: 1 - AudioType: 2 - audioRolloffMode: 1 - minDistance: 15 - maxDistance: 50 - - m_Name: Sound - m_Mute: 1 - m_Volume: 0.5 - m_AgentHelperCount: 4 - AudioType: 0 - audioRolloffMode: 0 - minDistance: 1 - maxDistance: 500 - - m_Name: UISound - m_Mute: 0 - m_Volume: 0.5 - m_AgentHelperCount: 4 - AudioType: 1 - audioRolloffMode: 0 - minDistance: 1 - maxDistance: 500 - - m_Name: Voice - m_Mute: 0 - m_Volume: 0.5 - m_AgentHelperCount: 1 - AudioType: 3 - audioRolloffMode: 0 - minDistance: 1 - maxDistance: 500 ---- !u!1 &1107828071 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1107828072} - - component: {fileID: 1107828073} - m_Layer: 0 - m_Name: Setting - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1107828072 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1107828071} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1455375114} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1107828073 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1107828071} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dd5fa5f9376d4c2abee7a298edbfbd19, type: 3} - m_Name: - m_EditorClassIdentifier: - componentType: AlicizaX.Setting.Runtime.SettingManager - m_SettingHelperTypeName: AlicizaX.Setting.Runtime.DefaultSettingHelper - m_CustomSettingHelper: {fileID: 0} --- !u!1 &1378554099 GameObject: m_ObjectHideFlags: 0 @@ -769,321 +256,66 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1455375113 -GameObject: +--- !u!1001 &9151303530987613966 +PrefabInstance: m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1455375114} - - component: {fileID: 1455375115} - m_Layer: 0 - m_Name: Entry - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1455375114 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1455375113} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 2121063206} - - {fileID: 2066725839} - - {fileID: 804333830} - - {fileID: 1107828072} - - {fileID: 2110718264} - - {fileID: 17177055} - - {fileID: 77951144} - - {fileID: 110080586} - - {fileID: 187276827} - - {fileID: 539295521} - - {fileID: 2030429591} - - {fileID: 965054550} - - {fileID: 559090127} - - {fileID: 2081231531} - - {fileID: 354344802} - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1455375115 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1455375113} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 252fa1bb9e36411fb4582d0656b987bf, type: 3} - m_Name: - m_EditorClassIdentifier: - componentType: - m_FrameRate: 120 - m_GameSpeed: 1 - m_RunInBackground: 1 - m_NeverSleep: 1 ---- !u!1 &2030429590 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2030429591} - - component: {fileID: 2030429592} - m_Layer: 0 - m_Name: Debugger - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2030429591 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2030429590} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1455375114} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &2030429592 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2030429590} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f05eaceeebe870a4595e51f998ed518b, type: 3} - m_Name: - m_EditorClassIdentifier: - componentType: AlicizaX.Debugger.Runtime.DebuggerManager - m_Skin: {fileID: 11400000, guid: dce698819fdb70b42b393d9b0b6d420e, type: 2} - m_ActiveWindow: 0 - m_ShowFullWindow: 0 - m_ConsoleWindow: - m_LockScroll: 1 - m_MaxLine: 100 - m_InfoFilter: 1 - m_WarningFilter: 1 - m_ErrorFilter: 1 - m_FatalFilter: 1 - m_InfoColor: - serializedVersion: 2 - rgba: 4294967295 - m_WarningColor: - serializedVersion: 2 - rgba: 4278512639 - m_ErrorColor: - serializedVersion: 2 - rgba: 4278190335 - m_FatalColor: - serializedVersion: 2 - rgba: 4281545650 ---- !u!1 &2066725838 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2066725839} - - component: {fileID: 2066725840} - m_Layer: 0 - m_Name: Object Pool - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2066725839 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2066725838} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1455375114} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &2066725840 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2066725838} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1e28a727443c86c40aeb42ff20e0a343, type: 3} - m_Name: - m_EditorClassIdentifier: - componentType: AlicizaX.ObjectPool.ObjectPoolManager ---- !u!1 &2081231530 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2081231531} - - component: {fileID: 2081231532} - m_Layer: 0 - m_Name: Fsm - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2081231531 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2081231530} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1455375114} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &2081231532 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2081231530} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a69e41ab65d84e83a0468f1a2cc3926f, type: 3} - m_Name: - m_EditorClassIdentifier: - componentType: AlicizaX.Fsm.Runtime.FsmManager ---- !u!1 &2110718263 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2110718264} - - component: {fileID: 2110718265} - m_Layer: 0 - m_Name: Timer - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2110718264 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2110718263} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1455375114} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &2110718265 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2110718263} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6bbfa5f028024a70812e412b33c0a86a, type: 3} - m_Name: - m_EditorClassIdentifier: - componentType: AlicizaX.Timer.Runtime.TimerManager ---- !u!1 &2121063205 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2121063206} - - component: {fileID: 2121063207} - m_Layer: 0 - m_Name: Reference Pool - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2121063206 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2121063205} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1455375114} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &2121063207 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2121063205} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8ae4d40d7e878bc498492dc9c410d071, type: 3} - m_Name: - m_EditorClassIdentifier: - componentType: - m_EnableStrictCheck: 0 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 872693327694151783, guid: 8e4808bf30e54a8439a661bfa35ee982, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 872693327694151783, guid: 8e4808bf30e54a8439a661bfa35ee982, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 872693327694151783, guid: 8e4808bf30e54a8439a661bfa35ee982, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 872693327694151783, guid: 8e4808bf30e54a8439a661bfa35ee982, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 872693327694151783, guid: 8e4808bf30e54a8439a661bfa35ee982, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 872693327694151783, guid: 8e4808bf30e54a8439a661bfa35ee982, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 872693327694151783, guid: 8e4808bf30e54a8439a661bfa35ee982, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 872693327694151783, guid: 8e4808bf30e54a8439a661bfa35ee982, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 872693327694151783, guid: 8e4808bf30e54a8439a661bfa35ee982, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 872693327694151783, guid: 8e4808bf30e54a8439a661bfa35ee982, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7543149531317296434, guid: 8e4808bf30e54a8439a661bfa35ee982, type: 3} + propertyPath: m_Name + value: Entry + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 8e4808bf30e54a8439a661bfa35ee982, type: 3} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 m_Roots: - - {fileID: 1455375114} + - {fileID: 9151303530987613966} - {fileID: 1378554103} diff --git a/Client/Assets/Scripts/Startup/Framework/Procedure/HotfixHelper.cs b/Client/Assets/Scripts/Startup/Framework/Procedure/HotfixHelper.cs deleted file mode 100644 index 6ea270b..0000000 --- a/Client/Assets/Scripts/Startup/Framework/Procedure/HotfixHelper.cs +++ /dev/null @@ -1,61 +0,0 @@ -// using System; -// using System.Linq; -// using System.Reflection; -// using AlicizaX.Runtime; -// using HybridCLR; -// -// namespace Unity.Startup.Procedure -// { -// public static class HotfixHelper -// { -// const string HotfixName = "Unity.Hotfix"; -// -// public static async void StartHotfix() -// { -// if (ApplicationHelper.IsEditor) -// { -// var assemblies = Utility.Assembly.GetAssemblies(); -// foreach (var assembly in assemblies) -// { -// if (assembly.GetName().Name.Equals(HotfixName, StringComparison.OrdinalIgnoreCase)) -// { -// Run(assembly); -// break; -// } -// } -// -// return; -// } -// -// Log.Info("开始加载AOT DLL"); -// -// var aotDlls = AOTGenericReferences.PatchedAOTAssemblyList.ToArray(); -// foreach (var aotDll in aotDlls) -// { -// Log.Info("开始加载AOT DLL ==> " + aotDll); -// var assetHandle = GameApp.Resource.LoadAssetAsyncHandle(Utility.Asset.Path.GetAOTCodePath(aotDll)); -// var aotBytes = assetHandle.GetAssetObject().bytes; -// RuntimeApi.LoadMetadataForAOTAssembly(aotBytes, HomologousImageMode.SuperSet); -// } -// -// Log.Info("结束加载AOT DLL"); -// Log.Info("开始加载Unity.Hotfix.dll"); -// var assetHotfixDllPath = Utility.Asset.Path.GetCodePath(HotfixName + Utility.Const.FileNameSuffix.DLL); -// var assetHotfixDllOperationHandle = GameApp.Resource.LoadAssetAsyncHandle(assetHotfixDllPath); -// var assemblyDataHotfixDll = assetHotfixDllOperationHandle.GetAssetObject().bytes; -// Log.Info("开始加载程序集Hotfix"); -// var hotfixAssembly = Assembly.Load(assemblyDataHotfixDll, null); -// Run(hotfixAssembly); -// } -// -// private static void Run(Assembly assembly) -// { -// Log.Info("加载程序集Hotfix 结束 Assembly " + assembly.FullName); -// var entryType = assembly.GetType("Hotfix.HotfixLauncher"); -// Log.Info("加载程序集Hotfix 结束 EntryType " + entryType.FullName); -// var method = entryType.GetMethod("Main"); -// Log.Info("加载程序集Hotfix 结束 EntryType=>method " + method?.Name); -// method?.Invoke(null, null); -// } -// } -// } \ No newline at end of file diff --git a/Client/Assets/Scripts/Startup/Framework/Procedure/HotfixHelper.cs.meta b/Client/Assets/Scripts/Startup/Framework/Procedure/HotfixHelper.cs.meta deleted file mode 100644 index 292374e..0000000 --- a/Client/Assets/Scripts/Startup/Framework/Procedure/HotfixHelper.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 9d1ad4e910614930b986e764fe6fce62 -timeCreated: 1680094814 \ No newline at end of file diff --git a/Client/Assets/Scripts/Startup/Framework/Procedure/LauncherUIHandler.cs b/Client/Assets/Scripts/Startup/Framework/Procedure/LauncherUIHandler.cs index 5518b69..e5ce3cf 100644 --- a/Client/Assets/Scripts/Startup/Framework/Procedure/LauncherUIHandler.cs +++ b/Client/Assets/Scripts/Startup/Framework/Procedure/LauncherUIHandler.cs @@ -18,11 +18,6 @@ namespace Unity.Startup.Procedure { } - public static void ShowLogText(string text) - { - Log.Info("TipText:{0}", text); - } - private static float _lastUpdateDownloadedSize; private static float _totalSpeed; private static int _speedSampleCount; @@ -44,7 +39,7 @@ namespace Unity.Startup.Procedure } } - public static void SetProgressUpdate(object sender, GameEventArgs gameEventArgs) + private static void SetProgressUpdate(object sender, GameEventArgs gameEventArgs) { var message = (AssetDownloadProgressUpdateEventArgs)gameEventArgs; _currentDownloadBytes = message.CurrentDownloadSizeBytes; @@ -74,4 +69,4 @@ namespace Unity.Startup.Procedure return ts.ToString(@"mm\:ss"); } } -} \ No newline at end of file +} diff --git a/Client/Assets/Scripts/Startup/Framework/Procedure/PatchUpdater/ProcedureClearCache.cs b/Client/Assets/Scripts/Startup/Framework/Procedure/PatchUpdater/ProcedureClearCache.cs index b2da182..2c903c4 100644 --- a/Client/Assets/Scripts/Startup/Framework/Procedure/PatchUpdater/ProcedureClearCache.cs +++ b/Client/Assets/Scripts/Startup/Framework/Procedure/PatchUpdater/ProcedureClearCache.cs @@ -22,7 +22,7 @@ namespace Unity.Startup.Procedure private void ClearCacheCompleted(AsyncOperationBase obj) { - Log.Debug($"清理包裹缓存完成"); + Log.Info($"清理包裹缓存完成"); ChangeState(owner); } } diff --git a/Client/Assets/Scripts/Startup/Framework/Procedure/PatchUpdater/ProcedureCreateDownloader.cs b/Client/Assets/Scripts/Startup/Framework/Procedure/PatchUpdater/ProcedureCreateDownloader.cs index 2deef5c..5291c5f 100644 --- a/Client/Assets/Scripts/Startup/Framework/Procedure/PatchUpdater/ProcedureCreateDownloader.cs +++ b/Client/Assets/Scripts/Startup/Framework/Procedure/PatchUpdater/ProcedureCreateDownloader.cs @@ -9,10 +9,12 @@ namespace Unity.Startup.Procedure { internal sealed class ProcedureCreateDownloader : ProcedureBase { + private const int DownloadingMaxNum = 10; + private const int FailedTryAgain = 3; + protected override void OnEnter(IFsm procedureOwner) { base.OnEnter(procedureOwner); - GameApp.Event.Fire(this, AssetPatchStatesChangeEventArgs.Create(EPatchStates.CreateDownloader)); CreateDownloader(procedureOwner); } @@ -20,10 +22,7 @@ namespace Unity.Startup.Procedure void CreateDownloader(IFsm procedureOwner) { - // Debug.Log("创建补丁下载器."); - int downloadingMaxNum = 10; - int failedTryAgain = 3; - ResourceDownloaderOperation downloader = YooAssets.CreateResourceDownloader(downloadingMaxNum, failedTryAgain); + ResourceDownloaderOperation downloader = YooAssets.CreateResourceDownloader(DownloadingMaxNum, FailedTryAgain); var downloaderVarObject = new VarObject(); downloaderVarObject.SetValue(downloader); procedureOwner.SetData("Downloader", downloaderVarObject); @@ -34,8 +33,6 @@ namespace Unity.Startup.Procedure } else { - Debug.Log($"一共发现了{downloader.TotalDownloadCount}个资源需要更新下载。"); - // 发现新更新文件后,挂起流程系统 int totalDownloadCount = downloader.TotalDownloadCount; long totalDownloadBytes = downloader.TotalDownloadBytes; @@ -44,7 +41,7 @@ namespace Unity.Startup.Procedure sizeMb = Mathf.Clamp(sizeMb, 0.1f, float.MaxValue); string totalSizeMb = sizeMb.ToString("f1"); - Debug.Log($"总共需要下载文件大小为:{totalSizeMb}"); + Log.Info($"一共发现了{downloader.TotalDownloadCount}个资源需要更新下载,总共需要下载文件大小为:{totalSizeMb}!"); //这里进行确认 如果要下载在进行跳转到Download diff --git a/Client/Assets/Scripts/Startup/Framework/Procedure/PatchUpdater/ProcedureDownloadWebFiles.cs b/Client/Assets/Scripts/Startup/Framework/Procedure/PatchUpdater/ProcedureDownloadWebFiles.cs index 95b9d2e..04e362f 100644 --- a/Client/Assets/Scripts/Startup/Framework/Procedure/PatchUpdater/ProcedureDownloadWebFiles.cs +++ b/Client/Assets/Scripts/Startup/Framework/Procedure/PatchUpdater/ProcedureDownloadWebFiles.cs @@ -40,7 +40,7 @@ namespace Unity.Startup.Procedure // 检测下载结果 if (downloader.Status != EOperationStatus.Succeed) { - Log.Debug("全部下载完毕!"); + Log.Error("资源更新失败!"); return; } diff --git a/Client/Assets/Scripts/Startup/Framework/Procedure/ProcedureGetAppVersionInfoState.cs b/Client/Assets/Scripts/Startup/Framework/Procedure/ProcedureGetAppVersionInfoState.cs index 7a7fa3b..593d858 100644 --- a/Client/Assets/Scripts/Startup/Framework/Procedure/ProcedureGetAppVersionInfoState.cs +++ b/Client/Assets/Scripts/Startup/Framework/Procedure/ProcedureGetAppVersionInfoState.cs @@ -21,7 +21,6 @@ namespace Unity.Startup.Procedure // 编辑器下的模拟模式 if (GameApp.Resource.GamePlayMode == EPlayMode.EditorSimulateMode) { - Debug.Log("当前为编辑器模式,直接启动 FsmGetAppVersionInfoState"); ChangeState(procedureOwner); return; } @@ -61,4 +60,4 @@ namespace Unity.Startup.Procedure } } } -} \ No newline at end of file +} diff --git a/Client/Assets/Scripts/Startup/Framework/Procedure/ProcedureGetGlobalInfoState.cs b/Client/Assets/Scripts/Startup/Framework/Procedure/ProcedureGetGlobalInfoState.cs index 7677614..521678f 100644 --- a/Client/Assets/Scripts/Startup/Framework/Procedure/ProcedureGetGlobalInfoState.cs +++ b/Client/Assets/Scripts/Startup/Framework/Procedure/ProcedureGetGlobalInfoState.cs @@ -17,17 +17,14 @@ namespace Unity.Startup.Procedure protected override void OnEnter(IFsm procedureOwner) { base.OnEnter(procedureOwner); - // 编辑器下的模拟模式 if (GameApp.Resource.GamePlayMode == EPlayMode.EditorSimulateMode) { - Log.Debug("当前为编辑器模式,直接启动 ProcedureGetAppVersionInfoState"); ChangeState(procedureOwner); return; } if (GameApp.Resource.GamePlayMode == EPlayMode.OfflinePlayMode) { - Log.Debug("当前为离线模式,直接启动 ProcedurePatchInit"); ChangeState(procedureOwner); return; } @@ -73,4 +70,4 @@ namespace Unity.Startup.Procedure } } } -} \ No newline at end of file +} diff --git a/Client/Assets/Scripts/Startup/Framework/Procedure/ProcedureLoadAssembly.cs b/Client/Assets/Scripts/Startup/Framework/Procedure/ProcedureLoadAssembly.cs index 05ad0b8..c005ea8 100644 --- a/Client/Assets/Scripts/Startup/Framework/Procedure/ProcedureLoadAssembly.cs +++ b/Client/Assets/Scripts/Startup/Framework/Procedure/ProcedureLoadAssembly.cs @@ -30,7 +30,7 @@ namespace Unity.Startup.Procedure protected override void OnEnter(IFsm procedureOwner) { base.OnEnter(procedureOwner); - Log.Info("HyBridCLR ProcedureLoadAssembly OnEnter"); + Log.Info(" ProcedureLoadAssembly OnEnter"); m_LoadAssemblyComplete = false; m_HotfixAssemblys = new List(); @@ -284,4 +284,4 @@ namespace Unity.Startup.Procedure GameApp.Resource.UnloadAsset(textAsset); } } -} \ No newline at end of file +} diff --git a/Client/Assets/YooAsset/AssetBundleCollectorSetting.asset b/Client/Assets/YooAsset/AssetBundleCollectorSetting.asset index 22a464c..1809dd9 100644 --- a/Client/Assets/YooAsset/AssetBundleCollectorSetting.asset +++ b/Client/Assets/YooAsset/AssetBundleCollectorSetting.asset @@ -22,7 +22,7 @@ MonoBehaviour: LocationToLower: 0 IncludeAssetGUID: 0 AutoCollectShaders: 1 - IgnoreRuleName: NormalIgnoreRule + IgnoreRuleName: GameIgnoreRule Groups: - GroupName: Entity GroupDesc: "\u89D2\u8272" diff --git a/Client/Packages/com.alicizax.unity.editor.extension/Editor.meta b/Client/Packages/com.alicizax.unity.editor.extension/Editor.meta new file mode 100644 index 0000000..25107ae --- /dev/null +++ b/Client/Packages/com.alicizax.unity.editor.extension/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dcf5732141edc614185c12b4efb68227 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Packages/com.alicizax.unity.editor.extension/Editor/AlicizaX.EditorExtension.Editor.asmdef b/Client/Packages/com.alicizax.unity.editor.extension/Editor/AlicizaX.EditorExtension.Editor.asmdef new file mode 100644 index 0000000..efcb860 --- /dev/null +++ b/Client/Packages/com.alicizax.unity.editor.extension/Editor/AlicizaX.EditorExtension.Editor.asmdef @@ -0,0 +1,16 @@ +{ + "name": "AlicizaX.EditorExtension.Editor", + "rootNamespace": "AlicizaX.EditorExtension.Editor", + "references": [], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": true, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Client/Packages/com.alicizax.unity.editor.extension/Editor/AlicizaX.EditorExtension.Editor.asmdef.meta b/Client/Packages/com.alicizax.unity.editor.extension/Editor/AlicizaX.EditorExtension.Editor.asmdef.meta new file mode 100644 index 0000000..7efa1cd --- /dev/null +++ b/Client/Packages/com.alicizax.unity.editor.extension/Editor/AlicizaX.EditorExtension.Editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 99a2a63c2a1143c4ba448165a98a5108 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table.meta b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table.meta new file mode 100644 index 0000000..433e7b9 --- /dev/null +++ b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5753f0f3f47dd234699b76df886f3f81 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/GenericTableWindow.cs b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/GenericTableWindow.cs new file mode 100644 index 0000000..202f422 --- /dev/null +++ b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/GenericTableWindow.cs @@ -0,0 +1,400 @@ +using System; +using System.Collections.Generic; +using System.Reflection; +using UnityEditor; +using UnityEditor.SceneManagement; +using UnityEngine; +using UObject = UnityEngine.Object; + +namespace AlicizaX.EditorExtension.Editor +{ + /// + /// 通用表格绘制器 + /// + public sealed class GenericTableWindow : EditorWindow + { + /// + /// 打开通用表格绘制器 + /// + /// 表格数据目标实例 + /// 表格数据的字段名称 + public static void OpenWindow(UObject target, string fieldName) + { + GenericTableWindow window = GetWindow(); + window.titleContent.image = EditorGUIUtility.IconContent("ScriptableObject Icon").image; + window.titleContent.text = "Generic Table"; + window.OnInit(target, fieldName); + } + + private const int Border = 10; + private const int TitleHeight = 20; + private Dictionary _fieldInfos = new Dictionary(); + private TableView _tableView; + private UObject _target; + private string _targetName; + + + private void OnInit(UObject target, string fieldName) + { + FieldInfo fieldInfo = target.GetType().GetField(fieldName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + if (fieldInfo == null) + { + Debug.LogWarning($"通用表格绘制器:未从 {target.GetType().FullName} 中找到字段 {fieldName}!"); + Close(); + return; + } + + List datas = GetDatas(fieldInfo.GetValue(target)); + if (datas.Count <= 0) + { + Debug.LogWarning($"通用表格绘制器:{target.GetType().FullName} 的字段 {fieldName} 长度为0,或不是数组、集合类型!"); + Close(); + return; + } + + List> columns = GetColumns(datas[0].GetType()); + if (columns.Count <= 0) + { + Debug.LogWarning($"通用表格绘制器:{target.GetType().FullName} 的字段 {fieldName} 不是复杂类型,或类型中不含有可序列化字段!"); + Close(); + return; + } + + _tableView = new TableView(datas, columns); + _tableView.IsEnableContextClick = false; + _target = target; + _targetName = $"{_target.GetType().FullName}.{fieldName} ({_target.name})"; + } + + private void OnGUI() + { + if (GUILayout.Button(_targetName, EditorStyles.toolbarButton)) + { + Selection.activeObject = _target; + EditorGUIUtility.PingObject(_target); + } + + GUILayout.FlexibleSpace(); + + + Rect rect = new Rect(0, 0, position.width, position.height); + rect.x += Border; + rect.y += Border + TitleHeight; + rect.width -= Border * 2; + rect.height -= Border * 2 + TitleHeight; + _tableView.OnGUI(rect); + } + + private void Update() + { + if (EditorApplication.isCompiling || _tableView == null || _target == null) + { + Close(); + } + } + + private List GetDatas(object field) + { + List datas = new List(); + Array array = field as Array; + IEnumerable list = field as IEnumerable; + if (array != null) + { + foreach (var item in array) + { + datas.Add(item); + } + } + else if (list != null) + { + foreach (var item in list) + { + datas.Add(item); + } + } + + return datas; + } + + private List> GetColumns(Type type) + { + _fieldInfos.Clear(); + FieldInfo[] fieldInfos = type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + for (int i = 0; i < fieldInfos.Length; i++) + { + if (fieldInfos[i].IsPublic || fieldInfos[i].IsDefined(typeof(SerializeField), true)) + { + if (!_fieldInfos.ContainsKey(fieldInfos[i].Name)) + { + _fieldInfos.Add(fieldInfos[i].Name, fieldInfos[i]); + } + } + } + + List> columns = new List>(); + foreach (var item in _fieldInfos) + { + TableColumn column = null; + FieldInfo field = item.Value; + if (field.FieldType.IsEnum) + { + column = GetEnumColumn(field); + } + else if (field.FieldType == typeof(string)) + { + column = GetStringColumn(field); + } + else if (field.FieldType == typeof(int)) + { + column = GetIntColumn(field); + } + else if (field.FieldType == typeof(float)) + { + column = GetFloatColumn(field); + } + else if (field.FieldType == typeof(bool)) + { + column = GetBoolColumn(field); + } + else if (field.FieldType == typeof(Vector2)) + { + column = GetVector2Column(field); + } + else if (field.FieldType == typeof(Vector3)) + { + column = GetVector3Column(field); + } + else if (field.FieldType == typeof(Color)) + { + column = GetColorColumn(field); + } + else if (field.FieldType.IsSubclassOf(typeof(UObject))) + { + column = GetObjectColumn(field); + } + + if (column != null) + { + column.autoResize = false; + column.headerContent = new GUIContent(field.Name); + columns.Add(column); + } + } + + return columns; + } + + private TableColumn GetEnumColumn(FieldInfo field) + { + TableColumn column = new TableColumn(); + column.width = 100; + column.canSort = false; + column.Compare = null; + column.DrawCell = (rect, data, rowIndex, isSelected, isFocused) => + { + EditorGUI.BeginChangeCheck(); + Enum value = EditorGUI.EnumPopup(rect, (Enum)field.GetValue(data)); + if (EditorGUI.EndChangeCheck()) + { + field.SetValue(data, value); + HasChanged(_target); + } + }; + return column; + } + + private TableColumn GetStringColumn(FieldInfo field) + { + TableColumn column = new TableColumn(); + column.width = 100; + column.canSort = true; + column.Compare = (a, b) => + { + string x = (string)field.GetValue(a); + string y = (string)field.GetValue(b); + return x.CompareTo(y); + }; + column.DrawCell = (rect, data, rowIndex, isSelected, isFocused) => + { + EditorGUI.BeginChangeCheck(); + string value = EditorGUI.TextField(rect, (string)field.GetValue(data)); + if (EditorGUI.EndChangeCheck()) + { + field.SetValue(data, value); + HasChanged(_target); + } + }; + return column; + } + + /// + /// 标记目标已改变 + /// + /// 目标 + protected void HasChanged(UnityEngine.Object target) + { + if (target != null) + { + EditorUtility.SetDirty(target); + + if (EditorApplication.isPlaying) + return; + + GameObject gameObject = target as GameObject; + if (gameObject != null && gameObject.scene != null) + { + EditorSceneManager.MarkSceneDirty(gameObject.scene); + } + + Component component = target as Component; + if (component != null && component.gameObject.scene != null) + { + EditorSceneManager.MarkSceneDirty(component.gameObject.scene); + } + } + } + + private TableColumn GetIntColumn(FieldInfo field) + { + TableColumn column = new TableColumn(); + column.width = 100; + column.canSort = true; + column.Compare = (a, b) => + { + int x = (int)field.GetValue(a); + int y = (int)field.GetValue(b); + return x.CompareTo(y); + }; + column.DrawCell = (rect, data, rowIndex, isSelected, isFocused) => + { + EditorGUI.BeginChangeCheck(); + int value = EditorGUI.IntField(rect, (int)field.GetValue(data)); + if (EditorGUI.EndChangeCheck()) + { + field.SetValue(data, value); + HasChanged(_target); + } + }; + return column; + } + + private TableColumn GetFloatColumn(FieldInfo field) + { + TableColumn column = new TableColumn(); + column.width = 100; + column.canSort = true; + column.Compare = (a, b) => + { + float x = (float)field.GetValue(a); + float y = (float)field.GetValue(b); + return x.CompareTo(y); + }; + column.DrawCell = (rect, data, rowIndex, isSelected, isFocused) => + { + EditorGUI.BeginChangeCheck(); + float value = EditorGUI.FloatField(rect, (float)field.GetValue(data)); + if (EditorGUI.EndChangeCheck()) + { + field.SetValue(data, value); + HasChanged(_target); + } + }; + return column; + } + + private TableColumn GetBoolColumn(FieldInfo field) + { + TableColumn column = new TableColumn(); + column.width = 40; + column.canSort = false; + column.Compare = null; + column.DrawCell = (rect, data, rowIndex, isSelected, isFocused) => + { + EditorGUI.BeginChangeCheck(); + bool value = EditorGUI.Toggle(rect, (bool)field.GetValue(data)); + if (EditorGUI.EndChangeCheck()) + { + field.SetValue(data, value); + HasChanged(_target); + } + }; + return column; + } + + private TableColumn GetVector2Column(FieldInfo field) + { + TableColumn column = new TableColumn(); + column.width = 100; + column.canSort = false; + column.Compare = null; + column.DrawCell = (rect, data, rowIndex, isSelected, isFocused) => + { + EditorGUI.BeginChangeCheck(); + Vector2 value = EditorGUI.Vector2Field(rect, "", (Vector2)field.GetValue(data)); + if (EditorGUI.EndChangeCheck()) + { + field.SetValue(data, value); + HasChanged(_target); + } + }; + return column; + } + + private TableColumn GetVector3Column(FieldInfo field) + { + TableColumn column = new TableColumn(); + column.width = 150; + column.canSort = false; + column.Compare = null; + column.DrawCell = (rect, data, rowIndex, isSelected, isFocused) => + { + EditorGUI.BeginChangeCheck(); + Vector3 value = EditorGUI.Vector3Field(rect, "", (Vector3)field.GetValue(data)); + if (EditorGUI.EndChangeCheck()) + { + field.SetValue(data, value); + HasChanged(_target); + } + }; + return column; + } + + private TableColumn GetColorColumn(FieldInfo field) + { + TableColumn column = new TableColumn(); + column.width = 100; + column.canSort = false; + column.Compare = null; + column.DrawCell = (rect, data, rowIndex, isSelected, isFocused) => + { + EditorGUI.BeginChangeCheck(); + Color value = EditorGUI.ColorField(rect, (Color)field.GetValue(data)); + if (EditorGUI.EndChangeCheck()) + { + field.SetValue(data, value); + HasChanged(_target); + } + }; + return column; + } + + private TableColumn GetObjectColumn(FieldInfo field) + { + TableColumn column = new TableColumn(); + column.width = 150; + column.canSort = false; + column.Compare = null; + column.DrawCell = (rect, data, rowIndex, isSelected, isFocused) => + { + EditorGUI.BeginChangeCheck(); + UObject value = EditorGUI.ObjectField(rect, field.GetValue(data) as UObject, field.FieldType, true); + if (EditorGUI.EndChangeCheck()) + { + field.SetValue(data, value); + HasChanged(_target); + } + }; + return column; + } + } +} diff --git a/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/GenericTableWindow.cs.meta b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/GenericTableWindow.cs.meta new file mode 100644 index 0000000..f959857 --- /dev/null +++ b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/GenericTableWindow.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a34a47e0625875a4fbc767a12877f83b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TableColumn.cs b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TableColumn.cs new file mode 100644 index 0000000..97e3f5c --- /dev/null +++ b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TableColumn.cs @@ -0,0 +1,40 @@ +using UnityEditor.IMGUI.Controls; +using UnityEngine; + +namespace AlicizaX.EditorExtension.Editor +{ + /// + /// 表格视图列元素 + /// + /// 数据类型 + public sealed class TableColumn : MultiColumnHeaderState.Column where T : class, new() + { + /// + /// 绘制列元素的方法 + /// + public DrawCellMethod DrawCell; + /// + /// 对比列元素的方法 + /// + public CompareMethod Compare; + } + + /// + /// 绘制列元素的方法 + /// + /// 数据类型 + /// 绘制区域 + /// 绘制数据 + /// 在表格中的行索引 + /// 是否选中 + /// 是否焦点 + public delegate void DrawCellMethod(Rect cellRect, T data, int rowIndex, bool isSelected, bool isFocused); + /// + /// 对比列元素的方法 + /// + /// 数据类型 + /// 数据1 + /// 数据2 + /// 排序号 + public delegate int CompareMethod(T data1, T data2); +} \ No newline at end of file diff --git a/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TableColumn.cs.meta b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TableColumn.cs.meta new file mode 100644 index 0000000..163452f --- /dev/null +++ b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TableColumn.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9b002487fdbda054e992d8fb6be22157 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TableView.cs b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TableView.cs new file mode 100644 index 0000000..34daec2 --- /dev/null +++ b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TableView.cs @@ -0,0 +1,447 @@ +using System; +using System.Collections.Generic; +using UnityEditor; +using UnityEditor.IMGUI.Controls; +using UnityEngine; + +namespace AlicizaX.EditorExtension.Editor +{ + /// + /// 表格视图 + /// + /// 数据类型 + public sealed class TableView : TreeView where T : class, new() + { + /// + /// 表格数据 + /// + private List _datas; + /// + /// 当前选择的表格数据 + /// + private List _selectionDatas; + /// + /// 根元素 + /// + private TableViewItem _rootItem; + /// + /// 所有的元素 + /// + private List> _items; + /// + /// 所有的元素绘制项 + /// + private List _drawItems; + /// + /// 搜索控件 + /// + private SearchField _searchField; + /// + /// 元素ID标记 + /// + private int _idSign = 0; + + /// + /// 当选择项改变 + /// + public event Action> OnSelectionChanged; + /// + /// 搜索数据时的方法 + /// + public Func OnSearch; + + /// + /// 行高度 + /// + public float RowHeight + { + get + { + return rowHeight; + } + set + { + rowHeight = value; + } + } + /// + /// 是否启用上下文右键点击 + /// + public bool IsEnableContextClick { get; set; } = true; + /// + /// 是否允许多选 + /// + public bool IsCanMultiSelect { get; set; } = true; + /// + /// 是否启用搜索框 + /// + public bool IsEnableSearch { get; set; } = false; + + /// + /// 表格视图 + /// + /// 表格视图数据 + /// 表格视图的所有列 + public TableView(List datas, List> columns) : base(new TreeViewState()) + { + showAlternatingRowBackgrounds = true; + showBorder = true; + rowHeight = EditorGUIUtility.singleLineHeight + 4; + columns.Insert(0, GetIndexColumn()); + multiColumnHeader = new MultiColumnHeader(new MultiColumnHeaderState(columns.ToArray())); + multiColumnHeader.sortingChanged += OnSortingChanged; + multiColumnHeader.visibleColumnsChanged += OnVisibleColumnsChanged; + + _datas = datas; + _selectionDatas = new List(); + _rootItem = new TableViewItem(-1, -1, null); + _items = new List>(); + for (var i = 0; i < _datas.Count; i++) + { + _items.Add(new TableViewItem(_idSign, 0, _datas[i])); + _idSign += 1; + } + _drawItems = new List(); + _searchField = new SearchField(); + + Reload(); + } + /// + /// 构造根节点 + /// + protected override TreeViewItem BuildRoot() + { + return _rootItem; + } + /// + /// 构造所有行 + /// + protected override IList BuildRows(TreeViewItem root) + { + _drawItems.Clear(); + if (hasSearch && OnSearch != null) + { + for (int i = 0; i < _items.Count; i++) + { + if (OnSearch(_items[i].Data, searchString)) + { + _drawItems.Add(_items[i]); + } + } + } + else + { + for (int i = 0; i < _items.Count; i++) + { + _drawItems.Add(_items[i]); + } + } + return _drawItems; + } + /// + /// 绘制行 + /// + protected override void RowGUI(RowGUIArgs args) + { + TableViewItem item = args.item as TableViewItem; + int visibleColumns = args.GetNumVisibleColumns(); + for (var i = 0; i < visibleColumns; i++) + { + Rect cellRect = args.GetCellRect(i); + int index = args.GetColumn(i); + CenterRectUsingSingleLineHeight(ref cellRect); + TableColumn column = multiColumnHeader.GetColumn(index) as TableColumn; + column.DrawCell?.Invoke(cellRect, item.Data, args.row, args.selected, args.focused); + } + } + /// + /// 上下文右键点击 + /// + protected override void ContextClicked() + { + if (!IsEnableContextClick) + return; + + List selectedItems = new List(); + foreach (var itemID in GetSelection()) + { + TableViewItem item = _items.Find((it) => { return it.id == itemID; }); + if (item != null) selectedItems.Add(item.Data); + } + + GenericMenu menu = new GenericMenu(); + menu.AddItem(new GUIContent("Add row"), false, () => + { + AddData(new T()); + }); + if (selectedItems.Count > 0) + { + menu.AddItem(new GUIContent("Delete selected rows"), false, () => + { + DeleteDatas(selectedItems); + }); + } + menu.AddSeparator(""); + menu.AddItem(new GUIContent("Clear rows"), false, () => + { + ClearData(); + }); + menu.ShowAsContext(); + } + /// + /// 当选择项改变 + /// + protected override void SelectionChanged(IList selectedIds) + { + base.SelectionChanged(selectedIds); + + _selectionDatas.Clear(); + foreach (var itemID in selectedIds) + { + TableViewItem item = _items.Find((it) => { return it.id == itemID; }); + if (item != null) _selectionDatas.Add(item.Data); + } + + OnSelectionChanged?.Invoke(_selectionDatas); + } + /// + /// 是否允许多选 + /// + protected override bool CanMultiSelect(TreeViewItem item) + { + return IsCanMultiSelect; + } + /// + /// 绘制表格视图 + /// + /// 绘制区域 + public override void OnGUI(Rect rect) + { + if (IsEnableSearch) + { + Rect sub = new Rect(rect.x, rect.y, 60, 16); + EditorGUI.LabelField(sub, "Search: "); + sub.Set(rect.x + 60, rect.y, rect.width - 60, 18); + searchString = _searchField.OnGUI(sub, searchString); + + rect.y += 18; + rect.height -= 18; + base.OnGUI(rect); + } + else + { + base.OnGUI(rect); + } + } + + /// + /// 获取索引列 + /// + private TableColumn GetIndexColumn() + { + TableColumn column = new TableColumn(); + column.autoResize = false; + column.headerContent = new GUIContent("Index"); + column.width = 50; + column.canSort = false; + column.Compare = null; + column.DrawCell = (rect, data, rowIndex, isSelected, isFocused) => + { + EditorGUI.LabelField(rect, rowIndex.ToString()); + }; + return column; + } + /// + /// 当重新排序 + /// + private void OnSortingChanged(MultiColumnHeader columnheader) + { + bool isAscending = multiColumnHeader.IsSortedAscending(multiColumnHeader.sortedColumnIndex); + TableColumn column = multiColumnHeader.GetColumn(multiColumnHeader.sortedColumnIndex) as TableColumn; + if (column.Compare != null) + { + _items.Sort((a, b) => + { + if (isAscending) + { + return -column.Compare(a.Data, b.Data); + } + else + { + return column.Compare(a.Data, b.Data); + } + }); + Reload(); + } + } + /// + /// 当列激活状态改变 + /// + private void OnVisibleColumnsChanged(MultiColumnHeader columnheader) + { + Reload(); + } + + /// + /// 添加数据 + /// + /// 数据 + public void AddData(T data) + { + if (_datas.Contains(data)) + return; + + _datas.Add(data); + _items.Add(new TableViewItem(_idSign, 0, data)); + _idSign += 1; + Reload(); + } + /// + /// 添加数据 + /// + /// 数据 + public void AddDatas(List datas) + { + for (int i = 0; i < datas.Count; i++) + { + T data = datas[i]; + if (_datas.Contains(data)) + continue; + + _datas.Add(data); + _items.Add(new TableViewItem(_idSign, 0, data)); + _idSign += 1; + } + Reload(); + } + /// + /// 删除数据 + /// + /// 数据 + public void DeleteData(T data) + { + if (!_datas.Contains(data)) + return; + + _datas.Remove(data); + TableViewItem item = _items.Find((i) => { return i.Data == data; }); + if (item != null) + { + _items.Remove(item); + } + Reload(); + } + /// + /// 删除数据 + /// + /// 数据 + public void DeleteDatas(List datas) + { + for (int i = 0; i < datas.Count; i++) + { + T data = datas[i]; + if (!_datas.Contains(data)) + continue; + + _datas.Remove(data); + TableViewItem item = _items.Find((t) => { return t.Data == data; }); + if (item != null) + { + _items.Remove(item); + } + } + Reload(); + } + /// + /// 选中数据 + /// + /// 数据 + public void SelectData(T data) + { + if (!_datas.Contains(data)) + return; + + TableViewItem item = _items.Find((i) => { return i.Data == data; }); + if (item != null) + { + SetSelection(new int[] { item.id }); + } + } + /// + /// 选中数据 + /// + /// 数据 + /// 选中的操作 + public void SelectData(T data, TreeViewSelectionOptions options) + { + if (!_datas.Contains(data)) + return; + + TableViewItem item = _items.Find((i) => { return i.Data == data; }); + if (item != null) + { + SetSelection(new int[] { item.id }, options); + } + } + /// + /// 选中数据 + /// + /// 数据 + public void SelectDatas(List datas) + { + List ids = new List(); + for (int i = 0; i < datas.Count; i++) + { + T data = datas[i]; + if (!_datas.Contains(data)) + continue; + + TableViewItem item = _items.Find((t) => { return t.Data == data; }); + if (item != null) + { + ids.Add(item.id); + } + } + + if (ids.Count > 0) + { + SetSelection(ids); + } + } + /// + /// 选中数据 + /// + /// 数据 + /// 选中的操作 + public void SelectDatas(List datas, TreeViewSelectionOptions options) + { + List ids = new List(); + for (int i = 0; i < datas.Count; i++) + { + T data = datas[i]; + if (!_datas.Contains(data)) + continue; + + TableViewItem item = _items.Find((t) => { return t.Data == data; }); + if (item != null) + { + ids.Add(item.id); + } + } + + if (ids.Count > 0) + { + SetSelection(ids, options); + } + } + /// + /// 清空所有数据 + /// + public void ClearData() + { + _datas.Clear(); + _items.Clear(); + Reload(); + } + } +} diff --git a/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TableView.cs.meta b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TableView.cs.meta new file mode 100644 index 0000000..64822d2 --- /dev/null +++ b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TableView.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2dc09f5c4e49ffa4c95e07952c1d3060 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TableViewItem.cs b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TableViewItem.cs new file mode 100644 index 0000000..f3ff2ab --- /dev/null +++ b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TableViewItem.cs @@ -0,0 +1,21 @@ +using UnityEditor.IMGUI.Controls; + +namespace AlicizaX.EditorExtension.Editor +{ + /// + /// 表格视图元素 + /// + /// 数据类型 + public sealed class TableViewItem : TreeViewItem where T : class, new() + { + /// + /// 元素的数据 + /// + public T Data { get; private set; } + + public TableViewItem(int id, int depth, T data) : base(id, depth, data == null ? "Root" : data.ToString()) + { + Data = data; + } + } +} \ No newline at end of file diff --git a/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TableViewItem.cs.meta b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TableViewItem.cs.meta new file mode 100644 index 0000000..8e6ad7a --- /dev/null +++ b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TableViewItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: eb77ca1d28395ff4f9a06dd3bfb23351 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TestWindow.cs b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TestWindow.cs new file mode 100644 index 0000000..6c1bd04 --- /dev/null +++ b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TestWindow.cs @@ -0,0 +1,123 @@ +// using System; +// using System.Collections.Generic; +// using AlicizaX.EditorExtension.Editor; +// using UnityEditor; +// using UnityEngine; +// +// public class TestWindow : EditorWindow +// { +// [MenuItem("Test/Table Window")] +// private static void OpenWindow() +// { +// GetWindow(); +// } +// +// private List _students; +// private List> _tableColumns; +// private TableView _tableView; +// +// +// private void OnEnable() +// { +// _students = new List(); +// +// _tableColumns = new List>(); +// _tableColumns.Add(new TableColumn() +// { +// headerContent = new GUIContent("姓名"), +// width = 100, +// canSort = true, +// autoResize = false, +// Compare = (a, b) => { return a.name.CompareTo(b.name); }, +// DrawCell = (cellRect, data, rowIndex, isSelected, isFocused) => { data.name = EditorGUI.TextField(cellRect, data.name); }, +// }); +// _tableColumns.Add(new TableColumn() +// { +// headerContent = new GUIContent("性别"), +// width = 100, +// canSort = true, +// autoResize = false, +// Compare = (a, b) => { return a.sex.CompareTo(b.sex); }, +// DrawCell = (cellRect, data, rowIndex, isSelected, isFocused) => { data.sex = (Sex)EditorGUI.EnumPopup(cellRect, data.sex); }, +// }); +// _tableColumns.Add(new TableColumn() +// { +// headerContent = new GUIContent("年龄"), +// width = 100, +// canSort = true, +// autoResize = false, +// Compare = (a, b) => { return a.age.CompareTo(b.age); }, +// DrawCell = (cellRect, data, rowIndex, isSelected, isFocused) => { data.age = EditorGUI.IntField(cellRect, data.age); }, +// }); +// _tableColumns.Add(new TableColumn() +// { +// headerContent = new GUIContent("班级"), +// width = 100, +// canSort = true, +// autoResize = false, +// Compare = (a, b) => { return a.grade.CompareTo(b.grade); }, +// DrawCell = (cellRect, data, rowIndex, isSelected, isFocused) => { data.grade = EditorGUI.TextField(cellRect, data.grade); }, +// }); +// _tableColumns.Add(new TableColumn() +// { +// headerContent = new GUIContent("家庭住址"), +// width = 100, +// canSort = true, +// autoResize = false, +// Compare = (a, b) => { return a.address.CompareTo(b.address); }, +// DrawCell = (cellRect, data, rowIndex, isSelected, isFocused) => { data.address = EditorGUI.TextField(cellRect, data.address); }, +// }); +// _tableColumns.Add(new TableColumn() +// { +// headerContent = new GUIContent("实体"), +// width = 100, +// canSort = false, +// autoResize = false, +// Compare = null, +// DrawCell = (cellRect, data, rowIndex, isSelected, isFocused) => { data.entity = (GameObject)EditorGUI.ObjectField(cellRect, data.entity, typeof(GameObject), true); }, +// }); +// _tableColumns.Add(new TableColumn() +// { +// headerContent = new GUIContent("颜色"), +// width = 100, +// canSort = false, +// autoResize = false, +// Compare = null, +// DrawCell = (cellRect, data, rowIndex, isSelected, isFocused) => { data.col = EditorGUI.ColorField(cellRect, data.col); }, +// }); +// _tableColumns.Add(new TableColumn() +// { +// headerContent = new GUIContent("头像"), +// width = 100, +// canSort = false, +// autoResize = false, +// Compare = null, +// DrawCell = (cellRect, data, rowIndex, isSelected, isFocused) => { data.headImage = (Texture)EditorGUI.ObjectField(cellRect, data.headImage, typeof(Texture), true); }, +// }); +// +// _tableView = new TableView(_students, _tableColumns); +// } +// +// private void OnGUI() +// { +// _tableView.OnGUI(new Rect(0, 0, position.width, position.height)); +// } +// +// public class Student +// { +// public string name; +// public Sex sex; +// public int age; +// public string grade; +// public string address; +// public GameObject entity; +// public Color col; +// public Texture headImage; +// } +// +// public enum Sex +// { +// Man, +// Woman +// } +// } diff --git a/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TestWindow.cs.meta b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TestWindow.cs.meta new file mode 100644 index 0000000..f1bdb44 --- /dev/null +++ b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Table/TestWindow.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: b4499d5ef3354ae2aeeefaf2b84ce7fe +timeCreated: 1737877281 \ No newline at end of file diff --git a/Client/Packages/com.alicizax.unity.editor.extension/Editor/Utility.meta b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Utility.meta new file mode 100644 index 0000000..9eba5a5 --- /dev/null +++ b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Utility.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: d0db87a441d3456ba21f8d2e561bb3ce +timeCreated: 1737880132 \ No newline at end of file diff --git a/Client/Packages/com.alicizax.unity.editor.extension/Editor/Utility/EditorGUIStyleTools.cs b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Utility/EditorGUIStyleTools.cs new file mode 100644 index 0000000..fe04588 --- /dev/null +++ b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Utility/EditorGUIStyleTools.cs @@ -0,0 +1,34 @@ +namespace AlicizaX.EditorExtension.Editor +{ + public static class EditorGUIStyleTools + { + #region Styles + + public static class Styles + { + public static readonly string Box = "Box"; + public static readonly string IconButton = "IconButton"; + public static readonly string InvisibleButton = "InvisibleButton"; + public static readonly string LargeButton = "LargeButton"; + public static readonly string LargeButtonLeft = "LargeButtonLeft"; + public static readonly string LargeButtonMid = "LargeButtonMid"; + public static readonly string LargeButtonRight = "LargeButtonRight"; + public static readonly string ButtonLeft = "ButtonLeft"; + public static readonly string ButtonMid = "ButtonMid"; + public static readonly string ButtonRight = "ButtonRight"; + public static readonly string MiniPopup = "MiniPopup"; + public static readonly string Wordwrapminibutton = "Wordwrapminibutton"; + public static readonly string OLPlus = "OL Plus"; + public static readonly string OLMinus = "OL Minus"; + public static readonly string Label = "Label"; + public static readonly string SearchTextField = "SearchTextField"; + public static readonly string SearchCancelButton = "SearchCancelButton"; + public static readonly string SearchCancelButtonEmpty = "SearchCancelButtonEmpty"; + public static readonly string ToolbarSearchTextField = "ToolbarSearchTextField"; + public static readonly string ToolbarSearchCancelButton = "ToolbarSearchCancelButton"; + public static readonly string ToolbarSearchCancelButtonEmpty = "ToolbarSearchCancelButtonEmpty"; + } + + #endregion + } +} diff --git a/Client/Packages/com.alicizax.unity.editor.extension/Editor/Utility/EditorGUIStyleTools.cs.meta b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Utility/EditorGUIStyleTools.cs.meta new file mode 100644 index 0000000..022d9e3 --- /dev/null +++ b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Utility/EditorGUIStyleTools.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 92da4b7892cf43449486990821d1410d +timeCreated: 1737880134 \ No newline at end of file diff --git a/Client/Assets/Editor/Tools/GameEditorPrefs.cs b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Utility/GameEditorPrefs.cs similarity index 97% rename from Client/Assets/Editor/Tools/GameEditorPrefs.cs rename to Client/Packages/com.alicizax.unity.editor.extension/Editor/Utility/GameEditorPrefs.cs index a33b2ac..462b6fd 100644 --- a/Client/Assets/Editor/Tools/GameEditorPrefs.cs +++ b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Utility/GameEditorPrefs.cs @@ -1,7 +1,7 @@ using UnityEditor; using UnityEngine; -namespace BuildCli +namespace AlicizaX.EditorExtension.Editor { public class GameEditorPrefs { diff --git a/Client/Assets/Editor/Tools/GameEditorPrefs.cs.meta b/Client/Packages/com.alicizax.unity.editor.extension/Editor/Utility/GameEditorPrefs.cs.meta similarity index 100% rename from Client/Assets/Editor/Tools/GameEditorPrefs.cs.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Editor/Utility/GameEditorPrefs.cs.meta diff --git a/Client/Packages/com.alicizax.unity.editor.extension/LICENSE.md b/Client/Packages/com.alicizax.unity.editor.extension/LICENSE.md new file mode 100644 index 0000000..4e6513a --- /dev/null +++ b/Client/Packages/com.alicizax.unity.editor.extension/LICENSE.md @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [2023] [ALianBlank of copyright owner][alianblank@outlook.com][https://alianblank.com/] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/Client/Packages/com.alicizax.unity.editor.extension/LICENSE.md.meta b/Client/Packages/com.alicizax.unity.editor.extension/LICENSE.md.meta new file mode 100644 index 0000000..d81dd4a --- /dev/null +++ b/Client/Packages/com.alicizax.unity.editor.extension/LICENSE.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0c520ab496dfeb045b9ad728585fd3ff +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Plugins.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins.meta similarity index 77% rename from Client/Assets/Plugins.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins.meta index 50f2f3d..c57f540 100644 --- a/Client/Assets/Plugins.meta +++ b/Client/Packages/com.alicizax.unity.editor.extension/Plugins.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: e41f42c82ca94ef4ca278c3ef73000ad +guid: 68154f52a1971584ead0467fcd6bd806 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Client/Assets/Plugins/Sirenix.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix.meta diff --git a/Client/Assets/Plugins/Sirenix/Assemblies.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies.meta diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/NoEditor.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/NoEditor.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/NoEditor.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/NoEditor.meta diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/NoEditor/Sirenix.Serialization.dll b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/NoEditor/Sirenix.Serialization.dll similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/NoEditor/Sirenix.Serialization.dll rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/NoEditor/Sirenix.Serialization.dll diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/NoEditor/Sirenix.Serialization.dll.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/NoEditor/Sirenix.Serialization.dll.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/NoEditor/Sirenix.Serialization.dll.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/NoEditor/Sirenix.Serialization.dll.meta diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/NoEditor/Sirenix.Utilities.dll b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/NoEditor/Sirenix.Utilities.dll similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/NoEditor/Sirenix.Utilities.dll rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/NoEditor/Sirenix.Utilities.dll diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/NoEditor/Sirenix.Utilities.dll.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/NoEditor/Sirenix.Utilities.dll.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/NoEditor/Sirenix.Utilities.dll.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/NoEditor/Sirenix.Utilities.dll.meta diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor.meta diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor/Sirenix.Serialization.dll b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor/Sirenix.Serialization.dll similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor/Sirenix.Serialization.dll rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor/Sirenix.Serialization.dll diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor/Sirenix.Serialization.dll.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor/Sirenix.Serialization.dll.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor/Sirenix.Serialization.dll.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor/Sirenix.Serialization.dll.meta diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor/Sirenix.Utilities.dll b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor/Sirenix.Utilities.dll similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor/Sirenix.Utilities.dll rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor/Sirenix.Utilities.dll diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor/Sirenix.Utilities.dll.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor/Sirenix.Utilities.dll.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor/Sirenix.Utilities.dll.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor/Sirenix.Utilities.dll.meta diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Attributes.dll b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Attributes.dll similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Attributes.dll rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Attributes.dll diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Attributes.dll.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Attributes.dll.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Attributes.dll.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Attributes.dll.meta diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Attributes.xml b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Attributes.xml similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Attributes.xml rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Attributes.xml diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Attributes.xml.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Attributes.xml.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Attributes.xml.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Attributes.xml.meta diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Editor.dll b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Editor.dll similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Editor.dll rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Editor.dll diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Editor.dll.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Editor.dll.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Editor.dll.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Editor.dll.meta diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Editor.xml b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Editor.xml similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Editor.xml rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Editor.xml diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Editor.xml.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Editor.xml.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Editor.xml.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Editor.xml.meta diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.OdinValidator.Editor.dll b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.OdinValidator.Editor.dll similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.OdinValidator.Editor.dll rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.OdinValidator.Editor.dll diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.OdinValidator.Editor.dll.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.OdinValidator.Editor.dll.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.OdinValidator.Editor.dll.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.OdinValidator.Editor.dll.meta diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.OdinValidator.Editor.xml b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.OdinValidator.Editor.xml similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.OdinValidator.Editor.xml rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.OdinValidator.Editor.xml diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.OdinValidator.Editor.xml.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.OdinValidator.Editor.xml.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.OdinValidator.Editor.xml.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.OdinValidator.Editor.xml.meta diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Serialization.Config.dll b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Serialization.Config.dll similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Serialization.Config.dll rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Serialization.Config.dll diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Serialization.Config.dll.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Serialization.Config.dll.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Serialization.Config.dll.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Serialization.Config.dll.meta diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Serialization.Config.xml b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Serialization.Config.xml similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Serialization.Config.xml rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Serialization.Config.xml diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Serialization.Config.xml.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Serialization.Config.xml.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Serialization.Config.xml.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Serialization.Config.xml.meta diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Serialization.dll b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Serialization.dll similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Serialization.dll rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Serialization.dll diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Serialization.dll.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Serialization.dll.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Serialization.dll.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Serialization.dll.meta diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Serialization.xml b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Serialization.xml similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Serialization.xml rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Serialization.xml diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Serialization.xml.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Serialization.xml.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Serialization.xml.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Serialization.xml.meta diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Utilities.Editor.dll b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Utilities.Editor.dll similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Utilities.Editor.dll rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Utilities.Editor.dll diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Utilities.Editor.dll.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Utilities.Editor.dll.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Utilities.Editor.dll.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Utilities.Editor.dll.meta diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Utilities.Editor.xml b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Utilities.Editor.xml similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Utilities.Editor.xml rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Utilities.Editor.xml diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Utilities.Editor.xml.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Utilities.Editor.xml.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Utilities.Editor.xml.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Utilities.Editor.xml.meta diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Utilities.dll b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Utilities.dll similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Utilities.dll rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Utilities.dll diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Utilities.dll.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Utilities.dll.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Utilities.dll.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Utilities.dll.meta diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Utilities.xml b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Utilities.xml similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Utilities.xml rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Utilities.xml diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Utilities.xml.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Utilities.xml.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/Sirenix.Utilities.xml.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/Sirenix.Utilities.xml.meta diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/link.xml b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/link.xml similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/link.xml rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/link.xml diff --git a/Client/Assets/Plugins/Sirenix/Assemblies/link.xml.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/link.xml.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Assemblies/link.xml.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Assemblies/link.xml.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Assets.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Assets.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Assets.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Assets.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Assets/Editor.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Assets/Editor.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Assets/Editor.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Assets/Editor.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Assets/Editor/Bootstrap License.txt b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Assets/Editor/Bootstrap License.txt similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Assets/Editor/Bootstrap License.txt rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Assets/Editor/Bootstrap License.txt diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Assets/Editor/Bootstrap License.txt.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Assets/Editor/Bootstrap License.txt.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Assets/Editor/Bootstrap License.txt.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Assets/Editor/Bootstrap License.txt.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Assets/Editor/ConfigData.bytes b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Assets/Editor/ConfigData.bytes similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Assets/Editor/ConfigData.bytes rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Assets/Editor/ConfigData.bytes diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Assets/Editor/ConfigData.bytes.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Assets/Editor/ConfigData.bytes.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Assets/Editor/ConfigData.bytes.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Assets/Editor/ConfigData.bytes.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Assets/Editor/OdinPathLookup.asset b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Assets/Editor/OdinPathLookup.asset similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Assets/Editor/OdinPathLookup.asset rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Assets/Editor/OdinPathLookup.asset diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Assets/Editor/OdinPathLookup.asset.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Assets/Editor/OdinPathLookup.asset.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Assets/Editor/OdinPathLookup.asset.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Assets/Editor/OdinPathLookup.asset.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Assets/Editor/SdfIconAtlas.png b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Assets/Editor/SdfIconAtlas.png similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Assets/Editor/SdfIconAtlas.png rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Assets/Editor/SdfIconAtlas.png diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Assets/Editor/SdfIconAtlas.png.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Assets/Editor/SdfIconAtlas.png.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Assets/Editor/SdfIconAtlas.png.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Assets/Editor/SdfIconAtlas.png.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Config.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Config.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Editor.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Editor.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Editor.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Editor.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Editor/AOTGenerationConfig.asset b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Editor/AOTGenerationConfig.asset similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Editor/AOTGenerationConfig.asset rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Editor/AOTGenerationConfig.asset diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Editor/AOTGenerationConfig.asset.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Editor/AOTGenerationConfig.asset.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Editor/AOTGenerationConfig.asset.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Editor/AOTGenerationConfig.asset.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Editor/ColorPaletteManager.asset b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Editor/ColorPaletteManager.asset similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Editor/ColorPaletteManager.asset rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Editor/ColorPaletteManager.asset diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Editor/ColorPaletteManager.asset.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Editor/ColorPaletteManager.asset.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Editor/ColorPaletteManager.asset.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Editor/ColorPaletteManager.asset.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Editor/GeneralDrawerConfig.asset b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Editor/GeneralDrawerConfig.asset similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Editor/GeneralDrawerConfig.asset rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Editor/GeneralDrawerConfig.asset diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Editor/GeneralDrawerConfig.asset.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Editor/GeneralDrawerConfig.asset.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Editor/GeneralDrawerConfig.asset.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Editor/GeneralDrawerConfig.asset.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Editor/ImportSettingsConfig.asset b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Editor/ImportSettingsConfig.asset similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Editor/ImportSettingsConfig.asset rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Editor/ImportSettingsConfig.asset diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Editor/ImportSettingsConfig.asset.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Editor/ImportSettingsConfig.asset.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Editor/ImportSettingsConfig.asset.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Editor/ImportSettingsConfig.asset.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Editor/InspectorConfig.asset b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Editor/InspectorConfig.asset similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Editor/InspectorConfig.asset rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Editor/InspectorConfig.asset diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Editor/InspectorConfig.asset.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Editor/InspectorConfig.asset.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Editor/InspectorConfig.asset.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Editor/InspectorConfig.asset.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Editor/OdinModuleConfig.asset b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Editor/OdinModuleConfig.asset similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Editor/OdinModuleConfig.asset rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Editor/OdinModuleConfig.asset diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Editor/OdinModuleConfig.asset.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Editor/OdinModuleConfig.asset.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Editor/OdinModuleConfig.asset.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Editor/OdinModuleConfig.asset.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Resources.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Resources.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Resources.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Resources.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Resources/Sirenix.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Resources/Sirenix.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Resources/Sirenix.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Resources/Sirenix.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Resources/Sirenix/GlobalSerializationConfig.asset b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Resources/Sirenix/GlobalSerializationConfig.asset similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Resources/Sirenix/GlobalSerializationConfig.asset rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Resources/Sirenix/GlobalSerializationConfig.asset diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Resources/Sirenix/GlobalSerializationConfig.asset.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Resources/Sirenix/GlobalSerializationConfig.asset.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Config/Resources/Sirenix/GlobalSerializationConfig.asset.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Config/Resources/Sirenix/GlobalSerializationConfig.asset.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Modules.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Modules.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Modules.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Modules.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Modules/Unity.Entities.data b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Modules/Unity.Entities.data similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Modules/Unity.Entities.data rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Modules/Unity.Entities.data diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Modules/Unity.Entities.data.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Modules/Unity.Entities.data.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Modules/Unity.Entities.data.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Modules/Unity.Entities.data.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Modules/Unity.Localization.data b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Modules/Unity.Localization.data similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Modules/Unity.Localization.data rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Modules/Unity.Localization.data diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Modules/Unity.Localization.data.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Modules/Unity.Localization.data.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Modules/Unity.Localization.data.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Modules/Unity.Localization.data.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics.data b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics.data similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics.data rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics.data diff --git a/Client/Assets/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics.data.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics.data.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics.data.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics.data.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Validator.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Validator.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Validator/Editor.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/Editor.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Validator/Editor.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/Editor.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Validator/Editor/Config.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/Editor/Config.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Validator/Editor/Config.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/Editor/Config.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Validator/Editor/Config/AutomationConfig.asset b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/Editor/Config/AutomationConfig.asset similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Validator/Editor/Config/AutomationConfig.asset rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/Editor/Config/AutomationConfig.asset diff --git a/Client/Assets/Plugins/Sirenix/Odin Validator/Editor/Config/AutomationConfig.asset.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/Editor/Config/AutomationConfig.asset.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Validator/Editor/Config/AutomationConfig.asset.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/Editor/Config/AutomationConfig.asset.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Validator/Editor/Config/GlobalValidationConfig.asset b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/Editor/Config/GlobalValidationConfig.asset similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Validator/Editor/Config/GlobalValidationConfig.asset rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/Editor/Config/GlobalValidationConfig.asset diff --git a/Client/Assets/Plugins/Sirenix/Odin Validator/Editor/Config/GlobalValidationConfig.asset.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/Editor/Config/GlobalValidationConfig.asset.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Validator/Editor/Config/GlobalValidationConfig.asset.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/Editor/Config/GlobalValidationConfig.asset.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Validator/Editor/Config/RuleConfig.asset b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/Editor/Config/RuleConfig.asset similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Validator/Editor/Config/RuleConfig.asset rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/Editor/Config/RuleConfig.asset diff --git a/Client/Assets/Plugins/Sirenix/Odin Validator/Editor/Config/RuleConfig.asset.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/Editor/Config/RuleConfig.asset.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Validator/Editor/Config/RuleConfig.asset.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/Editor/Config/RuleConfig.asset.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Validator/Editor/Profiles.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/Editor/Profiles.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Validator/Editor/Profiles.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/Editor/Profiles.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Validator/Editor/Profiles/Main Profile.asset b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/Editor/Profiles/Main Profile.asset similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Validator/Editor/Profiles/Main Profile.asset rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/Editor/Profiles/Main Profile.asset diff --git a/Client/Assets/Plugins/Sirenix/Odin Validator/Editor/Profiles/Main Profile.asset.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/Editor/Profiles/Main Profile.asset.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Validator/Editor/Profiles/Main Profile.asset.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/Editor/Profiles/Main Profile.asset.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Validator/EnsureCorrectOdinVersion.cs b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/EnsureCorrectOdinVersion.cs similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Validator/EnsureCorrectOdinVersion.cs rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/EnsureCorrectOdinVersion.cs diff --git a/Client/Assets/Plugins/Sirenix/Odin Validator/EnsureCorrectOdinVersion.cs.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/EnsureCorrectOdinVersion.cs.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Validator/EnsureCorrectOdinVersion.cs.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/EnsureCorrectOdinVersion.cs.meta diff --git a/Client/Assets/Plugins/Sirenix/Odin Validator/Readme.txt b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/Readme.txt similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Validator/Readme.txt rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/Readme.txt diff --git a/Client/Assets/Plugins/Sirenix/Odin Validator/Readme.txt.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/Readme.txt.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Odin Validator/Readme.txt.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Odin Validator/Readme.txt.meta diff --git a/Client/Assets/Plugins/Sirenix/Readme.txt b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Readme.txt similarity index 100% rename from Client/Assets/Plugins/Sirenix/Readme.txt rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Readme.txt diff --git a/Client/Assets/Plugins/Sirenix/Readme.txt.meta b/Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Readme.txt.meta similarity index 100% rename from Client/Assets/Plugins/Sirenix/Readme.txt.meta rename to Client/Packages/com.alicizax.unity.editor.extension/Plugins/Sirenix/Readme.txt.meta diff --git a/Client/Packages/com.alicizax.unity.editor.extension/README.md b/Client/Packages/com.alicizax.unity.editor.extension/README.md new file mode 100644 index 0000000..ac0c4db --- /dev/null +++ b/Client/Packages/com.alicizax.unity.editor.extension/README.md @@ -0,0 +1,19 @@ +## HOMEPAGE + +GameFrameX 的 Asset 资源组件 + +**Asset 资源组件 (Asset Component)** - 提供资源相关的接口。 + +# 使用文档(文档编写于GPT4) + +## 注意事项 + +# 使用方式(任选其一) + +1. 直接在 `manifest.json` 的文件中的 `dependencies` 节点下添加以下内容 + ```json + {"com.gameframex.unity.asset": "https://github.com/AlianBlank/com.gameframex.unity.asset.git"} + ``` +2. 在Unity 的`Packages Manager` 中使用`Git URL` 的方式添加库,地址为:https://github.com/AlianBlank/com.gameframex.unity.asset.git + +3. 直接下载仓库放置到Unity 项目的`Packages` 目录下。会自动加载识别 \ No newline at end of file diff --git a/Client/Packages/com.alicizax.unity.editor.extension/README.md.meta b/Client/Packages/com.alicizax.unity.editor.extension/README.md.meta new file mode 100644 index 0000000..c52e90b --- /dev/null +++ b/Client/Packages/com.alicizax.unity.editor.extension/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c2498bda4674faa4b831b2af7850c745 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Packages/com.alicizax.unity.editor.extension/package.json b/Client/Packages/com.alicizax.unity.editor.extension/package.json new file mode 100644 index 0000000..f1aef10 --- /dev/null +++ b/Client/Packages/com.alicizax.unity.editor.extension/package.json @@ -0,0 +1,20 @@ +{ + "name": "com.alicizax.unity.editor.extension", + "displayName": "Aliciza X Editor Extension", + "category": "Aliciza X", + "description": "Aliciza X Editor Extension", + "version": "1.0.1", + "unity": "2025.1", + "keywords": [ + "Game Framework X" + ], + "repository": { + "name": "com.gameframex.unity.asset", + "url": "http://101.34.252.46:3000/AlicizaX/com.alicizax.unity.resource.git", + "type": "git" + }, + "author": { + "name": "Yuliuren", + "email": "yuliuren00@gmail.com" + } +} \ No newline at end of file diff --git a/Client/Packages/com.alicizax.unity.editor.extension/package.json.meta b/Client/Packages/com.alicizax.unity.editor.extension/package.json.meta new file mode 100644 index 0000000..e242f27 --- /dev/null +++ b/Client/Packages/com.alicizax.unity.editor.extension/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4b0b283ba9f4f4e4baf8f8c639fed441 +PackageManifestImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Packages/com.alicizax.unity.entry/Resources.meta b/Client/Packages/com.alicizax.unity.entry/Resources.meta new file mode 100644 index 0000000..c720dda --- /dev/null +++ b/Client/Packages/com.alicizax.unity.entry/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4a09b03684c2e4748835d30e91002b74 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Packages/com.alicizax.unity.entry/Resources/Entry.prefab b/Client/Packages/com.alicizax.unity.entry/Resources/Entry.prefab new file mode 100644 index 0000000..7499fc0 --- /dev/null +++ b/Client/Packages/com.alicizax.unity.entry/Resources/Entry.prefab @@ -0,0 +1,827 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1029461519516559577 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1230651960664234646} + - component: {fileID: 6342721852032357650} + m_Layer: 0 + m_Name: UI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1230651960664234646 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1029461519516559577} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 872693327694151783} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &6342721852032357650 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1029461519516559577} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 028204b1d2277bd4782816ee91aeed81, type: 3} + m_Name: + m_EditorClassIdentifier: + componentType: AlicizaX.UI.Runtime.UIManager + uiRoot: {fileID: 4612363183729467837, guid: 9368ff38b2090b2468f8358242026e4b, type: 3} +--- !u!1 &2159861855500127327 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 705212810629798912} + - component: {fileID: 5475760805328191716} + m_Layer: 0 + m_Name: Fsm + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &705212810629798912 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2159861855500127327} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 872693327694151783} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5475760805328191716 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2159861855500127327} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a69e41ab65d84e83a0468f1a2cc3926f, type: 3} + m_Name: + m_EditorClassIdentifier: + componentType: AlicizaX.Fsm.Runtime.FsmManager +--- !u!1 &2410279006178986530 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7851428660121841770} + - component: {fileID: 3501419302350321191} + m_Layer: 0 + m_Name: Config + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7851428660121841770 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2410279006178986530} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 872693327694151783} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3501419302350321191 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2410279006178986530} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: be92abf1b6aa472c9ff7ebd49bbab9bf, type: 3} + m_Name: + m_EditorClassIdentifier: + componentType: AlicizaX.Config.Runtime.ConfigManager +--- !u!1 &4521665525621588778 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4133490023722193167} + - component: {fileID: 9015116929140832975} + m_Layer: 0 + m_Name: Debugger + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4133490023722193167 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4521665525621588778} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 872693327694151783} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &9015116929140832975 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4521665525621588778} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f05eaceeebe870a4595e51f998ed518b, type: 3} + m_Name: + m_EditorClassIdentifier: + componentType: AlicizaX.Debugger.Runtime.DebuggerManager + m_Skin: {fileID: 11400000, guid: dce698819fdb70b42b393d9b0b6d420e, type: 2} + m_ActiveWindow: 0 + m_ShowFullWindow: 0 + m_ConsoleWindow: + m_LockScroll: 1 + m_MaxLine: 100 + m_InfoFilter: 1 + m_WarningFilter: 1 + m_ErrorFilter: 1 + m_FatalFilter: 1 + m_InfoColor: + serializedVersion: 2 + rgba: 4294967295 + m_WarningColor: + serializedVersion: 2 + rgba: 4278512639 + m_ErrorColor: + serializedVersion: 2 + rgba: 4278190335 + m_FatalColor: + serializedVersion: 2 + rgba: 4281545650 +--- !u!1 &5353401510309640064 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7517449009630221084} + - component: {fileID: 2203660663293536855} + m_Layer: 0 + m_Name: Timer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7517449009630221084 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5353401510309640064} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 872693327694151783} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2203660663293536855 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5353401510309640064} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6bbfa5f028024a70812e412b33c0a86a, type: 3} + m_Name: + m_EditorClassIdentifier: + componentType: AlicizaX.Timer.Runtime.TimerManager +--- !u!1 &6052113869286802415 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2192733867988101149} + - component: {fileID: 6973877878501820022} + m_Layer: 0 + m_Name: EventKit + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2192733867988101149 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6052113869286802415} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 872693327694151783} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &6973877878501820022 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6052113869286802415} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7eec9f691e06464cbfc45f619c7fee9d, type: 3} + m_Name: + m_EditorClassIdentifier: + componentType: +--- !u!1 &6178945319114926925 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6649144490139638750} + - component: {fileID: 3936455619947539997} + m_Layer: 0 + m_Name: Resources + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6649144490139638750 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6178945319114926925} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 872693327694151783} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3936455619947539997 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6178945319114926925} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 91e581bb79676824f8c04687f21ed727, type: 3} + m_Name: + m_EditorClassIdentifier: + componentType: AlicizaX.Resource.Runtime.ResourceManager + m_GamePlayMode: 2 + m_Milliseconds: 30 + m_defaultPackageName: DefaultPackage + m_AssetAutoReleaseInterval: 60 + m_AssetCapacity: 64 + m_AssetExpireTime: 60 + m_AssetPriority: 0 +--- !u!1 &6391065049862922758 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1193668558717459112} + - component: {fileID: 140658526511928389} + m_Layer: 0 + m_Name: Event + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1193668558717459112 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6391065049862922758} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 872693327694151783} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &140658526511928389 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6391065049862922758} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 48602115335c4223a70dc35cd6b29bbd, type: 3} + m_Name: + m_EditorClassIdentifier: + componentType: AlicizaX.Event.Runtime.EventManager +--- !u!1 &6751893000096084138 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2774005203675618589} + - component: {fileID: 5984924861227346584} + m_Layer: 0 + m_Name: ResourcesExt + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2774005203675618589 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6751893000096084138} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 872693327694151783} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5984924861227346584 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6751893000096084138} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e3adf1e69b12944448c9fe6ae10983cb, type: 3} + m_Name: + m_EditorClassIdentifier: + componentType: + m_CheckCanReleaseInterval: 30 + m_AutoReleaseInterval: 60 +--- !u!1 &6802170524113624248 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5386509871369360704} + - component: {fileID: 703245217724295504} + m_Layer: 0 + m_Name: Procedure + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5386509871369360704 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6802170524113624248} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 872693327694151783} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &703245217724295504 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6802170524113624248} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4d13b628448e4c71a78c4e51756cf98c, type: 3} + m_Name: + m_EditorClassIdentifier: + componentType: AlicizaX.Procedure.Runtime.ProcedureManager + m_AvailableProcedureTypeNames: + - Unity.Startup.Procedure.ProcedureClearCache + - Unity.Startup.Procedure.ProcedureCreateDownloader + - Unity.Startup.Procedure.ProcedureDownloadWebFiles + - Unity.Startup.Procedure.ProcedureGameLauncherState + - Unity.Startup.Procedure.ProcedureGetAppVersionInfoState + - Unity.Startup.Procedure.ProcedureGetGlobalInfoState + - Unity.Startup.Procedure.ProcedureLauncherState + - Unity.Startup.Procedure.ProcedureLoadAssembly + - Unity.Startup.Procedure.ProcedurePatchDone + - Unity.Startup.Procedure.ProcedurePatchInit + - Unity.Startup.Procedure.ProcedureUpdateManifest + - Unity.Startup.Procedure.ProcedureUpdateStaticVersion + m_EntranceProcedureTypeName: Unity.Startup.Procedure.ProcedureLauncherState +--- !u!1 &6822805280285071754 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8709577274779249990} + - component: {fileID: 8234879878215679252} + m_Layer: 0 + m_Name: Reference Pool + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8709577274779249990 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6822805280285071754} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 872693327694151783} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8234879878215679252 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6822805280285071754} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8ae4d40d7e878bc498492dc9c410d071, type: 3} + m_Name: + m_EditorClassIdentifier: + componentType: + m_EnableStrictCheck: 0 +--- !u!1 &7543149531317296434 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 872693327694151783} + - component: {fileID: 3321187484417907030} + m_Layer: 0 + m_Name: Entry + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &872693327694151783 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7543149531317296434} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8709577274779249990} + - {fileID: 6745669473387912735} + - {fileID: 5386509871369360704} + - {fileID: 6599398538668055626} + - {fileID: 7517449009630221084} + - {fileID: 2192733867988101149} + - {fileID: 1193668558717459112} + - {fileID: 6649144490139638750} + - {fileID: 2774005203675618589} + - {fileID: 2263784588518876553} + - {fileID: 4133490023722193167} + - {fileID: 2100354558514495230} + - {fileID: 7851428660121841770} + - {fileID: 705212810629798912} + - {fileID: 1230651960664234646} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3321187484417907030 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7543149531317296434} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 252fa1bb9e36411fb4582d0656b987bf, type: 3} + m_Name: + m_EditorClassIdentifier: + componentType: + m_FrameRate: 120 + m_GameSpeed: 1 + m_RunInBackground: 1 + m_NeverSleep: 1 +--- !u!1 &7735514978784737518 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2100354558514495230} + - component: {fileID: 8740987973648959375} + m_Layer: 0 + m_Name: Audio + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2100354558514495230 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7735514978784737518} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 872693327694151783} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8740987973648959375 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7735514978784737518} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7d0b3cff83fd3874394b1b456bb54dab, type: 3} + m_Name: + m_EditorClassIdentifier: + componentType: AlicizaX.Audio.Runtime.AudioManager + m_AudioMixer: {fileID: 24100000, guid: 1af7a1b121ae17541a1967d430cef006, type: 2} + m_InstanceRoot: {fileID: 2100354558514495230} + m_AudioGroupConfigs: + - m_Name: Music + m_Mute: 0 + m_Volume: 0.5 + m_AgentHelperCount: 1 + AudioType: 2 + audioRolloffMode: 1 + minDistance: 15 + maxDistance: 50 + - m_Name: Sound + m_Mute: 1 + m_Volume: 0.5 + m_AgentHelperCount: 4 + AudioType: 0 + audioRolloffMode: 0 + minDistance: 1 + maxDistance: 500 + - m_Name: UISound + m_Mute: 0 + m_Volume: 0.5 + m_AgentHelperCount: 4 + AudioType: 1 + audioRolloffMode: 0 + minDistance: 1 + maxDistance: 500 + - m_Name: Voice + m_Mute: 0 + m_Volume: 0.5 + m_AgentHelperCount: 1 + AudioType: 3 + audioRolloffMode: 0 + minDistance: 1 + maxDistance: 500 +--- !u!1 &8612237073929828197 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2263784588518876553} + - component: {fileID: 504723695797919324} + m_Layer: 0 + m_Name: Scene + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2263784588518876553 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8612237073929828197} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 872693327694151783} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &504723695797919324 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8612237073929828197} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6ccaedadefd0fbf498241670caa387e8, type: 3} + m_Name: + m_EditorClassIdentifier: + componentType: AlicizaX.Scene.Runtime.GameSceneManager + m_EnableLoadSceneUpdateEvent: 1 + m_EnableLoadSceneDependencyAssetEvent: 1 +--- !u!1 &8705119867914337319 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6745669473387912735} + - component: {fileID: 6041821004877564393} + m_Layer: 0 + m_Name: Object Pool + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6745669473387912735 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8705119867914337319} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 872693327694151783} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &6041821004877564393 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8705119867914337319} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1e28a727443c86c40aeb42ff20e0a343, type: 3} + m_Name: + m_EditorClassIdentifier: + componentType: AlicizaX.ObjectPool.ObjectPoolManager +--- !u!1 &9199961599302139892 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6599398538668055626} + - component: {fileID: 7322265836626601571} + m_Layer: 0 + m_Name: Setting + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6599398538668055626 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9199961599302139892} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 872693327694151783} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &7322265836626601571 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9199961599302139892} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd5fa5f9376d4c2abee7a298edbfbd19, type: 3} + m_Name: + m_EditorClassIdentifier: + componentType: AlicizaX.Setting.Runtime.SettingManager + m_SettingHelperTypeName: AlicizaX.Setting.Runtime.DefaultSettingHelper + m_CustomSettingHelper: {fileID: 0} diff --git a/Client/Packages/com.alicizax.unity.entry/Resources/Entry.prefab.meta b/Client/Packages/com.alicizax.unity.entry/Resources/Entry.prefab.meta new file mode 100644 index 0000000..5061969 --- /dev/null +++ b/Client/Packages/com.alicizax.unity.entry/Resources/Entry.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8e4808bf30e54a8439a661bfa35ee982 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Packages/com.alicizax.unity.procedure/Editor/ProcedureComponentInspector.cs b/Client/Packages/com.alicizax.unity.procedure/Editor/ProcedureComponentInspector.cs index 2783a6d..8e84ab1 100644 --- a/Client/Packages/com.alicizax.unity.procedure/Editor/ProcedureComponentInspector.cs +++ b/Client/Packages/com.alicizax.unity.procedure/Editor/ProcedureComponentInspector.cs @@ -29,7 +29,7 @@ namespace AlicizaX.Procedure.Editor { EditorGUILayout.HelpBox("Entrance procedure is invalid.", MessageType.Error); } - else if (EditorApplication.isPlaying) + else if (EditorApplication.isPlaying && t.CurrentProcedure != null) { EditorGUILayout.LabelField("Current Procedure", t.CurrentProcedure == null ? "None" : t.CurrentProcedure.GetType().ToString()); } @@ -167,4 +167,4 @@ namespace AlicizaX.Procedure.Editor } } } -} \ No newline at end of file +} diff --git a/Client/Packages/com.alicizax.unity.resource/Editor/AlicizaX.Resource.Editor.asmdef b/Client/Packages/com.alicizax.unity.resource/Editor/AlicizaX.Resource.Editor.asmdef index fa27c7c..ce2cbdd 100644 --- a/Client/Packages/com.alicizax.unity.resource/Editor/AlicizaX.Resource.Editor.asmdef +++ b/Client/Packages/com.alicizax.unity.resource/Editor/AlicizaX.Resource.Editor.asmdef @@ -4,7 +4,8 @@ "references": [ "GUID:acfef7cabed3b0a42b25edb1cd4fa259", "GUID:75b6f2078d190f14dbda4a5b747d709c", - "GUID:be2f20a77f3232f44b9711ef43234aac" + "GUID:be2f20a77f3232f44b9711ef43234aac", + "GUID:4d1926c9df5b052469a1c63448b7609a" ], "includePlatforms": [ "Editor" diff --git a/Client/Packages/com.alicizax.unity.resource/Editor/Inspector/ResourceComponentInspector.cs b/Client/Packages/com.alicizax.unity.resource/Editor/Inspector/ResourceComponentInspector.cs index d925689..6038838 100644 --- a/Client/Packages/com.alicizax.unity.resource/Editor/Inspector/ResourceComponentInspector.cs +++ b/Client/Packages/com.alicizax.unity.resource/Editor/Inspector/ResourceComponentInspector.cs @@ -1,7 +1,10 @@ -using AlicizaX.Editor; +using System; +using System.Collections.Generic; +using AlicizaX.Editor; using AlicizaX.Resource.Runtime; using UnityEditor; using UnityEngine; +using YooAsset.Editor; namespace AlicizaX.Resource.Editor { @@ -19,12 +22,16 @@ namespace AlicizaX.Resource.Editor private SerializedProperty m_AssetExpireTime; private SerializedProperty m_AssetPriority; + private int m_PackageNameIndex = 0; + private string[] m_PackageNames; public override void OnInspectorGUI() { base.OnInspectorGUI(); serializedObject.Update(); + ResourceComponent t = (ResourceComponent)target; + EditorGUI.BeginDisabledGroup(EditorApplication.isPlayingOrWillChangePlaymode); { EditorGUILayout.PropertyField(m_GamePlayMode, m_GamePlayModeGUIContent); @@ -36,10 +43,17 @@ namespace AlicizaX.Resource.Editor m_Milliseconds.longValue = milliseconds; } - string packageName = EditorGUILayout.TextField("Package Name", m_defaultPackageName.stringValue); - if (packageName != m_defaultPackageName.stringValue) + m_PackageNames = GetBuildPackageNames().ToArray(); + m_PackageNameIndex = Array.IndexOf(m_PackageNames, m_defaultPackageName.stringValue); + if (m_PackageNameIndex < 0) { - m_defaultPackageName.stringValue = packageName; + m_PackageNameIndex = 0; + } + + m_PackageNameIndex = EditorGUILayout.Popup("Package Name", m_PackageNameIndex, m_PackageNames); + if (m_defaultPackageName.stringValue != m_PackageNames[m_PackageNameIndex]) + { + m_defaultPackageName.stringValue = m_PackageNames[m_PackageNameIndex]; } @@ -69,6 +83,17 @@ namespace AlicizaX.Resource.Editor m_AssetPriority.intValue = assetPriority; } } + + if (EditorApplication.isPlaying && IsPrefabInHierarchy(t.gameObject)) + { + // EditorGUILayout.LabelField("Unload Unused Assets", + // Utility.Text.Format("{0:F2} / {1:F2}", t.LastUnloadUnusedAssetsOperationElapseSeconds, t.MaxUnloadUnusedAssetsInterval)); + // EditorGUILayout.LabelField("Read-Only Path", t?.ReadOnlyPath?.ToString()); + // EditorGUILayout.LabelField("Read-Write Path", t?.ReadWritePath?.ToString()); + EditorGUILayout.LabelField("Package Version", t.PackageVersion ?? ""); + } + + EditorGUI.EndDisabledGroup(); serializedObject.ApplyModifiedProperties(); @@ -94,5 +119,20 @@ namespace AlicizaX.Resource.Editor m_AssetExpireTime = serializedObject.FindProperty("m_AssetExpireTime"); m_AssetPriority = serializedObject.FindProperty("m_AssetPriority"); } + + /// + /// 获取构建包名称列表,用于下拉可选择 + /// + /// + private List GetBuildPackageNames() + { + List result = new List(); + foreach (var package in AssetBundleCollectorSettingData.Setting.Packages) + { + result.Add(package.PackageName); + } + + return result; + } } } diff --git a/Client/Packages/com.alicizax.unity.resource/Runtime/Resource/Extension/ResourceExtComponent.Resource.cs b/Client/Packages/com.alicizax.unity.resource/Runtime/Resource/Extension/ResourceExtComponent.Resource.cs index 456457a..b2c4606 100644 --- a/Client/Packages/com.alicizax.unity.resource/Runtime/Resource/Extension/ResourceExtComponent.Resource.cs +++ b/Client/Packages/com.alicizax.unity.resource/Runtime/Resource/Extension/ResourceExtComponent.Resource.cs @@ -21,7 +21,7 @@ namespace AlicizaX.Resource.Runtime private void OnLoadAssetFailure(string assetName, LoadResourceStatus status, string errormessage, object userdata) { _assetLoadingList.Remove(assetName); - Log.Error("Can not load asset from '{1}' with error message '{2}'.", assetName, errormessage); + Log.Error("Can not load asset from '{0}' with error message '{1}'.", assetName, errormessage); } private void OnLoadAssetSuccess(string assetName, object asset, float duration, object userdata) @@ -60,4 +60,4 @@ namespace AlicizaX.Resource.Runtime } } } -} \ No newline at end of file +} diff --git a/Client/Packages/com.alicizax.unity.resource/Runtime/Resource/ResourceComponent.cs b/Client/Packages/com.alicizax.unity.resource/Runtime/Resource/ResourceComponent.cs index 1639253..1f6fc09 100644 --- a/Client/Packages/com.alicizax.unity.resource/Runtime/Resource/ResourceComponent.cs +++ b/Client/Packages/com.alicizax.unity.resource/Runtime/Resource/ResourceComponent.cs @@ -71,18 +71,9 @@ namespace AlicizaX.Resource.Runtime protected void Start() { #if UNITY_EDITOR - m_GamePlayMode = (EPlayMode)UnityEditor.EditorPrefs.GetInt(PrefsKey, 0); + int defaultMode = (int)m_GamePlayMode; + m_GamePlayMode = (EPlayMode)UnityEditor.EditorPrefs.GetInt(PrefsKey, defaultMode); #endif - // m_ResourceManager.SetReadOnlyPath(Application.streamingAssetsPath); - // if (config.ReadWritePathType == ReadWritePathType.TemporaryCache) - // { - // m_ResourceManager.SetReadWritePath(Application.temporaryCachePath); - // } - // else - // { - // m_ResourceManager.SetReadWritePath(Application.persistentDataPath); - // } - m_ResourceManager.DefaultPackageName = m_defaultPackageName; m_ResourceManager.PlayMode = m_GamePlayMode; m_ResourceManager.VerifyLevel = EFileVerifyLevel.Middle; @@ -93,7 +84,6 @@ namespace AlicizaX.Resource.Runtime m_ResourceManager.AssetCapacity = m_AssetCapacity; m_ResourceManager.AssetExpireTime = m_AssetExpireTime; m_ResourceManager.AssetPriority = m_AssetPriority; - Log.Info($"ResourceComponent Run Mode:{m_GamePlayMode}"); } diff --git a/Client/Packages/com.alicizax.unity.resource/Runtime/Resource/ResourceManager.Initialization.cs b/Client/Packages/com.alicizax.unity.resource/Runtime/Resource/ResourceManager.Initialization.cs index 9f6fb03..55aef78 100644 --- a/Client/Packages/com.alicizax.unity.resource/Runtime/Resource/ResourceManager.Initialization.cs +++ b/Client/Packages/com.alicizax.unity.resource/Runtime/Resource/ResourceManager.Initialization.cs @@ -62,8 +62,8 @@ namespace AlicizaX.Resource.Runtime { var initParameters = new WebPlayModeParameters(); FileSystemParameters webFileSystem = null; -#if UNITY_WEBGL -#if ENABLE_DOUYIN_MINI_GAME +#if UNITY_WEBGL +#if ENABLE_DOUYIN_MINI_GAME // 创建字节小游戏文件系统 if (hostServerURL.IsNullOrWhiteSpace()) { @@ -99,11 +99,11 @@ namespace AlicizaX.Resource.Runtime { IRemoteServices remoteServices = new RemoteServices(hostServerURL, fallbackHostServerURL); var cacheFileSystem = FileSystemParameters.CreateDefaultCacheFileSystemParameters(remoteServices); - var buildinFileSystem = FileSystemParameters.CreateDefaultBuildinFileSystemParameters(); + var buildinFileSystem = FileSystemParameters.CreateDefaultBuildinFileSystemParameters(new FileOffsetDecryption()); var initParameters = new HostPlayModeParameters(); initParameters.BuildinFileSystemParameters = buildinFileSystem; initParameters.CacheFileSystemParameters = cacheFileSystem; return resourcePackage.InitializeAsync(initParameters); } } -} \ No newline at end of file +} diff --git a/Client/Packages/com.alicizax.unity.resource/Runtime/Resource/ResourceManager.Services.cs b/Client/Packages/com.alicizax.unity.resource/Runtime/Resource/ResourceManager.Services.cs index c53bd4c..f9a2b59 100644 --- a/Client/Packages/com.alicizax.unity.resource/Runtime/Resource/ResourceManager.Services.cs +++ b/Client/Packages/com.alicizax.unity.resource/Runtime/Resource/ResourceManager.Services.cs @@ -31,7 +31,7 @@ namespace AlicizaX.Resource.Runtime } } - /// + /// /// 资源文件流加载解密类 /// private class FileStreamDecryption : IDecryptionServices @@ -114,7 +114,6 @@ namespace AlicizaX.Resource.Runtime return 32; } } - /// @@ -143,71 +142,5 @@ namespace AlicizaX.Resource.Runtime return index; } } - - - public class StreamingAssetsDefine - { - /// - /// 根目录名称(保持和YooAssets资源系统一致) - /// - public const string RootFolderName = "package"; - } - - -#if UNITY_EDITOR - internal class PreprocessBuild : UnityEditor.Build.IPreprocessBuildWithReport - { - public int callbackOrder - { - get { return 0; } - } - - /// - /// 在构建应用程序前处理 - /// 原理:在构建APP之前,搜索StreamingAssets目录下的所有资源文件,然后将这些文件信息写入内置清单,内置清单存储在Resources文件夹下。 - /// - public void OnPreprocessBuild(UnityEditor.Build.Reporting.BuildReport report) - { - string saveFilePath = "Assets/AATemp/Resources/BuildinFileManifest.asset"; - if (File.Exists(saveFilePath)) - { - File.Delete(saveFilePath); - UnityEditor.AssetDatabase.SaveAssets(); - UnityEditor.AssetDatabase.Refresh(); - } - - string folderPath = $"{Application.dataPath}/StreamingAssets/{StreamingAssetsDefine.RootFolderName}"; - DirectoryInfo root = new DirectoryInfo(folderPath); - if (root.Exists == false) - { - Debug.LogWarning($"没有发现YooAsset内置目录 : {folderPath}"); - return; - } - - var manifest = ScriptableObject.CreateInstance(); - FileInfo[] files = root.GetFiles("*", SearchOption.AllDirectories); - foreach (var fileInfo in files) - { - if (fileInfo.Extension == ".meta") - continue; - if (fileInfo.Name.StartsWith("PackageManifest_")) - continue; - - BuildinFileManifest.Element element = new BuildinFileManifest.Element(); - element.PackageName = fileInfo.Directory.Name; - element.FileCRC32 = YooAsset.HashUtility.FileCRC32(fileInfo.FullName); - element.FileName = fileInfo.Name; - manifest.BuildinFiles.Add(element); - } - - if (Directory.Exists("Assets/AATemp/Resources") == false) - Directory.CreateDirectory("Assets/AATemp/Resources"); - UnityEditor.AssetDatabase.CreateAsset(manifest, saveFilePath); - UnityEditor.AssetDatabase.SaveAssets(); - UnityEditor.AssetDatabase.Refresh(); - Debug.Log($"一共{manifest.BuildinFiles.Count}个内置文件,内置资源清单保存成功 : {saveFilePath}"); - } - } -#endif } -} \ No newline at end of file +} diff --git a/Client/Packages/com.alicizax.unity.resource/Runtime/Resource/ResourceManager.cs b/Client/Packages/com.alicizax.unity.resource/Runtime/Resource/ResourceManager.cs index 8ed76a8..f2a7c4c 100644 --- a/Client/Packages/com.alicizax.unity.resource/Runtime/Resource/ResourceManager.cs +++ b/Client/Packages/com.alicizax.unity.resource/Runtime/Resource/ResourceManager.cs @@ -85,7 +85,6 @@ namespace AlicizaX.Resource.Runtime /// private bool m_UseSystemUnloadUnusedAssets = true; - /// /// 获取无用资源释放的等待时长,以秒为单位。 /// @@ -142,7 +141,7 @@ namespace AlicizaX.Resource.Runtime if (m_AsyncOperation == null && m_unloadUnusedAssetsOperation == null && (m_ForceUnloadUnusedAssets || m_LastUnloadUnusedAssetsOperationElapseSeconds >= m_MaxUnloadUnusedAssetsInterval || m_PreorderUnloadUnusedAssets && m_LastUnloadUnusedAssetsOperationElapseSeconds >= m_MinUnloadUnusedAssetsInterval)) { - Log.Info("Unload unused assets..."); + Log.Debug("Unload unused assets..."); m_ForceUnloadUnusedAssets = false; m_PreorderUnloadUnusedAssets = false; m_LastUnloadUnusedAssetsOperationElapseSeconds = 0f; @@ -158,7 +157,7 @@ namespace AlicizaX.Resource.Runtime m_AsyncOperation = null; if (m_PerformGCCollect) { - Log.Info("GC.Collect..."); + Log.Debug("GC.Collect..."); m_PerformGCCollect = false; GC.Collect(); } @@ -167,7 +166,7 @@ namespace AlicizaX.Resource.Runtime if (m_unloadUnusedAssetsOperation is { IsDone: true }) { m_unloadUnusedAssetsOperation = null; - Log.Info("Unload UnusedAssets Done..."); + Log.Debug("Unload UnusedAssets Done..."); } } diff --git a/Client/Packages/com.alicizax.unity.ui/Editor/AlicizaX.UI.Editor.asmdef b/Client/Packages/com.alicizax.unity.ui/Editor/AlicizaX.UI.Editor.asmdef index 61a502b..da866a4 100644 --- a/Client/Packages/com.alicizax.unity.ui/Editor/AlicizaX.UI.Editor.asmdef +++ b/Client/Packages/com.alicizax.unity.ui/Editor/AlicizaX.UI.Editor.asmdef @@ -3,7 +3,8 @@ "rootNamespace": "AlicizaX.UI.Editor", "references": [ "GUID:acfef7cabed3b0a42b25edb1cd4fa259", - "GUID:e9c35c8938f782649bb7e670099ca425" + "GUID:e9c35c8938f782649bb7e670099ca425", + "GUID:75b6f2078d190f14dbda4a5b747d709c" ], "includePlatforms": [ "Editor" diff --git a/Client/Packages/com.alicizax.unity.ui/Editor/Assets/UIGenerateGlobalSettings.asset b/Client/Packages/com.alicizax.unity.ui/Editor/Assets/UIGenerateGlobalSettings.asset index 941aca0..9bd1989 100644 --- a/Client/Packages/com.alicizax.unity.ui/Editor/Assets/UIGenerateGlobalSettings.asset +++ b/Client/Packages/com.alicizax.unity.ui/Editor/Assets/UIGenerateGlobalSettings.asset @@ -12,6 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: b212f141eb1bc7b4d97c4dc8b938bc5f, type: 3} m_Name: UIGenerateGlobalSettings m_EditorClassIdentifier: + UIScriptGenerateConfigs: [] scriptGenerateRule: - uiElementRegex: Obj componentName: GameObject @@ -61,3 +62,32 @@ MonoBehaviour: componentName: RectMask2D - uiElementRegex: LText componentName: Text + UIElementRegexConfigs: + - uiElementRegex: Rect + componentType: UnityEngine.RectTransform + - uiElementRegex: Obj + componentType: UnityEngine.GameObject + - uiElementRegex: Tf + componentType: UnityEngine.Transform + - uiElementRegex: Btn + componentType: UnityEngine.UI.Button + - uiElementRegex: Slider + componentType: UnityEngine.UI.Slider + - uiElementRegex: Img + componentType: UnityEngine.UI.Image + - uiElementRegex: RImg + componentType: UnityEngine.UI.RawImage + - uiElementRegex: Scrollbar + componentType: UnityEngine.UI.Scrollbar + - uiElementRegex: ScrollRect + componentType: UnityEngine.UI.ScrollRect + - uiElementRegex: GLayout + componentType: UnityEngine.UI.GridLayoutGroup + - uiElementRegex: HLayout + componentType: UnityEngine.UI.HorizontalLayoutGroup + - uiElementRegex: VLayout + componentType: UnityEngine.UI.VerticalLayoutGroup + - uiElementRegex: Tmp + componentType: TMPro.TextMeshProUGUI + - uiElementRegex: TogGroup + componentType: UnityEngine.UI.ToggleGroup diff --git a/Client/Packages/com.alicizax.unity.ui/Editor/UIConfig/UIGenerateGlobalSettingTab.cs b/Client/Packages/com.alicizax.unity.ui/Editor/UIConfig/UIGenerateGlobalSettingTab.cs index cdf5a35..046c90c 100644 --- a/Client/Packages/com.alicizax.unity.ui/Editor/UIConfig/UIGenerateGlobalSettingTab.cs +++ b/Client/Packages/com.alicizax.unity.ui/Editor/UIConfig/UIGenerateGlobalSettingTab.cs @@ -1,16 +1,25 @@ using AlicizaX.Editor; using Sirenix.OdinInspector; using UnityEditor; +using UnityEngine; namespace AlicizaX.UI.Editor { [System.Serializable] - [DisplayName("UI设置")] + [DisplayName("UI构建设置")] internal sealed class UIGenerateGlobalSettingTab : GameFrameworkTabBase { [Required] [InlineEditor(InlineEditorObjectFieldModes.CompletelyHidden)] [DisableInPlayMode] [HideLabel] public UIGenerateGlobalSettings UIGenerateGlobalSettings; + [Sirenix.OdinInspector.Button] + private void LogConfig() + { + foreach (var VARIABLE in UIGenerateGlobalSettings.UIElementRegexConfigs) + { + Debug.Log(VARIABLE.componentType); + } + } public UIGenerateGlobalSettingTab() { UIGenerateGlobalSettings = ScriptableSingletonUtil.Get(); diff --git a/Client/Packages/com.alicizax.unity.ui/Editor/UIConfig/UIGenerateGlobalSettings.cs b/Client/Packages/com.alicizax.unity.ui/Editor/UIConfig/UIGenerateGlobalSettings.cs index 835904d..0956de9 100644 --- a/Client/Packages/com.alicizax.unity.ui/Editor/UIConfig/UIGenerateGlobalSettings.cs +++ b/Client/Packages/com.alicizax.unity.ui/Editor/UIConfig/UIGenerateGlobalSettings.cs @@ -1,7 +1,8 @@ -#if UNITY_EDITOR using System; using System.Collections.Generic; using System.IO; +using System.Linq; +using AlicizaX.Runtime; using Sirenix.OdinInspector; using UnityEditor; using UnityEngine; @@ -10,7 +11,14 @@ namespace AlicizaX.UI.Editor { internal class UIGenerateGlobalSettings : ScriptableObject { - [SerializeField] public List scriptGenerateRule = new List(); + [TabGroup("UI构建配置")] [TableList(ShowIndexLabels = false, DrawScrollView = true, AlwaysExpanded = true)] [SerializeField] + public List UIScriptGenerateConfigs = new List(); + + [TabGroup("UI元素映射1")] [TableList(ShowIndexLabels = false, DrawScrollView = true, AlwaysExpanded = true)] [SerializeField] + public List scriptGenerateRule = new List(); + + [TabGroup("UI元素映射2")] [TableList(ShowIndexLabels = false, DrawScrollView = true, AlwaysExpanded = true)] [SerializeField] + public List UIElementRegexConfigs = new List(); } [Serializable] @@ -25,6 +33,53 @@ namespace AlicizaX.UI.Editor this.componentName = componentName; } } -} -#endif + [System.Serializable] + internal class UIEelementRegexData + { + public string uiElementRegex; + + + [ShowInInspector] [ValueDropdown("GetFilteredTypeList", ExpandAllMenuItems = false)] + public string componentType; + + + private static List cacheFilterType; + + public IEnumerable GetFilteredTypeList() + { + if (cacheFilterType == null) + { + cacheFilterType = AlicizaX.Runtime.Utility.Assembly.GetTypes() + .Where(m => !m.FullName.Contains("Editor")) + .Where(x => !x.IsAbstract || x.IsInterface) + .Where(x => !x.IsGenericTypeDefinition) + .Where(x => !x.IsSubclassOf(typeof(GameFrameworkComponent))) + .Where(x => x.IsSubclassOf(typeof(Component))) + .Where(x => !x.FullName.Contains("YooAsset")) + .Where(x => !x.FullName.Contains(("Unity.VisualScripting"))) + .Where(x => !x.FullName.Contains(("Cysharp.Threading"))) + .Where(x => !x.FullName.Contains(("UnityEngine.Rendering.UI.Debug"))) + .Where(x => !x.FullName.Contains(("Unity.PerformanceTesting"))) + .Where(x => !x.FullName.Contains(("UnityEngine.TestTools"))) + .Select(x => x.FullName).ToList(); + + cacheFilterType.Add(typeof(GameObject).FullName); + } + + return cacheFilterType; + } + } + + [System.Serializable] + internal class UIScriptGenerateData + { + public string ConfigName; + + [Sirenix.OdinInspector.FolderPath(RequireExistingPath = true, AbsolutePath = false)] + public string GenerateCodePath; + + [Sirenix.OdinInspector.FolderPath(RequireExistingPath = true, AbsolutePath = false)] + public string UIPrefabPath; + } +} diff --git a/Client/Packages/com.alicizax.unity.ui/Runtime/UI/ComponentBindTool/UIBindComponent.cs b/Client/Packages/com.alicizax.unity.ui/Runtime/UI/ComponentBindTool/UIBindComponent.cs index 2dc67a7..0fc7c5c 100644 --- a/Client/Packages/com.alicizax.unity.ui/Runtime/UI/ComponentBindTool/UIBindComponent.cs +++ b/Client/Packages/com.alicizax.unity.ui/Runtime/UI/ComponentBindTool/UIBindComponent.cs @@ -11,7 +11,7 @@ namespace AlicizaX.UI.Runtime /// 通过mono序列化来绑定ui节点的元素换取查找与ui的稳定性。 /// [HideMonoScript] - [AddComponentMenu("AlicizaFramework/UI绑定工具")] + [AddComponentMenu("UI绑定工具")] public class UIBindComponent : MonoBehaviour { #if UNITY_EDITOR diff --git a/Client/Packages/com.alicizax.unity/Editor/Inspector/ObjectPoolComponentInspector.cs b/Client/Packages/com.alicizax.unity/Editor/Inspector/ObjectPoolComponentInspector.cs index 2ebbc23..59a18dd 100644 --- a/Client/Packages/com.alicizax.unity/Editor/Inspector/ObjectPoolComponentInspector.cs +++ b/Client/Packages/com.alicizax.unity/Editor/Inspector/ObjectPoolComponentInspector.cs @@ -80,10 +80,18 @@ namespace AlicizaX.Editor EditorGUILayout.LabelField("Name", objectPool.AllowMultiSpawn ? "Locked\tCount\tFlag\tPriority\tLast Use Time" : "Locked\tIn Use\tFlag\tPriority\tLast Use Time"); foreach (ObjectInfo objectInfo in objectInfos) { +#if UNITY_6000_0_OR_NEWER + EditorGUILayout.LabelField(string.IsNullOrEmpty(objectInfo.Name) ? "" : objectInfo.Name, + objectPool.AllowMultiSpawn + ? Utility.Text.Format("{0,-12}\t{1,-12}\t{2,-12}\t{3,-12}\t{4:yyyy-MM-dd HH:mm:ss,-12}", objectInfo.Locked, objectInfo.SpawnCount, objectInfo.CustomCanReleaseFlag, objectInfo.Priority, objectInfo.LastUseTime.ToLocalTime()) + : Utility.Text.Format("{0,-12}\t{1,-12}\t{2,-12}\t{3,-12}\t{4:yyyy-MM-dd HH:mm:ss,-12}", objectInfo.Locked, objectInfo.IsInUse, objectInfo.CustomCanReleaseFlag, objectInfo.Priority, objectInfo.LastUseTime.ToLocalTime())); +#else + EditorGUILayout.LabelField(string.IsNullOrEmpty(objectInfo.Name) ? "" : objectInfo.Name, objectPool.AllowMultiSpawn ? Utility.Text.Format("{0}\t{1}\t{2}\t{3}\t{4:yyyy-MM-dd HH:mm:ss}", objectInfo.Locked, objectInfo.SpawnCount, objectInfo.CustomCanReleaseFlag, objectInfo.Priority, objectInfo.LastUseTime.ToLocalTime()) : Utility.Text.Format("{0}\t{1}\t{2}\t{3}\t{4:yyyy-MM-dd HH:mm:ss}", objectInfo.Locked, objectInfo.IsInUse, objectInfo.CustomCanReleaseFlag, objectInfo.Priority, objectInfo.LastUseTime.ToLocalTime())); +#endif } if (GUILayout.Button("Release")) @@ -134,4 +142,4 @@ namespace AlicizaX.Editor } } } -} \ No newline at end of file +} diff --git a/Client/Packages/com.alicizax.unity/Editor/Inspector/ReferencePoolComponentInspector.cs b/Client/Packages/com.alicizax.unity/Editor/Inspector/ReferencePoolComponentInspector.cs index 90e345b..04b06c2 100644 --- a/Client/Packages/com.alicizax.unity/Editor/Inspector/ReferencePoolComponentInspector.cs +++ b/Client/Packages/com.alicizax.unity/Editor/Inspector/ReferencePoolComponentInspector.cs @@ -72,7 +72,8 @@ namespace AlicizaX.Editor { EditorGUILayout.BeginVertical("box"); { - EditorGUILayout.LabelField(m_ShowFullClassName ? "Full Class Name" : "Class Name", "Unused\tUsing\tAcquire\tRelease\tAdd\tRemove"); + var label = "Unused\tUsing.\tAcquire\tRelease\tAdd\tRemove"; + EditorGUILayout.LabelField(m_ShowFullClassName ? "Full Class Name" : "Class Name", label); assemblyReferencePoolInfo.Value.Sort(Comparison); foreach (ReferencePoolInfo referencePoolInfo in assemblyReferencePoolInfo.Value) { @@ -127,7 +128,11 @@ namespace AlicizaX.Editor private void DrawReferencePoolInfo(ReferencePoolInfo referencePoolInfo) { - EditorGUILayout.LabelField(m_ShowFullClassName ? referencePoolInfo.Type.FullName : referencePoolInfo.Type.Name, Utility.Text.Format("{0}\t{1}\t{2}\t{3}\t{4}\t{5}", referencePoolInfo.UnusedReferenceCount, referencePoolInfo.UsingReferenceCount, referencePoolInfo.AcquireReferenceCount, referencePoolInfo.ReleaseReferenceCount, referencePoolInfo.AddReferenceCount, referencePoolInfo.RemoveReferenceCount)); +#if UNITY_6000_0_OR_NEWER + EditorGUILayout.LabelField(m_ShowFullClassName ? referencePoolInfo.Type.FullName : referencePoolInfo.Type.Name, Utility.Text.Format("{0,-12}\t{1,-12}\t{2,-12}\t{3,-12}\t{4}\t{5}", referencePoolInfo.UnusedReferenceCount, referencePoolInfo.UsingReferenceCount, referencePoolInfo.AcquireReferenceCount, referencePoolInfo.ReleaseReferenceCount, referencePoolInfo.AddReferenceCount, referencePoolInfo.RemoveReferenceCount)); +#else + EditorGUILayout.LabelField(m_ShowFullClassName ? referencePoolInfo.Type.FullName : referencePoolInfo.Type.Name, Utility.Text.Format("{0}\t{1}\t{2}\t{3}\t{4}\t{5}", referencePoolInfo.UnusedReferenceCount, referencePoolInfo.UsingReferenceCount, referencePoolInfo.AcquireReferenceCount, referencePoolInfo.ReleaseReferenceCount, referencePoolInfo.AddReferenceCount, referencePoolInfo.RemoveReferenceCount)); +#endif } private int Comparison(ReferencePoolInfo a, ReferencePoolInfo b) diff --git a/Client/Packages/packages-lock.json b/Client/Packages/packages-lock.json index ff0c296..b62f0cd 100644 --- a/Client/Packages/packages-lock.json +++ b/Client/Packages/packages-lock.json @@ -38,6 +38,12 @@ "source": "embedded", "dependencies": {} }, + "com.alicizax.unity.editor.extension": { + "version": "file:com.alicizax.unity.editor.extension", + "depth": 0, + "source": "embedded", + "dependencies": {} + }, "com.alicizax.unity.entry": { "version": "file:com.alicizax.unity.entry", "depth": 0, diff --git a/Client/UserSettings/Layouts/default-6000.dwlt b/Client/UserSettings/Layouts/default-6000.dwlt index 8c39ccb..3ece104 100644 --- a/Client/UserSettings/Layouts/default-6000.dwlt +++ b/Client/UserSettings/Layouts/default-6000.dwlt @@ -14,16 +14,16 @@ MonoBehaviour: m_EditorClassIdentifier: m_PixelRect: serializedVersion: 2 - x: 8 - y: 51 - width: 1904 - height: 981 + x: 0 + y: 43 + width: 1920 + height: 997 m_ShowMode: 4 m_Title: Project m_RootView: {fileID: 2} m_MinSize: {x: 875, y: 300} m_MaxSize: {x: 10000, y: 10000} - m_Maximized: 0 + m_Maximized: 1 --- !u!114 &2 MonoBehaviour: m_ObjectHideFlags: 52 @@ -44,8 +44,8 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 0 - width: 1904 - height: 981 + width: 1920 + height: 997 m_MinSize: {x: 875, y: 300} m_MaxSize: {x: 10000, y: 10000} m_UseTopView: 1 @@ -69,7 +69,7 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 0 - width: 1904 + width: 1920 height: 36 m_MinSize: {x: 0, y: 0} m_MaxSize: {x: 0, y: 0} @@ -90,8 +90,8 @@ MonoBehaviour: m_Position: serializedVersion: 2 x: 0 - y: 961 - width: 1904 + y: 977 + width: 1920 height: 20 m_MinSize: {x: 0, y: 0} m_MaxSize: {x: 0, y: 0} @@ -116,12 +116,12 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 36 - width: 1904 - height: 925 + width: 1920 + height: 941 m_MinSize: {x: 400, y: 100} m_MaxSize: {x: 32384, y: 16192} vertical: 0 - controlID: 137 + controlID: 131 draggingID: 0 --- !u!114 &6 MonoBehaviour: @@ -140,8 +140,8 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 0 - width: 312 - height: 925 + width: 344 + height: 941 m_MinSize: {x: 51, y: 76} m_MaxSize: {x: 4001, y: 4026} m_ActualView: {fileID: 12} @@ -168,10 +168,10 @@ MonoBehaviour: - {fileID: 9} m_Position: serializedVersion: 2 - x: 312 + x: 344 y: 0 - width: 492 - height: 925 + width: 225 + height: 941 m_MinSize: {x: 100, y: 100} m_MaxSize: {x: 8096, y: 16192} vertical: 1 @@ -194,8 +194,8 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 0 - width: 492 - height: 376 + width: 225 + height: 380 m_MinSize: {x: 202, y: 226} m_MaxSize: {x: 4002, y: 4026} m_ActualView: {fileID: 15} @@ -219,9 +219,9 @@ MonoBehaviour: m_Position: serializedVersion: 2 x: 0 - y: 376 - width: 492 - height: 549 + y: 380 + width: 225 + height: 561 m_MinSize: {x: 102, y: 126} m_MaxSize: {x: 4002, y: 4026} m_ActualView: {fileID: 16} @@ -244,10 +244,10 @@ MonoBehaviour: m_Children: [] m_Position: serializedVersion: 2 - x: 804 + x: 569 y: 0 - width: 547 - height: 925 + width: 286 + height: 941 m_MinSize: {x: 232, y: 276} m_MaxSize: {x: 10002, y: 10026} m_ActualView: {fileID: 17} @@ -270,10 +270,10 @@ MonoBehaviour: m_Children: [] m_Position: serializedVersion: 2 - x: 1351 + x: 855 y: 0 - width: 553 - height: 925 + width: 1065 + height: 941 m_MinSize: {x: 276, y: 76} m_MaxSize: {x: 4001, y: 4026} m_ActualView: {fileID: 18} @@ -304,8 +304,8 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 24 - width: 311 - height: 899 + width: 343 + height: 915 m_SerializedDataModeController: m_DataMode: 0 m_PreferredDataMode: 0 @@ -347,7 +347,7 @@ MonoBehaviour: m_VAllowExceedBaseRangeMin: 1 m_VAllowExceedBaseRangeMax: 1 m_ScaleWithWindow: 0 - m_HSlider: 0 + m_HSlider: 1 m_VSlider: 0 m_IgnoreScrollWheelUntilClicked: 0 m_EnableMouseInput: 1 @@ -359,23 +359,23 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 21 - width: 314 + width: 343 height: 894 - m_Scale: {x: 0.16354166, y: 0.16354166} - m_Translation: {x: 157, y: 447} + m_Scale: {x: 0.3293854, y: 0.32938543} + m_Translation: {x: 179.63007, y: 447} m_MarginLeft: 0 m_MarginRight: 0 m_MarginTop: 0 m_MarginBottom: 0 m_LastShownAreaInsideMargins: serializedVersion: 2 - x: -960.00006 - y: -2733.2485 - width: 1920.0001 - height: 5466.497 + x: -545.3492 + y: -1357.0728 + width: 1041.3334 + height: 2714.1455 m_MinimalGUI: 1 - m_defaultScale: 0.16354166 - m_LastWindowPixelSize: {x: 314, y: 915} + m_defaultScale: 0.17864583 + m_LastWindowPixelSize: {x: 343, y: 915} m_ClearInEditMode: 1 m_NoCameraWarning: 1 m_LowResolutionForAspectRatios: 00000000000000000000 @@ -1154,8 +1154,8 @@ MonoBehaviour: serializedVersion: 2 x: 1 y: 24 - width: 490 - height: 350 + width: 223 + height: 354 m_SerializedDataModeController: m_DataMode: 0 m_PreferredDataMode: 0 @@ -1172,7 +1172,7 @@ MonoBehaviour: scrollPos: {x: 0, y: 0} m_SelectedIDs: m_LastClickedID: 0 - m_ExpandedIDs: 82cefeffe0cffeffdad2feffb0eafeff08f2feff58f3feff4ef6feff72f8feff14fdfeff26fffeff34fffeff3efffeff74fafffff4ffffffe0b9000018d70000e4e40000 + m_ExpandedIDs: f8fafffff4ffffffd0ba0000 m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -1189,7 +1189,7 @@ MonoBehaviour: m_OriginalEventType: 11 m_IsRenamingFilename: 0 m_TrimLeadingAndTrailingWhitespace: 0 - m_ClientGUIView: {fileID: 6} + m_ClientGUIView: {fileID: 8} m_SearchString: m_ExpandedScenes: [] m_CurrenRootInstanceID: 0 @@ -1219,9 +1219,9 @@ MonoBehaviour: m_Pos: serializedVersion: 2 x: 1 - y: 400 - width: 490 - height: 523 + y: 404 + width: 223 + height: 535 m_SerializedDataModeController: m_DataMode: 0 m_PreferredDataMode: 0 @@ -1254,10 +1254,10 @@ MonoBehaviour: m_TextWithWhitespace: "Project\u200B" m_Pos: serializedVersion: 2 - x: 805 + x: 570 y: 24 - width: 545 - height: 899 + width: 284 + height: 915 m_SerializedDataModeController: m_DataMode: 0 m_PreferredDataMode: 0 @@ -1298,7 +1298,7 @@ MonoBehaviour: scrollPos: {x: 0, y: 0} m_SelectedIDs: e48c0000 m_LastClickedID: 36068 - m_ExpandedIDs: 00000000f8b90000fab90000fcb90000feb9000000ba000002ba000004ba000006ba000008ba00000aba00000cba00000eba000010ba000012ba000014ba000016ba000018ba00001aba00001cba00001eba000020ba000022ba000024ba000026ba000028ba00002aba00002cba00002eba000030ba000032ba000034ba000036ba000038ba00003aba00003cba00003eba000040ba000042ba000044ba000046ba000048ba00004aba00004cba00004eba000050ba000052ba000054ba000056ba000058ba00005aba00005cba00005eba000060ba000062ba000064ba000066ba000068ba00006aba00006cba00006eba000070ba000072ba000074ba000076ba000078ba00007aba00007cba00007eba000080ba000082ba000084ba000086ba000088ba00008aba00008cba00008eba000090ba000092ba000094ba000096ba000098ba00009aba00009cba00009eba0000a0ba0000a2ba0000a4ba0000a6ba0000a8ba0000aaba0000acba0000aeba0000b0ba0000b2ba0000b4ba0000b6ba0000b8ba0000baba0000bcba0000beba0000c0ba0000c2ba0000c4ba0000c6ba0000 + m_ExpandedIDs: 0000000074bb000076bb000078bb00007abb00007cbb00007ebb000080bb000082bb000084bb000086bb000088bb00008abb00008cbb00008ebb000090bb000092bb000094bb000096bb000098bb00009abb00009cbb00009ebb0000a0bb0000a2bb0000a4bb0000a6bb0000a8bb0000aabb0000acbb0000aebb0000b0bb0000b2bb0000b4bb0000b6bb0000b8bb0000babb0000bcbb0000bebb0000c0bb0000c2bb0000c4bb0000c6bb0000c8bb0000cabb0000ccbb0000cebb0000d0bb0000d2bb0000d4bb0000d6bb0000d8bb0000dabb0000dcbb0000debb0000e0bb0000e2bb0000e4bb0000e6bb0000e8bb0000eabb0000ecbb0000eebb0000f0bb0000f2bb0000f4bb0000f6bb0000f8bb0000fabb0000fcbb0000febb000000bc000002bc000004bc000006bc000008bc00000abc00000cbc00000ebc000010bc000012bc000014bc000016bc000018bc00001abc00001cbc00001ebc000020bc000022bc000024bc000026bc000028bc00002abc00002cbc00002ebc000030bc000032bc000034bc000036bc000038bc00003abc00003cbc00003ebc000040bc000042bc000044bc000046bc000048bc00004abc00004cbc00004ebc000050bc000052bc0000 m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -1327,7 +1327,7 @@ MonoBehaviour: scrollPos: {x: 0, y: 0} m_SelectedIDs: m_LastClickedID: 0 - m_ExpandedIDs: 00000000f8b90000fab90000fcb90000feb9000000ba000002ba000004ba000006ba000008ba00000aba00000cba00000eba000010ba000012ba000014ba000016ba000018ba00001aba00001cba00001eba000020ba000022ba000024ba000026ba000028ba00002aba00002cba00002eba000030ba000032ba000034ba000036ba000038ba00003aba00003cba00003eba000040ba000042ba000044ba000046ba000048ba00004aba00004cba00004eba000050ba000052ba000054ba000056ba000058ba00005aba00005cba00005eba000060ba000062ba000064ba000066ba000068ba00006aba00006cba00006eba000070ba000072ba000074ba000076ba000078ba00007aba00007cba00007eba000080ba000082ba000084ba000086ba000088ba00008aba00008cba00008eba000090ba000092ba000094ba000096ba000098ba00009aba00009cba00009eba0000a0ba0000a2ba0000a4ba0000a6ba0000a8ba0000aaba0000acba0000aeba0000b0ba0000b2ba0000b4ba0000b6ba0000b8ba0000baba0000bcba0000beba0000c0ba0000c2ba0000c4ba0000c6ba0000 + m_ExpandedIDs: 0000000074bb000076bb000078bb00007abb00007cbb00007ebb000080bb000082bb000084bb000086bb000088bb00008abb00008cbb00008ebb000090bb000092bb000094bb000096bb000098bb00009abb00009cbb00009ebb0000a0bb0000a2bb0000a4bb0000a6bb0000a8bb0000aabb0000acbb0000aebb0000b0bb0000b2bb0000b4bb0000b6bb0000b8bb0000babb0000bcbb0000bebb0000c0bb0000c2bb0000c4bb0000c6bb0000c8bb0000cabb0000ccbb0000cebb0000d0bb0000d2bb0000d4bb0000d6bb0000d8bb0000dabb0000dcbb0000debb0000e0bb0000e2bb0000e4bb0000e6bb0000e8bb0000eabb0000ecbb0000eebb0000f0bb0000f2bb0000f4bb0000f6bb0000f8bb0000fabb0000fcbb0000febb000000bc000002bc000004bc000006bc000008bc00000abc00000cbc00000ebc000010bc000012bc000014bc000016bc000018bc00001abc00001cbc00001ebc000020bc000022bc000024bc000026bc000028bc00002abc00002cbc00002ebc000030bc000032bc000034bc000036bc000038bc00003abc00003cbc00003ebc000040bc000042bc000044bc000046bc000048bc00004abc00004cbc00004ebc000050bc000052bc0000 m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -1406,10 +1406,10 @@ MonoBehaviour: m_TextWithWhitespace: "Inspector\u200B" m_Pos: serializedVersion: 2 - x: 1352 + x: 856 y: 24 - width: 552 - height: 899 + width: 1064 + height: 915 m_SerializedDataModeController: m_DataMode: 0 m_PreferredDataMode: 0 @@ -1424,7 +1424,7 @@ MonoBehaviour: m_ObjectsLockedBeforeSerialization: [] m_InstanceIDsLockedBeforeSerialization: m_PreviewResizer: - m_CachedPref: -195 + m_CachedPref: 151 m_ControlHash: -371814159 m_PrefName: Preview_InspectorPreview m_LastInspectedObjectInstanceID: -1