From 234b18d3f8ebca3bb120e24980710faf058b72fb Mon Sep 17 00:00:00 2001 From: BobSong <605277374@qq.com> Date: Wed, 29 Oct 2025 22:41:47 +0800 Subject: [PATCH] =?UTF-8?q?Revert=20"=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 5750c4fe56dca689f8d652161a3bfa2e7ab03e3c. --- Assets/Scripts/Generate/Config/BaitConfig.cs | 4 +- Assets/Scripts/Generate/Config/BasicConfig.cs | 4 +- .../Scripts/Generate/Config/BobberConfig.cs | 4 +- .../Scripts/Generate/Config/FeederConfig.cs | 4 +- Assets/Scripts/Generate/Config/FishConfig.cs | 4 +- Assets/Scripts/Generate/Config/HookConfig.cs | 4 +- Assets/Scripts/Generate/Config/InitConfig.cs | 4 +- Assets/Scripts/Generate/Config/ItemConfig.cs | 4 +- Assets/Scripts/Generate/Config/LineConfig.cs | 4 +- Assets/Scripts/Generate/Config/LureConfig.cs | 4 +- Assets/Scripts/Generate/Config/ReelConfig.cs | 4 +- Assets/Scripts/Generate/Config/RingConfig.cs | 2 +- Assets/Scripts/Generate/Config/RodConfig.cs | 4 +- .../Scripts/Generate/Config/RodRingConfig.cs | 4 +- Assets/Scripts/Generate/Config/Unit2Config.cs | 2 +- Assets/Scripts/Generate/Config/UnitConfig.cs | 2 +- .../Scripts/Generate/Config/WeightConfig.cs | 2 +- .../NetworkProtocol/CommonProtoData.cs | 25 +- .../Generate/NetworkProtocol/GameMessage.cs | 31 +- .../Generate/NetworkProtocol/MapMessage.cs | 17 +- .../Generate/NetworkProtocol/MapProtoData.cs | 15 +- .../NetworkProtocol/NetworkProtocolHelper.cs | 657 ---------- .../NetworkProtocolHelper.cs.meta | 2 - .../Generate/NetworkProtocol/OuterMessage.cs | 17 +- .../Generate/NetworkProtocol/OuterOpcode.cs | 2 +- .../Generate/NetworkProtocol/RoamingType.cs | 2 +- .../Generate/NetworkProtocol/RoomMessage.cs | 23 +- .../Generate/NetworkProtocol/RouteType.cs | 2 +- .../Generate/NetworkProtocol/SocialMessage.cs | 77 +- Assets/Scripts/Init.cs | 4 +- Assets/Scripts/{ThirdParty => }/NBC.meta | 0 .../Scripts/{ThirdParty => }/NBC/Editor.meta | 0 .../{ThirdParty => }/NBC/Editor/Runtime.meta | 0 .../NBC/Editor/Runtime/Asset.meta | 0 .../NBC/Editor/Runtime/Asset/Attributes.cs | 0 .../Editor/Runtime/Asset/Attributes.cs.meta | 0 .../NBC/Editor/Runtime/Asset/Builder.meta | 0 .../Runtime/Asset/Builder/BuildContext.cs | 0 .../Asset/Builder/BuildContext.cs.meta | 0 .../Editor/Runtime/Asset/Builder/Builder.cs | 0 .../Runtime/Asset/Builder/Builder.cs.meta | 0 .../Editor/Runtime/Asset/Builder/Gathers.meta | 0 .../Asset/Builder/Gathers/GatherBase.cs | 0 .../Asset/Builder/Gathers/GatherBase.cs.meta | 0 .../Asset/Builder/Gathers/GatherFile.cs | 0 .../Asset/Builder/Gathers/GatherFile.cs.meta | 0 .../Asset/Builder/Gathers/GatherFolder.cs | 0 .../Builder/Gathers/GatherFolder.cs.meta | 0 .../Builder/Gathers/GatherFolderParent.cs | 0 .../Gathers/GatherFolderParent.cs.meta | 0 .../Asset/Builder/Gathers/GatherSingle.cs | 0 .../Builder/Gathers/GatherSingle.cs.meta | 0 .../Asset/Builder/Gathers/GatherWithoutSub.cs | 0 .../Builder/Gathers/GatherWithoutSub.cs.meta | 0 .../Editor/Runtime/Asset/Builder/Tasks.meta | 0 .../Asset/Builder/Tasks/BuildBundleTask.cs | 0 .../Builder/Tasks/BuildBundleTask.cs.meta | 0 .../Runtime/Asset/Builder/Tasks/BuildTask.cs | 0 .../Asset/Builder/Tasks/BuildTask.cs.meta | 0 .../Builder/Tasks/CopyToStreamingAssets.cs | 0 .../Tasks/CopyToStreamingAssets.cs.meta | 0 .../Builder/Tasks/CopyVersionBundleTask.cs | 0 .../Tasks/CopyVersionBundleTask.cs.meta | 0 .../Runtime/Asset/Builder/Tasks/GatherTask.cs | 0 .../Asset/Builder/Tasks/GatherTask.cs.meta | 0 .../Asset/Builder/Tasks/GenPackageDataTask.cs | 0 .../Builder/Tasks/GenPackageDataTask.cs.meta | 0 .../Asset/Builder/Tasks/GenVersionDataTask.cs | 0 .../Builder/Tasks/GenVersionDataTask.cs.meta | 0 .../NBC/Editor/Runtime/Asset/Cache.meta | 0 .../Editor/Runtime/Asset/Cache/BuildAsset.cs | 0 .../Runtime/Asset/Cache/BuildAsset.cs.meta | 0 .../Editor/Runtime/Asset/Cache/BuildBundle.cs | 0 .../Runtime/Asset/Cache/BuildBundle.cs.meta | 0 .../Runtime/Asset/Cache/BuildPackage.cs | 0 .../Runtime/Asset/Cache/BuildPackage.cs.meta | 0 .../NBC/Editor/Runtime/Asset/Cache/Caches.cs | 0 .../Editor/Runtime/Asset/Cache/Caches.cs.meta | 0 .../Editor/Runtime/Asset/Cache/Histories.cs | 0 .../Runtime/Asset/Cache/Histories.cs.meta | 0 .../Runtime/Asset/Cache/VersionHistory.cs | 0 .../Asset/Cache/VersionHistory.cs.meta | 0 .../NBC/Editor/Runtime/Asset/Configs.meta | 0 .../Runtime/Asset/Configs/GroupConfig.cs | 0 .../Runtime/Asset/Configs/GroupConfig.cs.meta | 0 .../Runtime/Asset/Configs/ISelectTag.cs | 0 .../Runtime/Asset/Configs/ISelectTag.cs.meta | 0 .../Runtime/Asset/Configs/PackageConfig.cs | 0 .../Asset/Configs/PackageConfig.cs.meta | 0 .../NBC/Editor/Runtime/Asset/Defs.meta | 0 .../Editor/Runtime/Asset/Defs/AddressMode.cs | 0 .../Runtime/Asset/Defs/AddressMode.cs.meta | 0 .../Editor/Runtime/Asset/Defs/BundleMode.cs | 0 .../Runtime/Asset/Defs/BundleMode.cs.meta | 0 .../NBC/Editor/Runtime/Asset/Defs/Defs.cs | 0 .../Editor/Runtime/Asset/Defs/Defs.cs.meta | 0 .../Editor/Runtime/Asset/Defs/FilterEnum.cs | 0 .../Runtime/Asset/Defs/FilterEnum.cs.meta | 0 .../NBC/Editor/Runtime/Asset/Defs/Language.cs | 0 .../Runtime/Asset/Defs/Language.cs.meta | 0 .../NBC/Editor/Runtime/Asset/Defs/Styles.cs | 0 .../Editor/Runtime/Asset/Defs/Styles.cs.meta | 0 .../NBC/Editor/Runtime/Asset/GUI.meta | 0 .../NBC/Editor/Runtime/Asset/GUI/Builder.meta | 0 .../Asset/GUI/Builder/BuilderWindow.cs | 0 .../Asset/GUI/Builder/BuilderWindow.cs.meta | 0 .../Runtime/Asset/GUI/Builder/SubView.meta | 0 .../SubView/BuildBundleAssetsTreeEditor.cs | 0 .../BuildBundleAssetsTreeEditor.cs.meta | 0 .../Builder/SubView/BuildBundleTreeEditor.cs | 0 .../SubView/BuildBundleTreeEditor.cs.meta | 0 .../Editor/Runtime/Asset/GUI/Collector.meta | 0 .../Asset/GUI/Collector/CollectorWindow.cs | 0 .../GUI/Collector/CollectorWindow.cs.meta | 0 .../GUI/Collector/PackagesListTreeView.cs | 0 .../Collector/PackagesListTreeView.cs.meta | 0 .../Runtime/Asset/GUI/Collector/SubView.meta | 0 .../GUI/Collector/SubView/AssetsTreeEditor.cs | 0 .../SubView/AssetsTreeEditor.cs.meta | 0 .../GUI/Collector/SubView/GroupInfoGUI.cs | 0 .../Collector/SubView/GroupInfoGUI.cs.meta | 0 .../GUI/Collector/SubView/GroupTreeEditor.cs | 0 .../Collector/SubView/GroupTreeEditor.cs.meta | 0 .../Collector/SubView/PackageTreeEditor.cs | 0 .../SubView/PackageTreeEditor.cs.meta | 0 .../NBC/Editor/Runtime/Asset/GUI/Commom.meta | 0 .../Runtime/Asset/GUI/Commom/Splitter.cs | 0 .../Runtime/Asset/GUI/Commom/Splitter.cs.meta | 0 .../NBC/Editor/Runtime/Asset/GUI/History.meta | 0 .../Asset/GUI/History/HistoryWindow.cs | 0 .../Asset/GUI/History/HistoryWindow.cs.meta | 0 .../Runtime/Asset/GUI/History/SubView.meta | 0 .../SubView/HistoryBundleTreeEditor.cs | 0 .../SubView/HistoryBundleTreeEditor.cs.meta | 0 .../SubView/HistoryVersionTreeEditor.cs | 0 .../SubView/HistoryVersionTreeEditor.cs.meta | 0 .../Editor/Runtime/Asset/GUI/Inspector.meta | 0 .../Asset/GUI/Inspector/ResInspectorUI.cs | 0 .../GUI/Inspector/ResInspectorUI.cs.meta | 0 .../NBC/Editor/Runtime/Asset/GUI/Label.meta | 0 .../Runtime/Asset/GUI/Label/LabelGUI.cs | 0 .../Runtime/Asset/GUI/Label/LabelGUI.cs.meta | 0 .../Asset/GUI/Label/LabelMaskPopupContent.cs | 0 .../GUI/Label/LabelMaskPopupContent.cs.meta | 0 .../Editor/Runtime/Asset/GUI/Profiler.meta | 0 .../Asset/GUI/Profiler/ProfilerWindow.cs | 0 .../Asset/GUI/Profiler/ProfilerWindow.cs.meta | 0 .../Runtime/Asset/GUI/Profiler/SubView.meta | 0 .../Profiler/SubView/ProfilerAssetListView.cs | 0 .../SubView/ProfilerAssetListView.cs.meta | 0 .../SubView/ProfilerBundleListView.cs | 0 .../SubView/ProfilerBundleListView.cs.meta | 0 .../NBC/Editor/Runtime/Asset/Images.meta | 0 .../Runtime/Asset/Images/HeaderBoxImage.png | Bin .../Asset/Images/HeaderBoxImage.png.meta | 0 .../Runtime/Asset/Images/StyleSheet.guiskin | 0 .../Asset/Images/StyleSheet.guiskin.meta | 0 .../Editor/Runtime/Asset/Images/icon_add.png | Bin .../Runtime/Asset/Images/icon_add.png.meta | 0 .../Runtime/Asset/Images/icon_folder.png | Bin .../Runtime/Asset/Images/icon_folder.png.meta | 0 .../Runtime/Asset/Images/icon_package.png | Bin .../Asset/Images/icon_package.png.meta | 0 .../Runtime/Asset/Images/icon_package2.png | Bin .../Asset/Images/icon_package2.png.meta | 0 .../NBC/Editor/Runtime/Asset/Initialize.cs | 0 .../Editor/Runtime/Asset/Initialize.cs.meta | 0 .../NBC/Editor/Runtime/Asset/Menus.cs | 0 .../NBC/Editor/Runtime/Asset/Menus.cs.meta | 0 .../NBC/Editor/Runtime/Asset/Settings.meta | 0 .../Runtime/Asset/Settings/Attributes.cs | 0 .../Runtime/Asset/Settings/Attributes.cs.meta | 0 .../Runtime/Asset/Settings/BuildSettings.cs | 0 .../Asset/Settings/BuildSettings.cs.meta | 0 .../Asset/Settings/CollectorSetting.cs | 0 .../Asset/Settings/CollectorSetting.cs.meta | 0 .../NBC/Editor/Runtime/Asset/Simulate.meta | 0 .../Asset/Simulate/AddressableEditImpl.cs | 0 .../Simulate/AddressableEditImpl.cs.meta | 0 .../NBC/Editor/Runtime/Asset/Utils.meta | 0 .../Editor/Runtime/Asset/Utils/EditUtil.cs | 0 .../Runtime/Asset/Utils/EditUtil.cs.meta | 0 .../Editor/Runtime/Asset/Utils/GUITools.cs | 0 .../Runtime/Asset/Utils/GUITools.cs.meta | 0 .../Editor/Runtime/Asset/Utils/HistoryUtil.cs | 0 .../Runtime/Asset/Utils/HistoryUtil.cs.meta | 0 .../Editor/Runtime/Asset/Utils/ImportTools.cs | 0 .../Runtime/Asset/Utils/ImportTools.cs.meta | 0 .../Asset/Utils/MultiColumnHeaderUtil.cs | 0 .../Asset/Utils/MultiColumnHeaderUtil.cs.meta | 0 .../Asset/Utils/ScriptableSignleton.cs | 0 .../Asset/Utils/ScriptableSignleton.cs.meta | 0 .../Editor/Runtime/CheckUnityVersion.cs | 6 +- .../Editor/Runtime/CheckUnityVersion.cs.meta | 2 +- .../NBC/Editor/Runtime/FairyGUI.meta | 0 .../Runtime/FairyGUI/DisplayObjectEditor.cs | 0 .../FairyGUI/DisplayObjectEditor.cs.meta | 0 .../Editor/Runtime/FairyGUI/EditorToolSet.cs | 0 .../Runtime/FairyGUI/EditorToolSet.cs.meta | 0 .../Editor/Runtime/FairyGUI/PackagesWindow.cs | 0 .../Runtime/FairyGUI/PackagesWindow.cs.meta | 0 .../Runtime/FairyGUI/StageCameraEditor.cs | 0 .../FairyGUI/StageCameraEditor.cs.meta | 0 .../Editor/Runtime/FairyGUI/UIConfigEditor.cs | 0 .../Runtime/FairyGUI/UIConfigEditor.cs.meta | 0 .../Runtime/FairyGUI/UIContentScalerEditor.cs | 0 .../FairyGUI/UIContentScalerEditor.cs.meta | 0 .../Runtime/FairyGUI/UIPainterEditor.cs | 0 .../Runtime/FairyGUI/UIPainterEditor.cs.meta | 0 .../Editor/Runtime/FairyGUI/UIPanelEditor.cs | 0 .../Runtime/FairyGUI/UIPanelEditor.cs.meta | 0 .../Editor/Runtime/FantasyStartup.cs | 13 +- .../Editor/Runtime/FantasyStartup.cs.meta | 2 +- .../Editor/Runtime/LinkXmlGenerator.cs | 34 +- .../Editor/Runtime/LinkXmlGenerator.cs.meta | 2 +- .../NBC/Editor/Runtime/NBC.Editor.asmdef | 0 .../NBC/Editor/Runtime/NBC.Editor.asmdef.meta | 0 .../Editor/Runtime/Settings.meta | 2 +- .../Runtime/Settings/FantasySettings.cs | 2 +- .../Runtime/Settings/FantasySettings.cs.meta | 2 +- .../Settings/FantasySettingsProvider.cs | 102 ++ .../Settings/FantasySettingsProvider.cs.meta | 2 +- .../FantasySettingsScriptableObject.cs | 12 +- .../FantasySettingsScriptableObject.cs.meta | 2 +- .../Settings/ScriptableObjectSingleton.cs | 2 +- .../ScriptableObjectSingleton.cs.meta | 2 +- .../Editor/Runtime/WSocket.meta | 2 +- .../Editor/Runtime/WSocket/SettingsWindow.cs | 0 .../Runtime/WSocket/SettingsWindow.cs.meta | 2 +- .../{ThirdParty/Fantasy.Unity => NBC}/LICENSE | 0 .../Scripts/{ThirdParty => }/NBC/LICENSE.meta | 0 .../Fantasy.Unity => NBC}/README.md | 0 .../{ThirdParty => }/NBC/README.md.meta | 0 .../Scripts/{ThirdParty => }/NBC/Runtime.meta | 0 .../{ThirdParty => }/NBC/Runtime/Asset.meta | 0 .../NBC/Runtime/Asset/Editor.meta | 0 .../NBC/Runtime/Asset/Runtime.meta | 0 .../NBC/Runtime/Asset/Runtime/Address.meta | 0 .../Asset/Runtime/Address/Addressable.cs | 0 .../Asset/Runtime/Address/Addressable.cs.meta | 0 .../Runtime/Address/AddressableRuntimeImpl.cs | 0 .../Address/AddressableRuntimeImpl.cs.meta | 0 .../Runtime/Asset/Runtime/Address/Data.meta | 0 .../Asset/Runtime/Address/Data/AssetData.cs | 0 .../Runtime/Address/Data/AssetData.cs.meta | 0 .../Asset/Runtime/Address/Data/BundleData.cs | 0 .../Runtime/Address/Data/BundleData.cs.meta | 0 .../Asset/Runtime/Address/Data/PackageData.cs | 0 .../Runtime/Address/Data/PackageData.cs.meta | 0 .../Asset/Runtime/Address/Data/VersionData.cs | 0 .../Runtime/Address/Data/VersionData.cs.meta | 0 .../Runtime/Address/Data/VersionDataReader.cs | 0 .../Address/Data/VersionDataReader.cs.meta | 0 .../Runtime/Asset/Runtime/Address/Info.meta | 0 .../Asset/Runtime/Address/Info/AssetInfo.cs | 0 .../Runtime/Address/Info/AssetInfo.cs.meta | 0 .../Asset/Runtime/Address/Info/BundleInfo.cs | 0 .../Runtime/Address/Info/BundleInfo.cs.meta | 0 .../NBC/Runtime/Asset/Runtime/Asset.meta | 0 .../Runtime/Asset/Runtime/Asset/Loaders.meta | 0 .../Asset/Loaders/AssetLoadFromDatabase.cs | 0 .../Loaders/AssetLoadFromDatabase.cs.meta | 0 .../Asset/Loaders/AssetLoaderFromBundle.cs | 0 .../Loaders/AssetLoaderFromBundle.cs.meta | 0 .../Asset/Loaders/BundleLoaderFromDownload.cs | 0 .../Loaders/BundleLoaderFromDownload.cs.meta | 0 .../Asset/Loaders/BundleLoaderFromLocal.cs | 0 .../Loaders/BundleLoaderFromLocal.cs.meta | 0 .../Runtime/Asset/Loaders/IAssetLoader.cs | 0 .../Asset/Loaders/IAssetLoader.cs.meta | 0 .../Runtime/Asset/Loaders/IBundleLoader.cs | 0 .../Asset/Loaders/IBundleLoader.cs.meta | 0 .../Runtime/Asset/Loaders/ISceneLoader.cs | 0 .../Asset/Loaders/ISceneLoader.cs.meta | 0 .../Asset/Loaders/SceneLoadFromDatabase.cs | 0 .../Loaders/SceneLoadFromDatabase.cs.meta | 0 .../Asset/Loaders/SceneLoaderFromBundle.cs | 0 .../Loaders/SceneLoaderFromBundle.cs.meta | 0 .../Asset/Runtime/Asset/Providers.meta | 0 .../Runtime/Asset/Providers/AssetProvider.cs | 0 .../Asset/Providers/AssetProvider.cs.meta | 0 .../Asset/Providers/BundledProvider.cs | 0 .../Asset/Providers/BundledProvider.cs.meta | 0 .../Runtime/Asset/Providers/Dependency.cs | 0 .../Asset/Providers/Dependency.cs.meta | 0 .../Runtime/Asset/Providers/ProviderBase.cs | 0 .../Asset/Providers/ProviderBase.cs.meta | 0 .../Runtime/Asset/Providers/SceneProvider.cs | 0 .../Asset/Providers/SceneProvider.cs.meta | 0 .../NBC/Runtime/Asset/Runtime/Assets.cs | 1 - .../NBC/Runtime/Asset/Runtime/Assets.cs.meta | 0 .../NBC/Runtime/Asset/Runtime/Const.meta | 0 .../NBC/Runtime/Asset/Runtime/Const/Const.cs | 0 .../Runtime/Asset/Runtime/Const/Const.cs.meta | 0 .../NBC/Runtime/Asset/Runtime/Enums.meta | 0 .../Asset/Runtime/Enums/BundleLoadMode.cs | 0 .../Runtime/Enums/BundleLoadMode.cs.meta | 0 .../NBC/Runtime/Asset/Runtime/Services.meta | 0 .../Runtime/Asset/Runtime/Services/Debug.meta | 0 .../Asset/Runtime/Services/Debug/DebugInfo.cs | 0 .../Runtime/Services/Debug/DebugInfo.cs.meta | 0 .../Services/Debug/DebugRemoteServer.cs | 0 .../Services/Debug/DebugRemoteServer.cs.meta | 0 .../Runtime/Services/IDecryptionServices.cs | 0 .../Services/IDecryptionServices.cs.meta | 0 .../Asset/Runtime/Services/Recycler.cs | 0 .../Asset/Runtime/Services/Recycler.cs.meta | 0 .../NBC/Runtime/Asset/Runtime/Tasks.meta | 0 .../Asset/Runtime/Tasks/AssetTaskBase.cs | 0 .../Asset/Runtime/Tasks/AssetTaskBase.cs.meta | 0 .../Runtime/Asset/Runtime/Tasks/Download.meta | 0 .../Tasks/Download/DownloadBundlesTask.cs | 0 .../Download/DownloadBundlesTask.cs.meta | 0 .../Download/DownloadCertificateHandler.cs | 0 .../DownloadCertificateHandler.cs.meta | 0 .../Tasks/Download/DownloadFileTask.cs | 0 .../Tasks/Download/DownloadFileTask.cs.meta | 0 .../Runtime/Tasks/Download/DownloadRunner.cs | 0 .../Tasks/Download/DownloadRunner.cs.meta | 0 .../Tasks/Download/DownloadTaskBase.cs | 0 .../Tasks/Download/DownloadTaskBase.cs.meta | 0 .../Asset/Runtime/Tasks/Initialization.meta | 0 .../EditorInitializationTask.cs | 0 .../EditorInitializationTask.cs.meta | 0 .../Initialization/InitializationTask.cs | 0 .../Initialization/InitializationTask.cs.meta | 0 .../OfflineInitializationTask.cs | 0 .../OfflineInitializationTask.cs.meta | 0 .../OnlineInitializationTask.cs | 0 .../OnlineInitializationTask.cs.meta | 0 .../Tasks/Initialization/StepTasks.meta | 0 .../StepTasks/CheckCoverInstallTask.cs | 0 .../StepTasks/CheckCoverInstallTask.cs.meta | 0 .../StepTasks/CheckUnpackPackageTask.cs | 0 .../StepTasks/CheckUnpackPackageTask.cs.meta | 0 .../Runtime/Asset/Runtime/Tasks/Provider.meta | 0 .../Runtime/Tasks/Provider/ProviderRunner.cs | 0 .../Tasks/Provider/ProviderRunner.cs.meta | 0 .../Asset/Runtime/Tasks/RunFunctionTask.cs | 0 .../Runtime/Tasks/RunFunctionTask.cs.meta | 0 .../Runtime/Asset/Runtime/Tasks/TaskRunner.cs | 0 .../Asset/Runtime/Tasks/TaskRunner.cs.meta | 0 .../Runtime/Asset/Runtime/Tasks/Unpack.meta | 0 .../Runtime/Tasks/Unpack/UnpackFileTask.cs | 0 .../Tasks/Unpack/UnpackFileTask.cs.meta | 0 .../Tasks/Unpack/UnpackPackagesTask.cs | 0 .../Tasks/Unpack/UnpackPackagesTask.cs.meta | 0 .../Runtime/Tasks/Unpack/UnpackVersionTask.cs | 0 .../Tasks/Unpack/UnpackVersionTask.cs.meta | 0 .../Runtime/Asset/Runtime/Tasks/Update.meta | 0 .../Runtime/Tasks/Update/CheckUpdateTask.cs | 0 .../Tasks/Update/CheckUpdateTask.cs.meta | 0 .../Runtime/Tasks/Update/UpdateContext.cs | 0 .../Tasks/Update/UpdateContext.cs.meta | 0 .../Runtime/Tasks/Update/UpdateVersionTask.cs | 0 .../Tasks/Update/UpdateVersionTask.cs.meta | 0 .../NBC/Runtime/Asset/Runtime/Utils.meta | 0 .../NBC/Runtime/Asset/Runtime/Utils/Mono.cs | 0 .../Runtime/Asset/Runtime/Utils/Mono.cs.meta | 0 .../Runtime/Utils/StreamingAssetsUtil.cs | 0 .../Runtime/Utils/StreamingAssetsUtil.cs.meta | 0 .../NBC/Runtime/Asset/Runtime/Utils/Util.cs | 0 .../Runtime/Asset/Runtime/Utils/Util.cs.meta | 0 .../{ThirdParty => }/NBC/Runtime/Core.meta | 0 .../{ThirdParty => }/NBC/Runtime/Core/App.cs | 1 - .../NBC/Runtime/Core/App.cs.meta | 0 .../Runtime/Core/Assembly.meta | 0 .../NBC/Runtime/Core/Assembly/AssemblyInfo.cs | 89 ++ .../Core/Assembly/AssemblyInfo.cs.meta} | 2 +- .../Runtime/Core/Assembly/AssemblySystem.cs | 286 +++++ .../Core/Assembly/AssemblySystem.cs.meta} | 2 +- .../NBC/Runtime/Core/Assembly/IAssembly.cs | 27 + .../Runtime/Core/Assembly/IAssembly.cs.meta} | 2 +- .../Runtime/Core/Attributes.meta} | 2 +- .../NBC/Runtime/Core/Attributes/Attributes.cs | 20 + .../Core/Attributes/Attributes.cs.meta | 3 + Assets/Scripts/NBC/Runtime/Core/Config.meta | 3 + .../NBC/Runtime/Core/Config/ConfigContext.cs | 90 ++ .../Runtime/Core/Config/ConfigContext.cs.meta | 3 + .../Runtime/Core/Config/ConfigTableHelper.cs | 115 ++ .../Core/Config/ConfigTableHelper.cs.meta | 3 + .../NBC/Runtime/Core/Config/IConfigTable.cs | 19 + .../Runtime/Core/Config/IConfigTable.cs.meta | 3 + .../Runtime/Core/DataStructure.meta | 0 .../Core/DataStructure/Collection.meta | 0 .../Collection/CircularBuffer.cs | 2 +- .../Collection/CircularBuffer.cs.meta | 0 .../Collection/ConcurrentOneToManyListPool.cs | 4 +- .../ConcurrentOneToManyListPool.cs.meta | 0 .../ConcurrentOneToManyQueuePool.cs | 4 +- .../ConcurrentOneToManyQueuePool.cs.meta | 0 .../DataStructure/Collection/HashSetPool.cs | 4 +- .../Collection/HashSetPool.cs.meta | 0 .../Core/DataStructure/Collection/ListPool.cs | 4 +- .../DataStructure/Collection/ListPool.cs.meta | 0 .../Collection/OneToManyHashSetPool.cs | 4 +- .../Collection/OneToManyHashSetPool.cs.meta | 0 .../Collection/OneToManyListPool.cs | 25 +- .../Collection/OneToManyListPool.cs.meta | 0 .../Collection/OneToManyQueuePool.cs | 4 +- .../Collection/OneToManyQueuePool.cs.meta | 0 .../DataStructure/Collection/ReuseList.cs | 4 +- .../Collection/ReuseList.cs.meta | 0 .../SortedConcurrentOneToManyListPool.cs | 4 +- .../SortedConcurrentOneToManyListPool.cs.meta | 0 .../Collection/SortedOneToManyHashSetPool.cs | 4 +- .../SortedOneToManyHashSetPool.cs.meta | 0 .../Collection/SortedOneToManyListPool.cs | 4 +- .../SortedOneToManyListPool.cs.meta | 0 .../Core/DataStructure/Dictionary.meta | 0 .../Dictionary/DictionaryExtensions.cs | 2 +- .../Dictionary/DictionaryExtensions.cs.meta | 0 .../Dictionary/DictionaryPool.cs | 4 +- .../Dictionary/DictionaryPool.cs.meta | 0 .../Dictionary/DoubleMapDictionaryPool.cs | 4 +- .../DoubleMapDictionaryPool.cs.meta | 0 .../Dictionary/EntityDictionary.cs | 4 +- .../Dictionary/EntityDictionary.cs.meta | 0 .../Dictionary/OneToManyDictionaryPool.cs | 4 +- .../OneToManyDictionaryPool.cs.meta | 0 .../OneToManySortedDictionaryPool.cs | 4 +- .../OneToManySortedDictionaryPool.cs.meta | 0 .../Dictionary/ReuseDictionary.cs | 4 +- .../Dictionary/ReuseDictionary.cs.meta | 0 .../Dictionary/SortedDictionaryPool.cs | 4 +- .../Dictionary/SortedDictionaryPool.cs.meta | 0 .../Core/DataStructure/NativeCollections.meta | 0 .../Core/DataStructure/PriorityQueue.meta | 0 .../PriorityQueue/PriorityQueueGenerics.cs | 2 +- .../PriorityQueueGenerics.cs.meta | 0 .../PriorityQueue/PriorityQueueItem.cs | 2 +- .../PriorityQueue/PriorityQueueItem.cs.meta | 0 .../PriorityQueue/PriorityQueueSimple.cs | 2 +- .../PriorityQueue/PriorityQueueSimple.cs.meta | 0 .../Runtime/Core/DataStructure/SkipTable.meta | 0 .../Core/DataStructure/SkipTable/SkipTable.cs | 2 +- .../DataStructure/SkipTable/SkipTable.cs.meta | 0 .../DataStructure/SkipTable/SkipTableBase.cs | 4 +- .../SkipTable/SkipTableBase.cs.meta | 0 .../DataStructure/SkipTable/SkipTableDesc.cs | 2 +- .../SkipTable/SkipTableDesc.cs.meta | 0 .../DataStructure/SkipTable/SkipTableNode.cs | 2 +- .../SkipTable/SkipTableNode.cs.meta | 0 .../Runtime/Core/Entitas.meta | 0 .../Runtime/Core/Entitas/Component.meta | 0 .../Core/Entitas/Component/CoroutineLock.meta | 0 .../Component/CoroutineLock/CoroutineLock.cs | 4 +- .../CoroutineLock/CoroutineLock.cs.meta | 0 .../CoroutineLock/CoroutineLockComponent.cs | 6 +- .../CoroutineLockComponent.cs.meta | 0 .../CoroutineLock/CoroutineLockQueue.cs | 4 +- .../CoroutineLock/CoroutineLockQueue.cs.meta | 0 .../CoroutineLock/WaitCoroutineLock.cs | 6 +- .../CoroutineLock/WaitCoroutineLock.cs.meta | 0 .../Core/Entitas/Component/EntityComponent.cs | 472 +++++++ .../Component}/EntityComponent.cs.meta | 2 +- .../Entitas/Component/EventComponent.meta | 0 .../EventComponent/EventComponent.cs | 255 ++++ .../EventComponent/EventComponent.cs.meta | 0 .../Component/EventComponent/Interface.meta | 0 .../EventComponent/Interface/IEvent.cs | 112 ++ .../EventComponent/Interface/IEvent.cs.meta | 0 .../Entitas/Component/MessagePoolComponent.cs | 28 +- .../Component/MessagePoolComponent.cs.meta | 0 .../Entitas/Component/TimerComponent.meta | 0 .../Component/TimerComponent/Interface.meta | 0 .../TimerComponent/Interface/TimerHandler.cs | 4 +- .../Interface/TimerHandler.cs.meta | 0 .../Component/TimerComponent/TimerAction.cs | 2 +- .../TimerComponent/TimerAction.cs.meta | 0 .../TimerComponent/TimerComponent.cs | 17 +- .../TimerComponent/TimerComponent.cs.meta | 0 .../TimerComponent/TimerScheduler.meta | 0 .../TimerScheduler/TimerSchedulerNet.cs | 17 +- .../TimerScheduler/TimerSchedulerNet.cs.meta | 0 .../TimerScheduler/TimerSchedulerNetUnity.cs | 10 +- .../TimerSchedulerNetUnity.cs.meta | 0 .../Component/TimerComponent/TimerType.cs | 2 +- .../TimerComponent/TimerType.cs.meta | 0 .../Runtime/Core/Entitas/Entity.cs | 311 ++--- .../Runtime/Core/Entitas/Entity.cs.meta | 0 .../Runtime/Core/Entitas/EntityPool.cs | 4 +- .../Runtime/Core/Entitas/EntityPool.cs.meta | 0 .../Runtime/Core/Entitas/EntityReference.cs | 7 +- .../Core/Entitas/EntityReference.cs.meta | 0 .../Runtime/Core/Entitas/Interface.meta | 0 .../Core/Entitas/Interface/Supported.meta | 0 .../Supported/ISingleCollectionRoot.cs | 17 + .../Supported/ISingleCollectionRoot.cs.meta} | 2 +- .../Interface/Supported/ISupportedDataBase.cs | 19 + .../Supported/ISupportedDataBase.cs.meta | 11 + .../Supported/ISupportedMultiEntity.cs | 20 + .../Supported/ISupportedMultiEntity.cs.meta | 11 + .../Supported/ISupportedSingleCollection.cs | 47 + .../ISupportedSingleCollection.cs.meta | 11 + .../Interface/Supported/ISupportedTransfer.cs | 16 + .../Supported/ISupportedTransfer.cs.meta | 11 + .../Core/Entitas/Interface/System.meta | 0 .../Entitas/Interface/System/IAwakeSystem.cs | 11 +- .../Interface/System/IAwakeSystem.cs.meta | 0 .../System/ICustomEntitiesSystem.cs} | 10 +- .../System/ICustomEntitiesSystem.cs.meta | 11 + .../Interface/System/IDeserializeSystem.cs | 11 +- .../System/IDeserializeSystem.cs.meta | 0 .../Interface/System/IDestroySystem.cs | 11 +- .../Interface/System/IDestroySystem.cs.meta | 0 .../Interface/System/IEntitiesSystem.cs} | 8 +- .../Interface/System/IEntitiesSystem.cs.meta | 11 + .../Interface/System/IFrameUpdateSystem.cs | 31 + .../System/IFrameUpdateSystem.cs.meta | 11 + .../Entitas/Interface/System/IUpdateSystem.cs | 9 +- .../Interface/System/IUpdateSystem.cs.meta | 0 .../NBC/Runtime/Core/Event.meta | 0 .../NBC/Runtime/Core/Event/EventArgs.cs | 0 .../NBC/Runtime/Core/Event/EventArgs.cs.meta | 0 .../NBC/Runtime/Core/Event/EventDispatcher.cs | 0 .../Core/Event/EventDispatcher.cs.meta | 0 .../Runtime/Core/Event/IEventDispatcher.cs | 0 .../Core/Event/IEventDispatcher.cs.meta | 0 .../NBC/Runtime/Core/FSM.meta | 0 .../NBC/Runtime/Core/FSM/Fsm.cs | 0 .../NBC/Runtime/Core/FSM/Fsm.cs.meta | 0 .../NBC/Runtime/Core/FSM/FsmBaseState.cs | 0 .../NBC/Runtime/Core/FSM/FsmBaseState.cs.meta | 0 .../NBC/Runtime/Core/FSM/FsmTransmit.cs | 0 .../NBC/Runtime/Core/FSM/FsmTransmit.cs.meta | 0 .../Runtime/Core/FTask.meta | 0 .../Runtime/Core/FTask/Builder.meta | 0 .../AsyncFTaskCompletedMethodBuilder.cs | 2 +- .../AsyncFTaskCompletedMethodBuilder.cs.meta | 0 .../FTask/Builder/AsyncFTaskMethodBuilder.cs | 2 +- .../Builder/AsyncFTaskMethodBuilder.cs.meta | 0 .../FTask/Builder/AsyncFVoidMethodBuilder.cs | 2 +- .../Builder/AsyncFVoidMethodBuilder.cs.meta | 0 .../Core/FTask/FCancellationToken.meta | 0 .../FCancellationToken/FCancellationToken.cs | 2 +- .../FCancellationToken.cs.meta | 0 .../Runtime/Core/FTask/FTask.Extension.meta | 0 .../FTask/FTask.Extension/FTask.Factory.cs | 2 +- .../FTask.Extension/FTask.Factory.cs.meta | 0 .../Core/FTask/FTask.Extension/FTask.Tools.cs | 7 +- .../FTask/FTask.Extension/FTask.Tools.cs.meta | 0 .../Runtime/Core/FTask}/NTask.meta | 0 .../Runtime/Core/FTask}/NTask/Collection.meta | 0 .../Collection/ParallelTaskCollection.cs | 0 .../Collection/ParallelTaskCollection.cs.meta | 0 .../Collection/SequenceTaskCollection.cs | 0 .../Collection/SequenceTaskCollection.cs.meta | 0 .../FTask}/NTask/Collection/TaskCollection.cs | 0 .../NTask/Collection/TaskCollection.cs.meta | 0 .../Collection/TimelineTaskCollection.cs | 0 .../Collection/TimelineTaskCollection.cs.meta | 0 .../Runtime/Core/FTask}/NTask/Extensions.meta | 0 .../NTask/Extensions/TaskChainExtension.cs | 0 .../Extensions/TaskChainExtension.cs.meta | 0 .../Runtime/Core/FTask}/NTask/Interface.meta | 0 .../Core/FTask}/NTask/Interface/IProcess.cs | 0 .../FTask}/NTask/Interface/IProcess.cs.meta | 0 .../Core/FTask}/NTask/Interface/IRunner.cs | 0 .../FTask}/NTask/Interface/IRunner.cs.meta | 0 .../Core/FTask}/NTask/Interface/ITask.cs | 0 .../Core/FTask}/NTask/Interface/ITask.cs.meta | 0 .../FTask}/NTask/Interface/ITaskCollection.cs | 0 .../NTask/Interface/ITaskCollection.cs.meta | 0 .../Core/FTask}/NTask/Interface/ITaskRun.cs | 0 .../FTask}/NTask/Interface/ITaskRun.cs.meta | 0 .../Runtime/Core/FTask}/NTask/NTask.cs | 0 .../Runtime/Core/FTask}/NTask/NTask.cs.meta | 0 .../Runtime/Core/FTask}/NTask/NTaskStatus.cs | 0 .../Core/FTask}/NTask/NTaskStatus.cs.meta | 0 .../Runtime/Core/FTask}/NTask/Runner.meta | 0 .../FTask}/NTask/Runner/FlushingOperation.cs | 0 .../NTask/Runner/FlushingOperation.cs.meta | 0 .../Core/FTask}/NTask/Runner/Runner.cs | 0 .../Core/FTask}/NTask/Runner/Runner.cs.meta | 0 .../Core/FTask}/NTask/Runner/RunnerProcess.cs | 0 .../FTask}/NTask/Runner/RunnerProcess.cs.meta | 0 .../Runtime/Core/FTask/Task.meta | 0 .../Runtime/Core/FTask/Task/FTask.cs | 2 +- .../Runtime/Core/FTask/Task/FTask.cs.meta | 0 .../Runtime/Core/FTask/Task/FTaskCompleted.cs | 2 +- .../Core/FTask/Task/FTaskCompleted.cs.meta | 0 .../Runtime/Core/FTask/Task/FVoid.cs | 2 +- .../Runtime/Core/FTask/Task/FVoid.cs.meta | 0 .../Runtime/Core/Helper.meta | 0 .../NBC/Runtime/Core/Helper/ByteHelper.cs | 344 ++++++ .../Runtime/Core/Helper/ByteHelper.cs.meta | 0 .../Runtime/Core/Helper/Download.meta | 0 .../Runtime/Core/Helper/Download/ADownload.cs | 6 +- .../Core/Helper/Download/ADownload.cs.meta | 0 .../Runtime/Core/Helper/Download/Download.cs | 6 +- .../Core/Helper/Download/Download.cs.meta | 0 .../Helper/Download/DownloadAssetBundle.cs | 6 +- .../Download/DownloadAssetBundle.cs.meta | 0 .../Core/Helper/Download/DownloadAudioClip.cs | 7 +- .../Helper/Download/DownloadAudioClip.cs.meta | 0 .../Core/Helper/Download/DownloadByte.cs | 6 +- .../Core/Helper/Download/DownloadByte.cs.meta | 0 .../Core/Helper/Download/DownloadSprite.cs | 6 +- .../Helper/Download/DownloadSprite.cs.meta | 0 .../Core/Helper/Download/DownloadText.cs | 8 +- .../Core/Helper/Download/DownloadText.cs.meta | 0 .../Core/Helper/Download/DownloadTexture.cs | 8 +- .../Helper/Download/DownloadTexture.cs.meta | 0 .../Runtime/Core/Helper/EncryptHelper.cs | 10 +- .../Runtime/Core/Helper/EncryptHelper.cs.meta | 0 .../Runtime/Core/Helper/FileHelper.cs | 5 +- .../Runtime/Core/Helper/FileHelper.cs.meta | 0 .../NBC/Runtime/Core/Helper/HashCodeHelper.cs | 143 +++ .../Core/Helper/HashCodeHelper.cs.meta | 0 .../Runtime/Core/Helper/HttpClient.meta | 0 .../Helper/HttpClient/HttpClientHelper.cs | 9 +- .../HttpClient/HttpClientHelper.cs.meta | 0 .../Core/Helper/HttpClient/HttpClientPool.cs | 2 +- .../Helper/HttpClient/HttpClientPool.cs.meta | 0 .../Core/Helper/HttpClient/IJsonRpcRequest.cs | 4 +- .../Helper/HttpClient/IJsonRpcRequest.cs.meta | 0 .../Runtime/Core/Helper/JsonHelper.cs | 2 +- .../Runtime/Core/Helper/JsonHelper.cs.meta | 0 .../Runtime/Core/Helper/NetworkHelper.cs | 166 ++- .../Runtime/Core/Helper/NetworkHelper.cs.meta | 0 .../Runtime/Core/Helper/RandomHelper.cs | 111 +- .../Runtime/Core/Helper/RandomHelper.cs.meta | 0 .../Runtime/Core/Helper/RandomHelperWebgl.cs | 0 .../Core/Helper/RandomHelperWebgl.cs.meta | 0 .../Runtime/Core/Helper/SocketHelper.cs | 6 +- .../Runtime/Core/Helper/SocketHelper.cs.meta | 0 .../Runtime/Core/Helper/TimeHelper.cs | 15 +- .../Runtime/Core/Helper/TimeHelper.cs.meta | 0 .../Runtime/Core/Helper/UnityWebRequest.meta | 0 .../UnityWebRequest/UnityWebRequestHelper.cs | 8 +- .../UnityWebRequestHelper.cs.meta | 0 .../Runtime/Core/Helper/WebSocketHelper.cs | 2 +- .../Core/Helper/WebSocketHelper.cs.meta | 0 .../Runtime/Core/Helper/WinPeriod.cs | 2 +- .../Runtime/Core/Helper/WinPeriod.cs.meta | 0 .../Runtime/Core/IdFactory.meta | 0 .../Runtime/Core/IdFactory/Default.meta | 0 .../Core/IdFactory/Default/EntityIdStruct.cs | 33 +- .../IdFactory/Default/EntityIdStruct.cs.meta | 0 .../Core/IdFactory/Default/RuntimeIdStruct.cs | 138 +++ .../IdFactory/Default/RuntimeIdStruct.cs.meta | 0 .../Runtime/Core/IdFactory/IdFactoryHelper.cs | 20 +- .../Core/IdFactory/IdFactoryHelper.cs.meta | 0 .../Runtime/Core/IdFactory/IdFactoryType.cs | 2 +- .../Core/IdFactory/IdFactoryType.cs.meta | 0 .../Runtime/Core/IdFactory/Interface.meta | 0 .../Core/IdFactory/Interface/IIdFactory.cs | 4 +- .../IdFactory/Interface/IIdFactory.cs.meta | 0 .../IdFactory/Interface/IIdFactoryTool.cs | 27 + .../Interface/IIdFactoryTool.cs.meta | 0 .../Runtime/Core/IdFactory/World.meta | 0 .../IdFactory/World/WorldEntityIdFactory.cs | 34 +- .../World/WorldEntityIdFactory.cs.meta | 0 .../IdFactory/World/WorldRuntimeIdFactory.cs | 155 +++ .../World/WorldRuntimeIdFactory.cs.meta | 0 .../Runtime/Core/InnerErrorCode.cs | 2 +- .../Runtime/Core/InnerErrorCode.cs.meta | 0 .../Runtime/Core/Log.meta | 0 .../Runtime/Core/Log/ILog.cs | 12 +- .../Runtime/Core/Log/ILog.cs.meta | 0 .../Runtime/Core/Log/Log.cs | 27 +- .../Runtime/Core/Log/Log.cs.meta | 0 .../Runtime/Core/Log/UnityLog.cs | 4 +- .../Runtime/Core/Log/UnityLog.cs.meta | 0 .../Runtime/Core/LowLevel.meta} | 2 +- .../NBC/Runtime/Core/LowLevel/FixedBytes.cs | 105 ++ .../Runtime/Core/LowLevel/FixedBytes.cs.meta | 11 + .../NBC/Runtime/Core/LowLevel/XxHash.cs | 171 +++ .../NBC/Runtime/Core/LowLevel/XxHash.cs.meta | 11 + .../Runtime/Core/Network.meta | 0 .../Core/Network/MemoryStreamBufferPool.cs | 5 +- .../Network/MemoryStreamBufferPool.cs.meta | 0 .../Runtime/Core/Network/Message.meta | 0 .../Core/Network/Message/Dispatcher.meta | 0 .../Network/Message/Dispatcher/Interface.meta | 0 .../Dispatcher/Interface/IMessageHandler.cs | 12 +- .../Interface/IMessageHandler.cs.meta | 0 .../Interface/IRouteMessageHandler.cs | 24 +- .../Interface/IRouteMessageHandler.cs.meta | 0 .../Dispatcher/MessageDispatcherComponent.cs | 337 +++++ .../MessageDispatcherComponent.cs.meta | 0 .../Runtime/Core/Network/Message/IMessage.cs | 47 +- .../Core/Network/Message/IMessage.cs.meta | 0 .../Core/Network/Message/InnerMessage.cs | 41 +- .../Core/Network/Message/InnerMessage.cs.meta | 0 .../Core/Network/Message/PacketParser.meta | 0 .../Network/Message/PacketParser/Handler.meta | 0 .../Handler/BufferPacketParser.cs | 199 ++- .../Handler/BufferPacketParser.cs.meta | 0 .../Handler/CircularBufferPacketParser.cs | 0 .../CircularBufferPacketParser.cs.meta | 0 .../Handler/OuterBufferPacketParserHelper.cs | 27 +- .../OuterBufferPacketParserHelper.cs.meta | 0 .../Handler/ReadOnlyMemoryPacketParser.cs | 249 ++-- .../ReadOnlyMemoryPacketParser.cs.meta | 0 .../Message/PacketParser/Interface.meta | 0 .../PacketParser/Interface/APackInfo.cs | 8 +- .../PacketParser/Interface/APackInfo.cs.meta | 0 .../PacketParser/Interface/APacketParser.cs | 8 +- .../Interface/APacketParser.cs.meta | 0 .../Network/Message/PacketParser/OpCode.cs | 125 ++ .../Message/PacketParser/OpCode.cs.meta | 0 .../Network/Message/PacketParser/Pack.meta | 0 .../PacketParser/Pack/InnerPackInfo.cs | 16 +- .../PacketParser/Pack/InnerPackInfo.cs.meta | 0 .../PacketParser/Pack/OuterPackInfo.cs | 10 +- .../PacketParser/Pack/OuterPackInfo.cs.meta | 0 .../PacketParser/Pack/ProcessPackInfo.cs | 23 +- .../PacketParser/Pack/ProcessPackInfo.cs.meta | 0 .../Network/Message/PacketParser/Packet.cs | 6 +- .../Message/PacketParser/Packet.cs.meta | 0 .../PacketParser/PacketParserFactory.cs | 8 +- .../PacketParser/PacketParserFactory.cs.meta | 0 .../Core/Network/Message/Scheduler.meta | 0 .../Scheduler/ClientMessageScheduler.cs | 10 +- .../Scheduler/ClientMessageScheduler.cs.meta | 0 .../Scheduler/InnerMessageScheduler.cs | 13 +- .../Scheduler/InnerMessageScheduler.cs.meta | 0 .../Network/Message/Scheduler/Interface.meta | 0 .../Interface/ANetworkMessageScheduler.cs | 11 +- .../ANetworkMessageScheduler.cs.meta | 0 .../Message/Scheduler/MessageHelper.meta | 0 .../Scheduler/MessageHelper/MessageSender.cs | 8 +- .../MessageHelper/MessageSender.cs.meta | 0 .../NetworkMessagingComponent.cs | 22 +- .../NetworkMessagingComponent.cs.meta | 0 .../OnNetworkMessageUpdateCheckTimeout.cs | 3 +- ...OnNetworkMessageUpdateCheckTimeout.cs.meta | 0 .../Scheduler/OuterMessageScheduler.cs | 44 +- .../Scheduler/OuterMessageScheduler.cs.meta | 0 .../Runtime/Core/Network/Protocol.meta | 0 .../Core/Network/Protocol/Exception.meta | 0 .../Protocol/Exception/ScanException.cs | 2 +- .../Protocol/Exception/ScanException.cs.meta | 0 .../Runtime/Core/Network/Protocol/HTTP.meta | 0 .../Protocol/HTTP/HTTPServerNetwork.cs | 40 +- .../Protocol/HTTP/HTTPServerNetwork.cs.meta | 0 .../Protocol/HTTP/SceneContextFilter.cs | 0 .../Protocol/HTTP/SceneContextFilter.cs.meta | 0 .../Core/Network/Protocol/Interface.meta | 0 .../Protocol/Interface/AClientNetwork.cs | 6 +- .../Protocol/Interface/AClientNetwork.cs.meta | 0 .../Network/Protocol/Interface/ANetwork.cs | 10 +- .../Protocol/Interface/ANetwork.cs.meta | 0 .../Interface/ANetworkServerChannel.cs | 2 +- .../Interface/ANetworkServerChannel.cs.meta | 0 .../Protocol/Interface/INetworkChannel.cs | 6 +- .../Interface/INetworkChannel.cs.meta | 0 .../Runtime/Core/Network/Protocol/KCP.meta | 0 .../Core/Network/Protocol/KCP/Base.meta | 0 .../Core/Network/Protocol/KCP/Base/Kcp.cs | 4 +- .../Network/Protocol/KCP/Base/Kcp.cs.meta | 0 .../Core/Network/Protocol/KCP/Base/c.meta | 0 .../Core/Network/Protocol/KCP/Base/c/kcp.cs | 76 +- .../Network/Protocol/KCP/Base/c/kcp.cs.meta | 0 .../Network/Protocol/KCP/Base/define.meta | 0 .../Protocol/KCP/Base/define/system.cs | 14 +- .../Protocol/KCP/Base/define/system.cs.meta | 0 .../Network/Protocol/KCP/Base/include.meta | 0 .../Network/Protocol/KCP/Base/include/kcp.cs | 10 +- .../Protocol/KCP/Base/include/kcp.cs.meta | 0 .../Core/Network/Protocol/KCP/Client.meta | 0 .../Protocol/KCP/Client/KCPClientNetwork.cs | 41 +- .../KCP/Client/KCPClientNetwork.cs.meta | 0 .../Core/Network/Protocol/KCP/KCPSettings.cs | 26 +- .../Network/Protocol/KCP/KCPSettings.cs.meta | 0 .../Core/Network/Protocol/KCP/KcpHeader.cs | 6 +- .../Network/Protocol/KCP/KcpHeader.cs.meta | 0 .../Core/Network/Protocol/KCP/Server.meta | 0 .../KCP/Server/KCPServerNetworkByArrayPool.cs | 0 .../KCPServerNetworkByArrayPool.cs.meta | 0 .../KCP/Server/KCPServerNetworkByPipe.cs | 6 +- .../KCP/Server/KCPServerNetworkByPipe.cs.meta | 0 .../KCP/Server/KCPServerNetworkChannel.cs | 8 +- .../Server/KCPServerNetworkChannel.cs.meta | 0 .../Protocol/NetworkProtocolFactory.cs | 16 +- .../Protocol/NetworkProtocolFactory.cs.meta | 0 .../Network/Protocol/NetworkProtocolType.cs | 2 +- .../Protocol/NetworkProtocolType.cs.meta | 0 .../Protocol/NetworkThreadComponent.cs | 5 +- .../Protocol/NetworkThreadComponent.cs.meta | 0 .../Runtime/Core/Network/Protocol/TCP.meta | 0 .../Core/Network/Protocol/TCP/Client.meta | 0 .../Protocol/TCP/Client/TCPClientNetwork.cs | 21 +- .../TCP/Client/TCPClientNetwork.cs.meta | 0 .../Core/Network/Protocol/TCP/Server.meta | 0 .../Protocol/TCP/Server/TCPServerNetwork.cs | 0 .../TCP/Server/TCPServerNetwork.cs.meta | 0 .../TCP/Server/TCPServerNetworkChannel.cs | 4 +- .../Server/TCPServerNetworkChannel.cs.meta | 0 .../Core/Network/Protocol/WebSocket.meta | 0 .../Network/Protocol/WebSocket/Client.meta | 0 .../Client/WebSocketClientNetwork.cs | 35 +- .../Client/WebSocketClientNetwork.cs.meta | 0 .../Client/WebSocketClientNetworkWebgl.cs | 16 +- .../WebSocketClientNetworkWebgl.cs.meta | 0 .../Network/Protocol/WebSocket/Server.meta | 0 .../Server/WebSocketServerNetwork.cs | 61 +- .../Server/WebSocketServerNetwork.cs.meta | 0 .../Server/WebSocketServerNetworkChannel.cs | 36 +- .../WebSocketServerNetworkChannel.cs.meta | 0 .../Runtime/Core/Network/Roaming.meta | 0 .../Core/Network/Roaming/Component.meta | 0 .../Roaming/Component/RoamingComponent.cs | 0 .../Component/RoamingComponent.cs.meta | 0 .../Component/SessionRoamingComponent.cs | 118 +- .../Component/SessionRoamingComponent.cs.meta | 0 .../Component/SessionRoamingFlgComponent.cs | 0 .../SessionRoamingFlgComponent.cs.meta | 0 .../Roaming/Component/TerminusComponent.cs | 0 .../Component/TerminusComponent.cs.meta | 0 .../Runtime/Core/Network/Roaming/Entity.meta | 0 .../Core/Network/Roaming/Entity/Roaming.cs | 0 .../Network/Roaming/Entity/Roaming.cs.meta | 0 .../Core/Network/Roaming/Entity/Terminus.cs | 12 +- .../Network/Roaming/Entity/Terminus.cs.meta | 0 .../Runtime/Core/Network/Roaming/Handler.meta | 0 .../Handler/I_GetTerminusIdRequestHandler.cs | 0 .../I_GetTerminusIdRequestHandler.cs.meta | 0 .../Handler/I_LinkRoamingRequestHandler.cs | 0 .../I_LinkRoamingRequestHandler.cs.meta | 0 .../Handler/I_LockTerminusIdRequestHandler.cs | 0 .../I_LockTerminusIdRequestHandler.cs.meta | 0 .../I_TransferTerminusRequestHandler.cs | 0 .../I_TransferTerminusRequestHandler.cs.meta | 0 .../Handler/I_UnLinkRoamingRequestHandler.cs | 0 .../I_UnLinkRoamingRequestHandler.cs.meta | 0 .../I_UnLockTerminusIdRequestHandler.cs | 0 .../I_UnLockTerminusIdRequestHandler.cs.meta | 0 .../Runtime/Core/Network/Route.meta | 0 .../Core/Network/Route/RouteComponent.cs | 6 +- .../Core/Network/Route/RouteComponent.cs.meta | 0 .../Runtime/Core/Network/Session.meta | 0 .../Core/Network/Session/Component.meta | 0 .../ConsoleSessionHeartbeatComponent.cs | 0 .../ConsoleSessionHeartbeatComponent.cs.meta | 0 .../Component/SessionIdleCheckerComponent.cs | 28 +- .../SessionIdleCheckerComponent.cs.meta | 0 .../UnitySessionHeartbeatComponent.cs | 61 +- .../UnitySessionHeartbeatComponent.cs.meta | 0 .../Core/Network/Session/ProcessSession.meta | 0 .../ProcessSession/ProcessScheduler.cs | 38 +- .../ProcessSession/ProcessScheduler.cs.meta | 0 .../Session/ProcessSession/ProcessSession.cs | 53 +- .../ProcessSession/ProcessSession.cs.meta | 0 .../ProcessSession/ProcessSessionInfo.cs | 2 +- .../ProcessSession/ProcessSessionInfo.cs.meta | 0 .../Runtime/Core/Network/Session/Session.cs | 112 +- .../Core/Network/Session/Session.cs.meta | 0 .../Runtime/Core/Platform.meta | 0 .../Runtime/Core/Platform/Unity.meta | 0 .../Runtime/Core/Platform/Unity/AppDefine.cs | 6 +- .../Core/Platform/Unity/AppDefine.cs.meta | 0 .../Core/Platform/Unity/Attributes.meta | 0 .../Attributes/BsonDefaultValueAttribute.cs | 2 - .../BsonDefaultValueAttribute.cs.meta | 0 .../Unity/Attributes/BsonElementAttribute.cs | 4 +- .../Attributes/BsonElementAttribute.cs.meta | 0 .../Unity/Attributes/BsonIdAttribute.cs | 4 +- .../Unity/Attributes/BsonIdAttribute.cs.meta | 0 .../Unity/Attributes/BsonIgnoreAttribute.cs | 4 +- .../Attributes/BsonIgnoreAttribute.cs.meta | 0 .../BsonIgnoreIfDefaultAttribute.cs | 4 +- .../BsonIgnoreIfDefaultAttribute.cs.meta | 0 .../Attributes/BsonIgnoreIfNullAttribute.cs | 4 +- .../BsonIgnoreIfNullAttribute.cs.meta | 0 .../Runtime/Core/Platform/Unity/Entry.cs | 28 +- .../Runtime/Core/Platform/Unity/Entry.cs.meta | 0 .../Runtime/Core/Platform/Unity/Temp.cs | 0 .../Runtime/Core/Platform/Unity/Temp.cs.meta | 0 .../Unity}/ThreadSynchronizationContext.cs | 18 +- .../ThreadSynchronizationContext.cs.meta | 0 .../Runtime/Core/Pool.meta | 0 .../Runtime/Core/Pool/Concurrent.meta | 0 .../Core/Pool/Concurrent/MultiThreadPool.cs | 2 +- .../Pool/Concurrent/MultiThreadPool.cs.meta | 0 .../Pool/Concurrent/MultiThreadPoolQueue.cs | 2 +- .../Concurrent/MultiThreadPoolQueue.cs.meta | 0 .../Runtime/Core/Pool/Interface.meta | 0 .../Runtime/Core/Pool/Interface/IPool.cs | 2 +- .../Runtime/Core/Pool/Interface/IPool.cs.meta | 0 .../Runtime/Core/Pool/Normal.meta | 0 .../Runtime/Core/Pool/Normal/Pool.cs | 2 +- .../Runtime/Core/Pool/Normal/Pool.cs.meta | 0 .../Runtime/Core/Pool/Normal/PoolCore.cs | 19 +- .../Runtime/Core/Pool/Normal/PoolCore.cs.meta | 0 .../Core/Pool/Normal/PoolWithDisposable.cs | 2 +- .../Pool/Normal/PoolWithDisposable.cs.meta | 0 .../Runtime/Core/Pool/PoolHelper.cs | 5 +- .../Runtime/Core/Pool/PoolHelper.cs.meta | 0 .../Runtime/Core/Scene.meta | 0 .../NBC/Runtime/Core/Scene/ISceneUpdate.cs | 15 + .../Runtime/Core/Scene/ISceneUpdate.cs.meta | 0 .../Runtime/Core/Scene/Scene.cs | 341 +----- .../Runtime/Core/Scene/Scene.cs.meta | 0 .../Runtime/Core/Scene/SceneRuntimeMode.cs | 2 +- .../Core/Scene/SceneRuntimeMode.cs.meta | 0 .../Runtime/Core/Scene/SceneRuntimeType.cs | 2 +- .../Core/Scene/SceneRuntimeType.cs.meta | 0 .../Runtime/Core/Scene/Scheduler.meta | 0 .../Core/Scene/Scheduler/ISceneScheduler.cs | 2 +- .../Scene/Scheduler/ISceneScheduler.cs.meta | 0 .../Core/Scene/Scheduler/MainScheduler.cs | 32 +- .../Scene/Scheduler/MainScheduler.cs.meta | 0 .../Scene/Scheduler/MultiThreadScheduler.cs | 2 +- .../Scheduler/MultiThreadScheduler.cs.meta | 0 .../Scene/Scheduler/ThreadPoolScheduler.cs | 24 +- .../Scheduler/ThreadPoolScheduler.cs.meta | 0 .../Core/Scene/Scheduler/ThreadScheduler.cs | 9 +- .../Scene/Scheduler/ThreadScheduler.cs.meta | 0 .../Runtime/Core/Scene/SubScene.cs | 32 +- .../Runtime/Core/Scene/SubScene.cs.meta | 0 .../Runtime/Core/Serialize.meta | 0 .../Runtime/Core/Serialize/BsonPack.meta | 0 .../Serialize/BsonPack/BsonPackHelperUnity.cs | 16 +- .../BsonPack/BsonPackHelperUnity.cs.meta | 0 .../Runtime/Core/Serialize/Interface.meta | 0 .../Core/Serialize/Interface/ASerialize.cs | 40 +- .../Serialize/Interface/ASerialize.cs.meta | 0 .../Core/Serialize/Interface/ISerialize.cs | 15 +- .../Serialize/Interface/ISerialize.cs.meta | 0 .../Core/Serialize/MemoryStreamBuffer.cs | 2 +- .../Core/Serialize/MemoryStreamBuffer.cs.meta | 0 .../Core/Serialize/ProtoBufPackHelper.meta | 0 .../Serialize/ProtoBufPackHelper/IProto.cs | 9 + .../ProtoBufPackHelper/IProto.cs.meta | 11 + .../ProtoBufPackHelperUnity.cs | 40 +- .../ProtoBufPackHelperUnity.cs.meta | 0 .../Core/Serialize/SerializerManager.cs | 54 +- .../Core/Serialize/SerializerManager.cs.meta | 0 .../Runtime/Core/Services.meta} | 2 +- .../Runtime/Core/Services/ISingletonAwake.cs | 22 + .../Core/Services/ISingletonAwake.cs.meta | 3 + .../NBC/Runtime/Core/Services/MonoManager.cs | 85 ++ .../Runtime/Core/Services/MonoManager.cs.meta | 3 + .../NBC/Runtime/Core/Services/Singleton.cs | 82 ++ .../Runtime/Core/Services/Singleton.cs.meta | 3 + .../NBC/Runtime/Core/Services/TimeInfo.cs | 77 ++ .../Runtime/Core/Services/TimeInfo.cs.meta | 3 + .../NBC/Runtime/Core/Services/Timer.cs | 411 +++++++ .../NBC/Runtime/Core/Services/Timer.cs.meta | 3 + .../NBC/Runtime/Language.meta | 0 .../NBC/Runtime/Language/Const.meta | 0 .../Runtime/Language/Const/LanguageConst.cs | 0 .../Language/Const/LanguageConst.cs.meta | 0 .../NBC/Runtime/Language/Interfaces.meta | 0 .../Runtime/Language/Interfaces/ILanguage.cs | 0 .../Language/Interfaces/ILanguage.cs.meta | 0 .../NBC/Runtime/Language/Lan.cs | 0 .../NBC/Runtime/Language/Lan.cs.meta | 0 .../NBC/Runtime/Language/LanguageComponent.cs | 0 .../Language/LanguageComponent.cs.meta | 0 .../Runtime/Language/LanguageConcrete.meta | 0 .../Language/LanguageConcrete/LanguageFont.cs | 0 .../LanguageConcrete/LanguageFont.cs.meta | 0 .../LanguageConcrete/LanguageImage.cs | 0 .../LanguageConcrete/LanguageImage.cs.meta | 0 .../Language/LanguageConcrete/LanguageText.cs | 0 .../LanguageConcrete/LanguageText.cs.meta | 0 .../NBC/Runtime/Language/LanguageConfig.cs | 0 .../Runtime/Language/LanguageConfig.cs.meta | 0 .../NBC/Runtime/Language/LanguageManager.cs | 0 .../Runtime/Language/LanguageManager.cs.meta | 0 .../{ThirdParty => }/NBC/Runtime/NBC.asmdef | 0 .../NBC/Runtime/NBC.asmdef.meta | 0 .../{ThirdParty => }/NBC/Runtime/Plugins.meta | 0 .../NBC/Runtime/Plugins/FairyGUI.meta | 0 .../Plugins/FairyGUI/Examples~/Bag.meta | 0 .../Plugins/FairyGUI/Examples~/Bag/BagMain.cs | 0 .../FairyGUI/Examples~/Bag/BagMain.cs.meta | 0 .../FairyGUI/Examples~/Bag/BagWindow.cs | 0 .../FairyGUI/Examples~/Bag/BagWindow.cs.meta | 0 .../FairyGUI/Examples~/Bag/IconManager.cs | 0 .../Examples~/Bag/IconManager.cs.meta | 0 .../FairyGUI/Examples~/Bag/MyGLoader.cs | 0 .../FairyGUI/Examples~/Bag/MyGLoader.cs.meta | 0 .../Plugins/FairyGUI/Examples~/Basics.meta | 0 .../FairyGUI/Examples~/Basics/BasicsMain.cs | 0 .../Examples~/Basics/BasicsMain.cs.meta | 0 .../FairyGUI/Examples~/Basics/Window1.cs | 0 .../FairyGUI/Examples~/Basics/Window1.cs.meta | 0 .../FairyGUI/Examples~/Basics/Window2.cs | 0 .../FairyGUI/Examples~/Basics/Window2.cs.meta | 0 .../FairyGUI/Examples~/BundleUsage.meta | 0 .../Examples~/BundleUsage/BundleUsageMain.cs | 0 .../BundleUsage/BundleUsageMain.cs.meta | 0 .../Plugins/FairyGUI/Examples~/Cooldown.meta | 0 .../Examples~/Cooldown/CooldownMain.cs | 0 .../Examples~/Cooldown/CooldownMain.cs.meta | 0 .../Plugins/FairyGUI/Examples~/Curve.meta | 0 .../FairyGUI/Examples~/Curve/CurveMain.cs | 0 .../Examples~/Curve/CurveMain.cs.meta | 0 .../Plugins/FairyGUI/Examples~/CutScene.meta | 0 .../Examples~/CutScene/CutSceneMain.cs | 0 .../Examples~/CutScene/CutSceneMain.cs.meta | 0 .../Examples~/CutScene/LevelManager.cs | 0 .../Examples~/CutScene/LevelManager.cs.meta | 0 .../Plugins/FairyGUI/Examples~/Editor.meta | 0 .../Examples~/Editor/BuildAssetBundles.cs | 0 .../Editor/BuildAssetBundles.cs.meta | 0 .../FairyGUI/Examples~/EmitNumbers.meta | 0 .../Examples~/EmitNumbers/EmitComponent.cs | 0 .../EmitNumbers/EmitComponent.cs.meta | 0 .../Examples~/EmitNumbers/EmitManager.cs | 0 .../Examples~/EmitNumbers/EmitManager.cs.meta | 0 .../Examples~/EmitNumbers/EmitNumbersMain.cs | 0 .../EmitNumbers/EmitNumbersMain.cs.meta | 0 .../Plugins/FairyGUI/Examples~/Emoji.meta | 0 .../FairyGUI/Examples~/Emoji/EmojiMain.cs | 0 .../Examples~/Emoji/EmojiMain.cs.meta | 0 .../FairyGUI/Examples~/Emoji/EmojiParser.cs | 0 .../Examples~/Emoji/EmojiParser.cs.meta | 0 .../Plugins/FairyGUI/Examples~/Extension.meta | 0 .../Examples~/Extension/ExtensionMain.cs | 0 .../Examples~/Extension/ExtensionMain.cs.meta | 0 .../FairyGUI/Examples~/Extension/MailItem.cs | 0 .../Examples~/Extension/MailItem.cs.meta | 0 .../Plugins/FairyGUI/Examples~/Filter.meta | 0 .../FairyGUI/Examples~/Filter/FilterMain.cs | 0 .../Examples~/Filter/FilterMain.cs.meta | 0 .../Plugins/FairyGUI/Examples~/Gesture.meta | 0 .../FairyGUI/Examples~/Gesture/GestureMain.cs | 0 .../Examples~/Gesture/GestureMain.cs.meta | 0 .../Plugins/FairyGUI/Examples~/Guide.meta | 0 .../FairyGUI/Examples~/Guide/GuideMain.cs | 0 .../Examples~/Guide/GuideMain.cs.meta | 0 .../Plugins/FairyGUI/Examples~/HeadBar.meta | 0 .../FairyGUI/Examples~/HeadBar/HeadBarMain.cs | 0 .../Examples~/HeadBar/HeadBarMain.cs.meta | 0 .../Plugins/FairyGUI/Examples~/HitTest.meta | 0 .../FairyGUI/Examples~/HitTest/HitTestMain.cs | 0 .../Examples~/HitTest/HitTestMain.cs.meta | 0 .../Plugins/FairyGUI/Examples~/Joystick.meta | 0 .../Examples~/Joystick/JoystickMain.cs | 0 .../Examples~/Joystick/JoystickMain.cs.meta | 0 .../Examples~/Joystick/JoystickModule.cs | 0 .../Examples~/Joystick/JoystickModule.cs.meta | 0 .../Plugins/FairyGUI/Examples~/LoopList.meta | 0 .../Examples~/LoopList/LoopListMain.cs | 0 .../Examples~/LoopList/LoopListMain.cs.meta | 0 .../FairyGUI/Examples~/ModalWaiting.meta | 0 .../ModalWaiting/ModalWaitingMain.cs | 0 .../ModalWaiting/ModalWaitingMain.cs.meta | 0 .../Examples~/ModalWaiting/Window4.cs | 0 .../Examples~/ModalWaiting/Window4.cs.meta | 0 .../Plugins/FairyGUI/Examples~/Model.meta | 0 .../FairyGUI/Examples~/Model/ModelMain.cs | 0 .../Examples~/Model/ModelMain.cs.meta | 0 .../Plugins/FairyGUI/Examples~/Particles.meta | 0 .../Examples~/Particles/CoolComponent.cs | 0 .../Examples~/Particles/CoolComponent.cs.meta | 0 .../Examples~/Particles/ParticlesMain.cs | 0 .../Examples~/Particles/ParticlesMain.cs.meta | 0 .../FairyGUI/Examples~/Perspetive.meta | 0 .../Examples~/Perspetive/PerspectiveMain.cs | 0 .../Perspetive/PerspectiveMain.cs.meta | 0 .../FairyGUI/Examples~/PullToRefresh.meta | 0 .../PullToRefresh/PullToRefreshMain.cs | 0 .../PullToRefresh/PullToRefreshMain.cs.meta | 0 .../PullToRefresh/ScrollPaneHeader.cs | 0 .../PullToRefresh/ScrollPaneHeader.cs.meta | 0 .../FairyGUI/Examples~/RenderTexture.meta | 0 .../Examples~/RenderTexture/RenderImage.cs | 0 .../RenderTexture/RenderImage.cs.meta | 0 .../RenderTexture/RenderTextureMain.cs | 0 .../RenderTexture/RenderTextureMain.cs.meta | 0 .../Examples~/RenderTexture/Window3.cs | 0 .../Examples~/RenderTexture/Window3.cs.meta | 0 .../Plugins/FairyGUI/Examples~/Resources.meta | 0 .../Examples~/Resources/Cooldown.meta | 0 .../Examples~/Resources/Cooldown/k0.png | Bin .../Examples~/Resources/Cooldown/k0.png.meta | 0 .../Examples~/Resources/Cooldown/k1.png | Bin .../Examples~/Resources/Cooldown/k1.png.meta | 0 .../FairyGUI/Examples~/Resources/Curve.meta | 0 .../Resources/Curve/New Material.mat | 0 .../Resources/Curve/New Material.mat.meta | 0 .../Examples~/Resources/Curve/aomian.FBX | Bin .../Examples~/Resources/Curve/aomian.FBX.meta | 0 .../Examples~/Resources/EffectExamples.meta | 0 .../EffectExamples/FireExplosionEffects.meta | 0 .../FireExplosionEffects/Materials.meta | 0 .../Materials/EmbersParticle.mat | 0 .../Materials/EmbersParticle.mat.meta | 0 .../Materials/FlameRoundYellowParticle.mat | 0 .../FlameRoundYellowParticle.mat.meta | 0 .../FireExplosionEffects/Textures.meta | 0 .../Textures/FlameRoundParticleSheet.tif | Bin .../Textures/FlameRoundParticleSheet.tif.meta | 0 .../Resources/EffectExamples/Shared.meta | 0 .../EffectExamples/Shared/Prefabs.meta | 0 .../Shared/Prefabs/ParticlesLight.prefab | 0 .../Shared/Prefabs/ParticlesLight.prefab.meta | 0 .../FairyGUI/Examples~/Resources/Flame.prefab | 0 .../Examples~/Resources/Flame.prefab.meta | 0 .../FairyGUI/Examples~/Resources/Fonts.meta | 0 .../Resources/Fonts/LiberationSans SDF.asset | 0 .../Fonts/LiberationSans SDF.asset.meta | 0 .../Resources/Fonts/LiberationSans.ttf | Bin .../Resources/Fonts/LiberationSans.ttf.meta | 0 .../Examples~/Resources/Fonts/afont.ttf | Bin .../Examples~/Resources/Fonts/afont.ttf.meta | 0 .../FairyGUI/Examples~/Resources/Gesture.meta | 0 .../Resources/Gesture/Globe Material.mat | 0 .../Resources/Gesture/Globe Material.mat.meta | 0 .../Examples~/Resources/Gesture/globe.png | Bin .../Resources/Gesture/globe.png.meta | 0 .../FairyGUI/Examples~/Resources/Icons.meta | 0 .../FairyGUI/Examples~/Resources/Icons/i0.png | Bin .../Examples~/Resources/Icons/i0.png.meta | 0 .../FairyGUI/Examples~/Resources/Icons/i1.png | Bin .../Examples~/Resources/Icons/i1.png.meta | 0 .../FairyGUI/Examples~/Resources/Icons/i2.png | Bin .../Examples~/Resources/Icons/i2.png.meta | 0 .../FairyGUI/Examples~/Resources/Icons/i3.png | Bin .../Examples~/Resources/Icons/i3.png.meta | 0 .../FairyGUI/Examples~/Resources/Icons/i4.png | Bin .../Examples~/Resources/Icons/i4.png.meta | 0 .../FairyGUI/Examples~/Resources/Icons/i5.png | Bin .../Examples~/Resources/Icons/i5.png.meta | 0 .../FairyGUI/Examples~/Resources/Icons/i6.png | Bin .../Examples~/Resources/Icons/i6.png.meta | 0 .../FairyGUI/Examples~/Resources/Icons/i7.png | Bin .../Examples~/Resources/Icons/i7.png.meta | 0 .../FairyGUI/Examples~/Resources/Icons/i8.png | Bin .../Examples~/Resources/Icons/i8.png.meta | 0 .../FairyGUI/Examples~/Resources/Icons/i9.png | Bin .../Examples~/Resources/Icons/i9.png.meta | 0 .../Examples~/Resources/RenderTexture.meta | 0 .../Resources/RenderTexture/FullScreen.shader | 0 .../RenderTexture/FullScreen.shader.meta | 0 .../RenderTexture/RenderImageCamera.prefab | 0 .../RenderImageCamera.prefab.meta | 0 .../FairyGUI/Examples~/Resources/Role.meta | 0 .../Examples~/Resources/Role/Materials.meta | 0 .../Role/Materials/Role-Diffuse.shader | 0 .../Role/Materials/Role-Diffuse.shader.meta | 0 .../Resources/Role/Materials/U1NPC0040.mat | 0 .../Role/Materials/U1NPC0040.mat.meta | 0 .../Resources/Role/Materials/U1NPC0041.mat | 0 .../Role/Materials/U1NPC0041.mat.meta | 0 .../Examples~/Resources/Role/Textures.meta | 0 .../Resources/Role/Textures/U1NPC0040.tga | Bin .../Role/Textures/U1NPC0040.tga.meta | 0 .../Resources/Role/npc-with-hud.prefab | 0 .../Resources/Role/npc-with-hud.prefab.meta | 0 .../Examples~/Resources/Role/npc.prefab | 0 .../Examples~/Resources/Role/npc.prefab.meta | 0 .../Examples~/Resources/Role/npc2.FBX | Bin .../Examples~/Resources/Role/npc2.FBX.meta | 0 .../Examples~/Resources/Role/npc3.prefab | 0 .../Examples~/Resources/Role/npc3.prefab.meta | 0 .../Examples~/Resources/Role/npcs.FBX | Bin .../Examples~/Resources/Role/npcs.FBX.meta | 0 .../Examples~/Resources/Role/test.prefab | 0 .../Examples~/Resources/Role/test.prefab.meta | 0 .../FairyGUI/Examples~/Resources/UI.meta | 0 .../Examples~/Resources/UI/Bag_atlas0.png | Bin .../Resources/UI/Bag_atlas0.png.meta | 0 .../Examples~/Resources/UI/Bag_fui.bytes | Bin .../Examples~/Resources/UI/Bag_fui.bytes.meta | 0 .../Examples~/Resources/UI/Basics_atlas0.png | Bin .../Resources/UI/Basics_atlas0.png.meta | 0 .../Examples~/Resources/UI/Basics_fui.bytes | Bin .../Resources/UI/Basics_fui.bytes.meta | 0 .../Examples~/Resources/UI/Basics_gojg7u.wav | Bin .../Resources/UI/Basics_gojg7u.wav.meta | 0 .../Examples~/Resources/UI/Basics_o4lt7w.wav | Bin .../Resources/UI/Basics_o4lt7w.wav.meta | 0 .../Resources/UI/BundleUsage_atlas0.png | Bin .../Resources/UI/BundleUsage_atlas0.png.meta | 0 .../Resources/UI/BundleUsage_fui.bytes | Bin .../Resources/UI/BundleUsage_fui.bytes.meta | 0 .../Resources/UI/Cooldown_atlas0.png | Bin .../Resources/UI/Cooldown_atlas0.png.meta | 0 .../Examples~/Resources/UI/Cooldown_fui.bytes | Bin .../Resources/UI/Cooldown_fui.bytes.meta | 0 .../Examples~/Resources/UI/Curve_atlas0.png | Bin .../Resources/UI/Curve_atlas0.png.meta | 0 .../Examples~/Resources/UI/Curve_fui.bytes | Bin .../Resources/UI/Curve_fui.bytes.meta | 0 .../Resources/UI/CutScene_atlas0.png | Bin .../Resources/UI/CutScene_atlas0.png.meta | 0 .../Examples~/Resources/UI/CutScene_fui.bytes | Bin .../Resources/UI/CutScene_fui.bytes.meta | 0 .../Resources/UI/EmitNumbers_atlas0.png | Bin .../Resources/UI/EmitNumbers_atlas0.png.meta | 0 .../Resources/UI/EmitNumbers_fui.bytes | Bin .../Resources/UI/EmitNumbers_fui.bytes.meta | 0 .../Examples~/Resources/UI/Emoji_atlas0.png | Bin .../Resources/UI/Emoji_atlas0.png.meta | 0 .../Examples~/Resources/UI/Emoji_fui.bytes | Bin .../Resources/UI/Emoji_fui.bytes.meta | 0 .../Resources/UI/Extension_atlas0.png | Bin .../Resources/UI/Extension_atlas0.png.meta | 0 .../Resources/UI/Extension_fui.bytes | Bin .../Resources/UI/Extension_fui.bytes.meta | 0 .../Examples~/Resources/UI/Filter_atlas0.png | Bin .../Resources/UI/Filter_atlas0.png.meta | 0 .../Examples~/Resources/UI/Filter_fui.bytes | Bin .../Resources/UI/Filter_fui.bytes.meta | 0 .../Examples~/Resources/UI/Gesture_fui.bytes | Bin .../Resources/UI/Gesture_fui.bytes.meta | 0 .../Examples~/Resources/UI/Guide_atlas0.png | Bin .../Resources/UI/Guide_atlas0.png.meta | 0 .../Examples~/Resources/UI/Guide_fui.bytes | Bin .../Resources/UI/Guide_fui.bytes.meta | 0 .../Examples~/Resources/UI/HeadBar_atlas0.png | Bin .../Resources/UI/HeadBar_atlas0.png.meta | 0 .../Examples~/Resources/UI/HeadBar_fui.bytes | Bin .../Resources/UI/HeadBar_fui.bytes.meta | 0 .../Examples~/Resources/UI/HitTest_atlas0.png | Bin .../Resources/UI/HitTest_atlas0.png.meta | 0 .../Examples~/Resources/UI/HitTest_fui.bytes | Bin .../Resources/UI/HitTest_fui.bytes.meta | 0 .../Resources/UI/Joystick_atlas0.png | Bin .../Resources/UI/Joystick_atlas0.png.meta | 0 .../Examples~/Resources/UI/Joystick_fui.bytes | Bin .../Resources/UI/Joystick_fui.bytes.meta | 0 .../Resources/UI/LoopList_atlas0.png | Bin .../Resources/UI/LoopList_atlas0.png.meta | 0 .../Examples~/Resources/UI/LoopList_fui.bytes | Bin .../Resources/UI/LoopList_fui.bytes.meta | 0 .../Resources/UI/ModalWaiting_atlas0.png | Bin .../Resources/UI/ModalWaiting_atlas0.png.meta | 0 .../Resources/UI/ModalWaiting_fui.bytes | Bin .../Resources/UI/ModalWaiting_fui.bytes.meta | 0 .../Examples~/Resources/UI/Model_atlas0.png | Bin .../Resources/UI/Model_atlas0.png.meta | 0 .../Examples~/Resources/UI/Model_fui.bytes | Bin .../Resources/UI/Model_fui.bytes.meta | 0 .../Resources/UI/Particles_atlas0.png | Bin .../Resources/UI/Particles_atlas0.png.meta | 0 .../Resources/UI/Particles_fui.bytes | Bin .../Resources/UI/Particles_fui.bytes.meta | 0 .../Resources/UI/Perspective_atlas0.png | Bin .../Resources/UI/Perspective_atlas0.png.meta | 0 .../Resources/UI/Perspective_fui.bytes | Bin .../Resources/UI/Perspective_fui.bytes.meta | 0 .../Resources/UI/PullToRefresh_atlas0.png | Bin .../UI/PullToRefresh_atlas0.png.meta | 0 .../Resources/UI/PullToRefresh_fui.bytes | Bin .../Resources/UI/PullToRefresh_fui.bytes.meta | 0 .../Resources/UI/RenderTexture_atlas0.png | Bin .../UI/RenderTexture_atlas0.png.meta | 0 .../Resources/UI/RenderTexture_fui.bytes | Bin .../Resources/UI/RenderTexture_fui.bytes.meta | 0 .../Resources/UI/ScrollPane_atlas0.png | Bin .../Resources/UI/ScrollPane_atlas0.png.meta | 0 .../Resources/UI/ScrollPane_fui.bytes | Bin .../Resources/UI/ScrollPane_fui.bytes.meta | 0 .../Resources/UI/TextMeshPro_atlas0.png | Bin .../Resources/UI/TextMeshPro_atlas0.png.meta | 0 .../Resources/UI/TextMeshPro_fui.bytes | Bin .../Resources/UI/TextMeshPro_fui.bytes.meta | 0 .../Resources/UI/Transition_atlas0.png | Bin .../Resources/UI/Transition_atlas0.png.meta | 0 .../Resources/UI/Transition_fui.bytes | Bin .../Resources/UI/Transition_fui.bytes.meta | 0 .../Resources/UI/Transition_gkq03.wav | Bin .../Resources/UI/Transition_gkq03.wav.meta | 0 .../Resources/UI/TreeView_atlas0.png | Bin .../Resources/UI/TreeView_atlas0.png.meta | 0 .../Examples~/Resources/UI/TreeView_fui.bytes | Bin .../Resources/UI/TreeView_fui.bytes.meta | 0 .../Resources/UI/TurnCard_atlas0.png | Bin .../Resources/UI/TurnCard_atlas0.png.meta | 0 .../Examples~/Resources/UI/TurnCard_fui.bytes | Bin .../Resources/UI/TurnCard_fui.bytes.meta | 0 .../Resources/UI/TurnPage_atlas0.png | Bin .../Resources/UI/TurnPage_atlas0.png.meta | 0 .../Examples~/Resources/UI/TurnPage_fui.bytes | Bin .../Resources/UI/TurnPage_fui.bytes.meta | 0 .../Resources/UI/TypingEffect_atlas0.png | Bin .../Resources/UI/TypingEffect_atlas0.png.meta | 0 .../Resources/UI/TypingEffect_fui.bytes | Bin .../Resources/UI/TypingEffect_fui.bytes.meta | 0 .../Resources/UI/VirtualList_atlas0.png | Bin .../Resources/UI/VirtualList_atlas0.png.meta | 0 .../Resources/UI/VirtualList_fui.bytes | Bin .../Resources/UI/VirtualList_fui.bytes.meta | 0 .../Plugins/FairyGUI/Examples~/Scenes.meta | 0 .../Scenes/Example 01 - Basics.unity | 0 .../Scenes/Example 01 - Basics.unity.meta | 0 .../Examples~/Scenes/Example 02 - Bag.unity | 0 .../Scenes/Example 02 - Bag.unity.meta | 0 .../Scenes/Example 03 - CoolDown.unity | 0 .../Scenes/Example 03 - CoolDown.unity.meta | 0 .../Examples~/Scenes/Example 04 - Emoji.unity | 0 .../Scenes/Example 04 - Emoji.unity.meta | 0 .../Scenes/Example 05 - Joystick.unity | 0 .../Scenes/Example 05 - Joystick.unity.meta | 0 .../Scenes/Example 06 - HeadBar.unity | 0 .../Scenes/Example 06 - HeadBar.unity.meta | 0 .../Scenes/Example 07 - EmitNumbers.unity | 0 .../Example 07 - EmitNumbers.unity.meta | 0 .../Scenes/Example 08 - Transition.unity | 0 .../Scenes/Example 08 - Transition.unity.meta | 0 .../Scenes/Example 09 - Extension.unity | 0 .../Scenes/Example 09 - Extension.unity.meta | 0 .../Scenes/Example 10 - ModalWaiting.unity | 0 .../Example 10 - ModalWaiting.unity.meta | 0 .../Scenes/Example 11 - CutScene.unity | 0 .../Scenes/Example 11 - CutScene.unity.meta | 0 .../Scenes/Example 12 - RenderTexture.unity | 0 .../Example 12 - RenderTexture.unity.meta | 0 .../Scenes/Example 13 - Particles.unity | 0 .../Scenes/Example 13 - Particles.unity.meta | 0 .../Scenes/Example 14 - BundleUsage.unity | 0 .../Example 14 - BundleUsage.unity.meta | 0 .../Scenes/Example 15 - VirtualList.unity | 0 .../Example 15 - VirtualList.unity.meta | 0 .../Scenes/Example 16 - LoopList.unity | 0 .../Scenes/Example 16 - LoopList.unity.meta | 0 .../Examples~/Scenes/Example 17 - Model.unity | 0 .../Scenes/Example 17 - Model.unity.meta | 0 .../Examples~/Scenes/Example 18 - Guide.unity | 0 .../Scenes/Example 18 - Guide.unity.meta | 0 .../Scenes/Example 19 - HitTest.unity | 0 .../Scenes/Example 19 - HitTest.unity.meta | 0 .../Examples~/Scenes/Example 20 - 3D UI.unity | 0 .../Scenes/Example 20 - 3D UI.unity.meta | 0 .../Scenes/Example 21 - Curve UI.unity | 0 .../Scenes/Example 21 - Curve UI.unity.meta | 0 .../Scenes/Example 22 - Gesture.unity | 0 .../Scenes/Example 22 - Gesture.unity.meta | 0 .../Scenes/Example 23 - Filter.unity | 0 .../Scenes/Example 23 - Filter.unity.meta | 0 .../Scenes/Example 24 - TurnCard.unity | 0 .../Scenes/Example 24 - TurnCard.unity.meta | 0 .../Scenes/Example 25 - TreeView.unity | 0 .../Scenes/Example 25 - TreeView.unity.meta | 0 .../Scenes/Example 26 - PullToRefresh.unity | 0 .../Example 26 - PullToRefresh.unity.meta | 0 .../Scenes/Example 27 - ScrollPane.unity | 0 .../Scenes/Example 27 - ScrollPane.unity.meta | 0 .../Scenes/Example 28 - TypingEffect.unity | 0 .../Example 28 - TypingEffect.unity.meta | 0 .../Scenes/Example 29 - TurnPage.unity | 0 .../Scenes/Example 29 - TurnPage.unity.meta | 0 .../Scenes/Example 30 - TextMeshPro.unity | 0 .../Example 30 - TextMeshPro.unity.meta | 0 .../FairyGUI/Examples~/Scenes/scene1.unity | 0 .../Examples~/Scenes/scene1.unity.meta | 0 .../FairyGUI/Examples~/Scenes/scene2.unity | 0 .../Examples~/Scenes/scene2.unity.meta | 0 .../FairyGUI/Examples~/ScrollPane.meta | 0 .../Examples~/ScrollPane/ScrollPaneMain.cs | 0 .../ScrollPane/ScrollPaneMain.cs.meta | 0 .../FairyGUI/Examples~/TextMeshPro.meta | 0 .../Examples~/TextMeshPro/TextMeshProMain.cs | 0 .../TextMeshPro/TextMeshProMain.cs.meta | 0 .../FairyGUI/Examples~/Transition.meta | 0 .../Examples~/Transition/TransitionMain.cs | 0 .../Transition/TransitionMain.cs.meta | 0 .../Plugins/FairyGUI/Examples~/TreeView.meta | 0 .../Examples~/TreeView/TreeViewMain.cs | 0 .../Examples~/TreeView/TreeViewMain.cs.meta | 0 .../Plugins/FairyGUI/Examples~/TurnCard.meta | 0 .../FairyGUI/Examples~/TurnCard/Card.cs | 0 .../FairyGUI/Examples~/TurnCard/Card.cs.meta | 0 .../Examples~/TurnCard/TurnCardMain.cs | 0 .../Examples~/TurnCard/TurnCardMain.cs.meta | 0 .../Plugins/FairyGUI/Examples~/TurnPage.meta | 0 .../FairyGUI/Examples~/TurnPage/BookPage.cs | 0 .../Examples~/TurnPage/BookPage.cs.meta | 0 .../FairyGUI/Examples~/TurnPage/FairyBook.cs | 0 .../Examples~/TurnPage/FairyBook.cs.meta | 0 .../Examples~/TurnPage/TurnPageMain.cs | 0 .../Examples~/TurnPage/TurnPageMain.cs.meta | 0 .../FairyGUI/Examples~/TypingEffect.meta | 0 .../TypingEffect/TypingEffectMain.cs | 0 .../TypingEffect/TypingEffectMain.cs.meta | 0 .../FairyGUI/Examples~/VirtualList.meta | 0 .../Examples~/VirtualList/VirtualListMain.cs | 0 .../VirtualList/VirtualListMain.cs.meta | 0 .../Runtime/Plugins/FairyGUI/Resources.meta | 0 .../Plugins/FairyGUI/Resources/Shaders.meta | 0 .../FairyGUI/Resources/Shaders/AddOn.meta | 0 .../Shaders/AddOn/FairyGUI-BlurFilter.shader | 0 .../AddOn/FairyGUI-BlurFilter.shader.meta | 0 .../Resources/Shaders/FairyGUI-BMFont.shader | 0 .../Shaders/FairyGUI-BMFont.shader.meta | 0 .../Resources/Shaders/FairyGUI-Image.shader | 0 .../Shaders/FairyGUI-Image.shader.meta | 0 .../Resources/Shaders/FairyGUI-Text.shader | 0 .../Shaders/FairyGUI-Text.shader.meta | 0 .../NBC/Runtime/Plugins/FairyGUI/Scripts.meta | 0 .../Plugins/FairyGUI/Scripts/Core.meta | 0 .../FairyGUI/Scripts/Core/BlendMode.cs | 0 .../FairyGUI/Scripts/Core/BlendMode.cs.meta | 0 .../FairyGUI/Scripts/Core/CaptureCamera.cs | 0 .../Scripts/Core/CaptureCamera.cs.meta | 0 .../FairyGUI/Scripts/Core/Container.cs | 0 .../FairyGUI/Scripts/Core/Container.cs.meta | 0 .../FairyGUI/Scripts/Core/DisplayObject.cs | 0 .../Scripts/Core/DisplayObject.cs.meta | 0 .../FairyGUI/Scripts/Core/GoWrapper.cs | 0 .../FairyGUI/Scripts/Core/GoWrapper.cs.meta | 0 .../FairyGUI/Scripts/Core/HitTest.meta | 0 .../Scripts/Core/HitTest/ColliderHitTest.cs | 0 .../Core/HitTest/ColliderHitTest.cs.meta | 0 .../Scripts/Core/HitTest/HitTestContext.cs | 0 .../Core/HitTest/HitTestContext.cs.meta | 0 .../FairyGUI/Scripts/Core/HitTest/IHitTest.cs | 0 .../Scripts/Core/HitTest/IHitTest.cs.meta | 0 .../Core/HitTest/MeshColliderHitTest.cs | 0 .../Core/HitTest/MeshColliderHitTest.cs.meta | 0 .../Scripts/Core/HitTest/PixelHitTest.cs | 0 .../Scripts/Core/HitTest/PixelHitTest.cs.meta | 0 .../Scripts/Core/HitTest/RectHitTest.cs | 0 .../Scripts/Core/HitTest/RectHitTest.cs.meta | 0 .../Scripts/Core/HitTest/ShapeHitTest.cs | 0 .../Scripts/Core/HitTest/ShapeHitTest.cs.meta | 0 .../Plugins/FairyGUI/Scripts/Core/Image.cs | 0 .../FairyGUI/Scripts/Core/Image.cs.meta | 0 .../FairyGUI/Scripts/Core/MaterialManager.cs | 0 .../Scripts/Core/MaterialManager.cs.meta | 0 .../Plugins/FairyGUI/Scripts/Core/Mesh.meta | 0 .../Scripts/Core/Mesh/CompositeMesh.cs | 0 .../Scripts/Core/Mesh/CompositeMesh.cs.meta | 0 .../FairyGUI/Scripts/Core/Mesh/EllipseMesh.cs | 0 .../Scripts/Core/Mesh/EllipseMesh.cs.meta | 0 .../FairyGUI/Scripts/Core/Mesh/FillMesh.cs | 0 .../Scripts/Core/Mesh/FillMesh.cs.meta | 0 .../FairyGUI/Scripts/Core/Mesh/LineMesh.cs | 0 .../Scripts/Core/Mesh/LineMesh.cs.meta | 0 .../FairyGUI/Scripts/Core/Mesh/MeshFactory.cs | 0 .../Scripts/Core/Mesh/MeshFactory.cs.meta | 0 .../FairyGUI/Scripts/Core/Mesh/PlaneMesh.cs | 0 .../Scripts/Core/Mesh/PlaneMesh.cs.meta | 0 .../FairyGUI/Scripts/Core/Mesh/PolygonMesh.cs | 0 .../Scripts/Core/Mesh/PolygonMesh.cs.meta | 0 .../FairyGUI/Scripts/Core/Mesh/RectMesh.cs | 0 .../Scripts/Core/Mesh/RectMesh.cs.meta | 0 .../Scripts/Core/Mesh/RegularPolygonMesh.cs | 0 .../Core/Mesh/RegularPolygonMesh.cs.meta | 0 .../Scripts/Core/Mesh/RoundedRectMesh.cs | 0 .../Scripts/Core/Mesh/RoundedRectMesh.cs.meta | 0 .../Scripts/Core/Mesh/StraightLineMesh.cs | 0 .../Core/Mesh/StraightLineMesh.cs.meta | 0 .../Scripts/Core/Mesh/VertexBuffer.cs | 0 .../Scripts/Core/Mesh/VertexBuffer.cs.meta | 0 .../FairyGUI/Scripts/Core/MovieClip.cs | 0 .../FairyGUI/Scripts/Core/MovieClip.cs.meta | 0 .../FairyGUI/Scripts/Core/NAudioClip.cs | 0 .../FairyGUI/Scripts/Core/NAudioClip.cs.meta | 0 .../FairyGUI/Scripts/Core/NGraphics.cs | 0 .../FairyGUI/Scripts/Core/NGraphics.cs.meta | 0 .../Plugins/FairyGUI/Scripts/Core/NTexture.cs | 0 .../FairyGUI/Scripts/Core/NTexture.cs.meta | 0 .../FairyGUI/Scripts/Core/ShaderConfig.cs | 0 .../Scripts/Core/ShaderConfig.cs.meta | 0 .../Plugins/FairyGUI/Scripts/Core/Shape.cs | 0 .../FairyGUI/Scripts/Core/Shape.cs.meta | 0 .../Plugins/FairyGUI/Scripts/Core/Stage.cs | 0 .../FairyGUI/Scripts/Core/Stage.cs.meta | 0 .../FairyGUI/Scripts/Core/StageCamera.cs | 0 .../FairyGUI/Scripts/Core/StageCamera.cs.meta | 0 .../FairyGUI/Scripts/Core/StageEngine.cs | 0 .../FairyGUI/Scripts/Core/StageEngine.cs.meta | 0 .../Plugins/FairyGUI/Scripts/Core/Stats.cs | 0 .../FairyGUI/Scripts/Core/Stats.cs.meta | 0 .../Plugins/FairyGUI/Scripts/Core/Text.meta | 0 .../FairyGUI/Scripts/Core/Text/BaseFont.cs | 0 .../Scripts/Core/Text/BaseFont.cs.meta | 0 .../FairyGUI/Scripts/Core/Text/BitmapFont.cs | 0 .../Scripts/Core/Text/BitmapFont.cs.meta | 0 .../FairyGUI/Scripts/Core/Text/DynamicFont.cs | 0 .../Scripts/Core/Text/DynamicFont.cs.meta | 0 .../FairyGUI/Scripts/Core/Text/Emoji.cs | 0 .../FairyGUI/Scripts/Core/Text/Emoji.cs.meta | 0 .../FairyGUI/Scripts/Core/Text/FontManager.cs | 0 .../Scripts/Core/Text/FontManager.cs.meta | 0 .../FairyGUI/Scripts/Core/Text/IKeyboard.cs | 0 .../Scripts/Core/Text/IKeyboard.cs.meta | 0 .../Scripts/Core/Text/InputTextField.cs | 0 .../Scripts/Core/Text/InputTextField.cs.meta | 0 .../FairyGUI/Scripts/Core/Text/RTLSupport.cs | 0 .../Scripts/Core/Text/RTLSupport.cs.meta | 0 .../Scripts/Core/Text/RichTextField.cs | 0 .../Scripts/Core/Text/RichTextField.cs.meta | 0 .../Scripts/Core/Text/SelectionShape.cs | 0 .../Scripts/Core/Text/SelectionShape.cs.meta | 0 .../FairyGUI/Scripts/Core/Text/TextField.cs | 0 .../Scripts/Core/Text/TextField.cs.meta | 0 .../FairyGUI/Scripts/Core/Text/TextFormat.cs | 0 .../Scripts/Core/Text/TextFormat.cs.meta | 0 .../Scripts/Core/Text/TouchScreenKeyboard.cs | 0 .../Core/Text/TouchScreenKeyboard.cs.meta | 0 .../Scripts/Core/Text/TypingEffect.cs | 0 .../Scripts/Core/Text/TypingEffect.cs.meta | 0 .../FairyGUI/Scripts/Core/UpdateContext.cs | 0 .../Scripts/Core/UpdateContext.cs.meta | 0 .../Plugins/FairyGUI/Scripts/Event.meta | 0 .../FairyGUI/Scripts/Event/EventBridge.cs | 0 .../Scripts/Event/EventBridge.cs.meta | 0 .../FairyGUI/Scripts/Event/EventContext.cs | 0 .../Scripts/Event/EventContext.cs.meta | 0 .../FairyGUI/Scripts/Event/EventDispatcher.cs | 0 .../Scripts/Event/EventDispatcher.cs.meta | 0 .../FairyGUI/Scripts/Event/EventListener.cs | 0 .../Scripts/Event/EventListener.cs.meta | 0 .../Scripts/Event/IEventDispatcher.cs | 0 .../Scripts/Event/IEventDispatcher.cs.meta | 0 .../FairyGUI/Scripts/Event/InputEvent.cs | 0 .../FairyGUI/Scripts/Event/InputEvent.cs.meta | 0 .../Plugins/FairyGUI/Scripts/Extensions.meta | 0 .../Scripts/Extensions/DragonBones.meta | 0 .../DragonBones/DragonBonesLoader.cs | 0 .../DragonBones/DragonBonesLoader.cs.meta | 0 .../FairyGUI/Scripts/Extensions/Spine.meta | 0 .../Scripts/Extensions/Spine/SpineLoader.cs | 0 .../Extensions/Spine/SpineLoader.cs.meta | 0 .../Scripts/Extensions/TextMeshPro.meta | 0 .../Extensions/TextMeshPro/Shaders.meta | 0 .../TextMeshPro/Shaders/FairyGUI-TMP.shader | 0 .../Shaders/FairyGUI-TMP.shader.meta | 0 .../Scripts/Extensions/TextMeshPro/TMPFont.cs | 0 .../Extensions/TextMeshPro/TMPFont.cs.meta | 0 .../Extensions/TextMeshPro/TMPTextFormat.cs | 0 .../TextMeshPro/TMPTextFormat.cs.meta | 0 .../Scripts/Extensions/WebGLTextInput.meta | 0 .../WebGLTextInput/WebGLTextInput.cs | 0 .../WebGLTextInput/WebGLTextInput.cs.meta | 0 .../WebGLTextInput/WebGLTextInput.jslib | 0 .../WebGLTextInput/WebGLTextInput.jslib.meta | 0 .../Plugins/FairyGUI/Scripts/Filter.meta | 0 .../FairyGUI/Scripts/Filter/BlurFilter.cs | 0 .../Scripts/Filter/BlurFilter.cs.meta | 0 .../FairyGUI/Scripts/Filter/ColorFilter.cs | 0 .../Scripts/Filter/ColorFilter.cs.meta | 0 .../FairyGUI/Scripts/Filter/IFilter.cs | 0 .../FairyGUI/Scripts/Filter/IFilter.cs.meta | 0 .../Plugins/FairyGUI/Scripts/Gesture.meta | 0 .../Scripts/Gesture/LongPressGesture.cs | 0 .../Scripts/Gesture/LongPressGesture.cs.meta | 0 .../FairyGUI/Scripts/Gesture/PinchGesture.cs | 0 .../Scripts/Gesture/PinchGesture.cs.meta | 0 .../Scripts/Gesture/RotationGesture.cs | 0 .../Scripts/Gesture/RotationGesture.cs.meta | 0 .../FairyGUI/Scripts/Gesture/SwipeGesture.cs | 0 .../Scripts/Gesture/SwipeGesture.cs.meta | 0 .../Plugins/FairyGUI/Scripts/Tween.meta | 0 .../FairyGUI/Scripts/Tween/EaseManager.cs | 0 .../Scripts/Tween/EaseManager.cs.meta | 0 .../FairyGUI/Scripts/Tween/EaseType.cs | 0 .../FairyGUI/Scripts/Tween/EaseType.cs.meta | 0 .../Plugins/FairyGUI/Scripts/Tween/GPath.cs | 0 .../FairyGUI/Scripts/Tween/GPath.cs.meta | 0 .../Plugins/FairyGUI/Scripts/Tween/GTween.cs | 0 .../FairyGUI/Scripts/Tween/GTween.cs.meta | 0 .../FairyGUI/Scripts/Tween/GTweener.cs | 0 .../FairyGUI/Scripts/Tween/GTweener.cs.meta | 0 .../FairyGUI/Scripts/Tween/TweenManager.cs | 0 .../Scripts/Tween/TweenManager.cs.meta | 0 .../FairyGUI/Scripts/Tween/TweenPropType.cs | 0 .../Scripts/Tween/TweenPropType.cs.meta | 0 .../FairyGUI/Scripts/Tween/TweenValue.cs | 0 .../FairyGUI/Scripts/Tween/TweenValue.cs.meta | 0 .../Runtime/Plugins/FairyGUI/Scripts/UI.meta | 0 .../Plugins/FairyGUI/Scripts/UI/Action.meta | 0 .../Scripts/UI/Action/ChangePageAction.cs | 0 .../UI/Action/ChangePageAction.cs.meta | 0 .../Scripts/UI/Action/ControllerAction.cs | 0 .../UI/Action/ControllerAction.cs.meta | 0 .../Scripts/UI/Action/PlayTransitionAction.cs | 0 .../UI/Action/PlayTransitionAction.cs.meta | 0 .../Scripts/UI/AsyncCreationHelper.cs | 0 .../Scripts/UI/AsyncCreationHelper.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/Controller.cs | 0 .../FairyGUI/Scripts/UI/Controller.cs.meta | 0 .../FairyGUI/Scripts/UI/DragDropManager.cs | 0 .../Scripts/UI/DragDropManager.cs.meta | 0 .../FairyGUI/Scripts/UI/EMRenderSupport.cs | 0 .../Scripts/UI/EMRenderSupport.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/FieldTypes.cs | 0 .../FairyGUI/Scripts/UI/FieldTypes.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/GButton.cs | 0 .../FairyGUI/Scripts/UI/GButton.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/GComboBox.cs | 0 .../FairyGUI/Scripts/UI/GComboBox.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/GComponent.cs | 0 .../FairyGUI/Scripts/UI/GComponent.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/GGraph.cs | 0 .../FairyGUI/Scripts/UI/GGraph.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/GGroup.cs | 0 .../FairyGUI/Scripts/UI/GGroup.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/GImage.cs | 0 .../FairyGUI/Scripts/UI/GImage.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/GLabel.cs | 0 .../FairyGUI/Scripts/UI/GLabel.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/GList.cs | 0 .../Plugins/FairyGUI/Scripts/UI/GList.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/GLoader.cs | 0 .../FairyGUI/Scripts/UI/GLoader.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/GLoader3D.cs | 0 .../FairyGUI/Scripts/UI/GLoader3D.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/GMovieClip.cs | 0 .../FairyGUI/Scripts/UI/GMovieClip.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/GObject.cs | 0 .../FairyGUI/Scripts/UI/GObject.cs.meta | 0 .../FairyGUI/Scripts/UI/GObjectPool.cs | 0 .../FairyGUI/Scripts/UI/GObjectPool.cs.meta | 0 .../FairyGUI/Scripts/UI/GProgressBar.cs | 0 .../FairyGUI/Scripts/UI/GProgressBar.cs.meta | 0 .../FairyGUI/Scripts/UI/GRichTextField.cs | 0 .../Scripts/UI/GRichTextField.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/GRoot.cs | 0 .../Plugins/FairyGUI/Scripts/UI/GRoot.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/GScrollBar.cs | 0 .../FairyGUI/Scripts/UI/GScrollBar.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/GSlider.cs | 0 .../FairyGUI/Scripts/UI/GSlider.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/GTextField.cs | 0 .../FairyGUI/Scripts/UI/GTextField.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/GTextInput.cs | 0 .../FairyGUI/Scripts/UI/GTextInput.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/GTree.cs | 0 .../Plugins/FairyGUI/Scripts/UI/GTree.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/GTreeNode.cs | 0 .../FairyGUI/Scripts/UI/GTreeNode.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/Gears.meta | 0 .../Scripts/UI/Gears/GearAnimation.cs | 0 .../Scripts/UI/Gears/GearAnimation.cs.meta | 0 .../FairyGUI/Scripts/UI/Gears/GearBase.cs | 0 .../Scripts/UI/Gears/GearBase.cs.meta | 0 .../FairyGUI/Scripts/UI/Gears/GearColor.cs | 0 .../Scripts/UI/Gears/GearColor.cs.meta | 0 .../FairyGUI/Scripts/UI/Gears/GearDisplay.cs | 0 .../Scripts/UI/Gears/GearDisplay.cs.meta | 0 .../FairyGUI/Scripts/UI/Gears/GearDisplay2.cs | 0 .../Scripts/UI/Gears/GearDisplay2.cs.meta | 0 .../FairyGUI/Scripts/UI/Gears/GearFontSize.cs | 0 .../Scripts/UI/Gears/GearFontSize.cs.meta | 0 .../FairyGUI/Scripts/UI/Gears/GearIcon.cs | 0 .../Scripts/UI/Gears/GearIcon.cs.meta | 0 .../FairyGUI/Scripts/UI/Gears/GearLook.cs | 0 .../Scripts/UI/Gears/GearLook.cs.meta | 0 .../FairyGUI/Scripts/UI/Gears/GearSize.cs | 0 .../Scripts/UI/Gears/GearSize.cs.meta | 0 .../FairyGUI/Scripts/UI/Gears/GearText.cs | 0 .../Scripts/UI/Gears/GearText.cs.meta | 0 .../FairyGUI/Scripts/UI/Gears/GearXY.cs | 0 .../FairyGUI/Scripts/UI/Gears/GearXY.cs.meta | 0 .../Scripts/UI/Gears/IAnimationGear.cs | 0 .../Scripts/UI/Gears/IAnimationGear.cs.meta | 0 .../FairyGUI/Scripts/UI/Gears/IColorGear.cs | 0 .../Scripts/UI/Gears/IColorGear.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/IUISource.cs | 0 .../FairyGUI/Scripts/UI/IUISource.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/Margin.cs | 0 .../FairyGUI/Scripts/UI/Margin.cs.meta | 0 .../FairyGUI/Scripts/UI/PackageItem.cs | 0 .../FairyGUI/Scripts/UI/PackageItem.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/PopupMenu.cs | 0 .../FairyGUI/Scripts/UI/PopupMenu.cs.meta | 0 .../FairyGUI/Scripts/UI/RelationItem.cs | 0 .../FairyGUI/Scripts/UI/RelationItem.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/Relations.cs | 0 .../FairyGUI/Scripts/UI/Relations.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/ScrollPane.cs | 0 .../FairyGUI/Scripts/UI/ScrollPane.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/Transition.cs | 0 .../FairyGUI/Scripts/UI/Transition.cs.meta | 0 .../FairyGUI/Scripts/UI/TranslationHelper.cs | 0 .../Scripts/UI/TranslationHelper.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/Tree.meta | 0 .../FairyGUI/Scripts/UI/Tree/TreeNode.cs | 0 .../FairyGUI/Scripts/UI/Tree/TreeNode.cs.meta | 0 .../FairyGUI/Scripts/UI/Tree/TreeView.cs | 0 .../FairyGUI/Scripts/UI/Tree/TreeView.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/UIConfig.cs | 0 .../FairyGUI/Scripts/UI/UIConfig.cs.meta | 0 .../FairyGUI/Scripts/UI/UIContentScaler.cs | 0 .../Scripts/UI/UIContentScaler.cs.meta | 0 .../FairyGUI/Scripts/UI/UIObjectFactory.cs | 0 .../Scripts/UI/UIObjectFactory.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/UIPackage.cs | 0 .../FairyGUI/Scripts/UI/UIPackage.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/UIPainter.cs | 0 .../FairyGUI/Scripts/UI/UIPainter.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/UIPanel.cs | 0 .../FairyGUI/Scripts/UI/UIPanel.cs.meta | 0 .../Plugins/FairyGUI/Scripts/UI/Window.cs | 0 .../FairyGUI/Scripts/UI/Window.cs.meta | 0 .../Plugins/FairyGUI/Scripts/Utils.meta | 0 .../FairyGUI/Scripts/Utils/ByteBuffer.cs | 0 .../FairyGUI/Scripts/Utils/ByteBuffer.cs.meta | 0 .../Plugins/FairyGUI/Scripts/Utils/Html.meta | 0 .../FairyGUI/Scripts/Utils/Html/HtmlButton.cs | 0 .../Scripts/Utils/Html/HtmlButton.cs.meta | 0 .../Scripts/Utils/Html/HtmlElement.cs | 0 .../Scripts/Utils/Html/HtmlElement.cs.meta | 0 .../FairyGUI/Scripts/Utils/Html/HtmlImage.cs | 0 .../Scripts/Utils/Html/HtmlImage.cs.meta | 0 .../FairyGUI/Scripts/Utils/Html/HtmlInput.cs | 0 .../Scripts/Utils/Html/HtmlInput.cs.meta | 0 .../FairyGUI/Scripts/Utils/Html/HtmlLink.cs | 0 .../Scripts/Utils/Html/HtmlLink.cs.meta | 0 .../Scripts/Utils/Html/HtmlPageContext.cs | 0 .../Utils/Html/HtmlPageContext.cs.meta | 0 .../Scripts/Utils/Html/HtmlParseOptions.cs | 0 .../Utils/Html/HtmlParseOptions.cs.meta | 0 .../FairyGUI/Scripts/Utils/Html/HtmlParser.cs | 0 .../Scripts/Utils/Html/HtmlParser.cs.meta | 0 .../FairyGUI/Scripts/Utils/Html/HtmlSelect.cs | 0 .../Scripts/Utils/Html/HtmlSelect.cs.meta | 0 .../Scripts/Utils/Html/IHtmlObject.cs | 0 .../Scripts/Utils/Html/IHtmlObject.cs.meta | 0 .../Scripts/Utils/Html/IHtmlPageContext.cs | 0 .../Utils/Html/IHtmlPageContext.cs.meta | 0 .../Plugins/FairyGUI/Scripts/Utils/Timers.cs | 0 .../FairyGUI/Scripts/Utils/Timers.cs.meta | 0 .../Plugins/FairyGUI/Scripts/Utils/ToolSet.cs | 0 .../FairyGUI/Scripts/Utils/ToolSet.cs.meta | 0 .../FairyGUI/Scripts/Utils/UBBParser.cs | 0 .../FairyGUI/Scripts/Utils/UBBParser.cs.meta | 0 .../Plugins/FairyGUI/Scripts/Utils/XML.cs | 0 .../FairyGUI/Scripts/Utils/XML.cs.meta | 0 .../FairyGUI/Scripts/Utils/XMLIterator.cs | 0 .../Scripts/Utils/XMLIterator.cs.meta | 0 .../Plugins/FairyGUI/Scripts/Utils/XMLList.cs | 0 .../FairyGUI/Scripts/Utils/XMLList.cs.meta | 0 .../FairyGUI/Scripts/Utils/XMLUtils.cs | 0 .../FairyGUI/Scripts/Utils/XMLUtils.cs.meta | 0 .../FairyGUI/Scripts/Utils/ZipReader.cs | 0 .../FairyGUI/Scripts/Utils/ZipReader.cs.meta | 0 .../Runtime/Plugins/Other.meta | 0 .../Other/System.Collections.Immutable.dll | Bin .../System.Collections.Immutable.dll.meta | 0 .../Plugins/Other/System.IO.Pipelines.dll | Bin .../Other/System.IO.Pipelines.dll.meta | 0 ...System.Runtime.CompilerServices.Unsafe.dll | Bin ...m.Runtime.CompilerServices.Unsafe.dll.meta | 0 .../Runtime/Plugins/Protobuf-net.meta | 0 .../Plugins/Protobuf-net/BclHelpers.cs | 0 .../Plugins/Protobuf-net/BclHelpers.cs.meta | 0 .../Plugins/Protobuf-net/BufferExtension.cs | 0 .../Protobuf-net/BufferExtension.cs.meta | 0 .../Plugins/Protobuf-net/BufferPool.cs | 0 .../Plugins/Protobuf-net/BufferPool.cs.meta | 0 .../Protobuf-net/CallbackAttributes.cs | 0 .../Protobuf-net/CallbackAttributes.cs.meta | 0 .../Plugins/Protobuf-net/Compiler.meta | 0 .../Protobuf-net/Compiler/CompilerContext.cs | 0 .../Compiler/CompilerContext.cs.meta | 0 .../Compiler/CompilerDelegates.cs | 0 .../Compiler/CompilerDelegates.cs.meta | 0 .../Plugins/Protobuf-net/Compiler/Local.cs | 0 .../Protobuf-net/Compiler/Local.cs.meta | 0 .../Plugins/Protobuf-net/DataFormat.cs | 0 .../Plugins/Protobuf-net/DataFormat.cs.meta | 0 .../DiscriminatedUnion.Serializable.cs | 0 .../DiscriminatedUnion.Serializable.cs.meta | 0 .../Protobuf-net/DiscriminatedUnion.cs | 0 .../Protobuf-net/DiscriminatedUnion.cs.meta | 0 .../Plugins/Protobuf-net/Extensible.cs | 0 .../Plugins/Protobuf-net/Extensible.cs.meta | 0 .../Plugins/Protobuf-net/ExtensibleUtil.cs | 0 .../Protobuf-net/ExtensibleUtil.cs.meta | 0 .../Protobuf-net/GlobalSuppressions.cs | Bin .../Protobuf-net/GlobalSuppressions.cs.meta | 0 .../Runtime/Plugins/Protobuf-net/Helpers.cs | 0 .../Plugins/Protobuf-net/Helpers.cs.meta | 0 .../Plugins/Protobuf-net/IExtensible.cs | 0 .../Plugins/Protobuf-net/IExtensible.cs.meta | 0 .../Plugins/Protobuf-net/IExtension.cs | 0 .../Plugins/Protobuf-net/IExtension.cs.meta | 0 .../Plugins/Protobuf-net/IProtoInputT.cs | 0 .../Plugins/Protobuf-net/IProtoInputT.cs.meta | 0 .../Plugins/Protobuf-net/IProtoOutputT.cs | 0 .../Protobuf-net/IProtoOutputT.cs.meta | 0 .../Plugins/Protobuf-net/ImplicitFields.cs | 0 .../Protobuf-net/ImplicitFields.cs.meta | 0 .../Plugins/Protobuf-net/KeyValuePairProxy.cs | 0 .../Protobuf-net/KeyValuePairProxy.cs.meta | 0 .../Runtime/Plugins/Protobuf-net/Meta.meta | 0 .../Plugins/Protobuf-net/Meta/AttributeMap.cs | 0 .../Protobuf-net/Meta/AttributeMap.cs.meta | 0 .../Plugins/Protobuf-net/Meta/BasicList.cs | 0 .../Protobuf-net/Meta/BasicList.cs.meta | 0 .../Plugins/Protobuf-net/Meta/CallbackSet.cs | 0 .../Protobuf-net/Meta/CallbackSet.cs.meta | 0 .../Plugins/Protobuf-net/Meta/MetaType.cs | 0 .../Protobuf-net/Meta/MetaType.cs.meta | 0 .../Plugins/Protobuf-net/Meta/ProtoSyntax.cs | 0 .../Protobuf-net/Meta/ProtoSyntax.cs.meta | 0 .../Protobuf-net/Meta/RuntimeTypeModel.cs | 0 .../Meta/RuntimeTypeModel.cs.meta | 0 .../Plugins/Protobuf-net/Meta/SubType.cs | 0 .../Plugins/Protobuf-net/Meta/SubType.cs.meta | 0 .../Protobuf-net/Meta/TypeAddedEventArgs.cs | 0 .../Meta/TypeAddedEventArgs.cs.meta | 0 .../Protobuf-net/Meta/TypeFormatEventArgs.cs | 0 .../Meta/TypeFormatEventArgs.cs.meta | 0 .../Meta/TypeModel.InputOutput.cs | 0 .../Meta/TypeModel.InputOutput.cs.meta | 0 .../Plugins/Protobuf-net/Meta/TypeModel.cs | 0 .../Protobuf-net/Meta/TypeModel.cs.meta | 0 .../Plugins/Protobuf-net/Meta/ValueMember.cs | 0 .../Protobuf-net/Meta/ValueMember.cs.meta | 0 .../Plugins/Protobuf-net/NetObjectCache.cs | 0 .../Protobuf-net/NetObjectCache.cs.meta | 0 .../Plugins/Protobuf-net/PrefixStyle.cs | 0 .../Plugins/Protobuf-net/PrefixStyle.cs.meta | 0 .../Protobuf-net/ProtoContractAttribute.cs | 0 .../ProtoContractAttribute.cs.meta | 0 .../Protobuf-net/ProtoConverterAttribute.cs | 0 .../ProtoConverterAttribute.cs.meta | 0 .../Protobuf-net/ProtoEnumAttribute.cs | 0 .../Protobuf-net/ProtoEnumAttribute.cs.meta | 0 .../Plugins/Protobuf-net/ProtoException.cs | 0 .../Protobuf-net/ProtoException.cs.meta | 0 .../Protobuf-net/ProtoIgnoreAttribute.cs | 0 .../Protobuf-net/ProtoIgnoreAttribute.cs.meta | 0 .../Protobuf-net/ProtoIncludeAttribute.cs | 0 .../ProtoIncludeAttribute.cs.meta | 0 .../Plugins/Protobuf-net/ProtoMapAttribute.cs | 0 .../Protobuf-net/ProtoMapAttribute.cs.meta | 0 .../Protobuf-net/ProtoMemberAttribute.cs | 0 .../Protobuf-net/ProtoMemberAttribute.cs.meta | 0 .../Plugins/Protobuf-net/ProtoReader.cs | 0 .../Plugins/Protobuf-net/ProtoReader.cs.meta | 0 .../Plugins/Protobuf-net/ProtoWriter.cs | 0 .../Plugins/Protobuf-net/ProtoWriter.cs.meta | 0 .../Protobuf-net/SerializationContext.cs | 0 .../Protobuf-net/SerializationContext.cs.meta | 0 .../Plugins/Protobuf-net/Serializer.cs | 0 .../Plugins/Protobuf-net/Serializer.cs.meta | 0 .../Plugins/Protobuf-net/Serializers.meta | 0 .../Serializers/ArrayDecorator.cs | 0 .../Serializers/ArrayDecorator.cs.meta | 0 .../Serializers/BlobSerializer.cs | 0 .../Serializers/BlobSerializer.cs.meta | 0 .../Serializers/BooleanSerializer.cs | 0 .../Serializers/BooleanSerializer.cs.meta | 0 .../Serializers/ByteSerializer.cs | 0 .../Serializers/ByteSerializer.cs.meta | 0 .../Serializers/CharSerializer.cs | 0 .../Serializers/CharSerializer.cs.meta | 0 .../Serializers/CompiledSerializer.cs | 0 .../Serializers/CompiledSerializer.cs.meta | 0 .../Serializers/DateTimeSerializer.cs | 0 .../Serializers/DateTimeSerializer.cs.meta | 0 .../Serializers/DecimalSerializer.cs | 0 .../Serializers/DecimalSerializer.cs.meta | 0 .../Serializers/DefaultValueDecorator.cs | 0 .../Serializers/DefaultValueDecorator.cs.meta | 0 .../Serializers/DoubleSerializer.cs | 0 .../Serializers/DoubleSerializer.cs.meta | 0 .../Serializers/EnumSerializer.cs | 0 .../Serializers/EnumSerializer.cs.meta | 0 .../Serializers/FieldDecorator.cs | 0 .../Serializers/FieldDecorator.cs.meta | 0 .../Serializers/GuidSerializer.cs | 0 .../Serializers/GuidSerializer.cs.meta | 0 .../Serializers/IProtoSerializer.cs | 0 .../Serializers/IProtoSerializer.cs.meta | 0 .../Serializers/IProtoTypeSerializer.cs | 0 .../Serializers/IProtoTypeSerializer.cs.meta | 0 .../Serializers/ISerializerProxy.cs | 0 .../Serializers/ISerializerProxy.cs.meta | 0 .../ImmutableCollectionDecorator.cs | 0 .../ImmutableCollectionDecorator.cs.meta | 0 .../Serializers/Int16Serializer.cs | 0 .../Serializers/Int16Serializer.cs.meta | 0 .../Serializers/Int32Serializer.cs | 0 .../Serializers/Int32Serializer.cs.meta | 0 .../Serializers/Int64Serializer.cs | 0 .../Serializers/Int64Serializer.cs.meta | 0 .../Protobuf-net/Serializers/ListDecorator.cs | 0 .../Serializers/ListDecorator.cs.meta | 0 .../Protobuf-net/Serializers/MapDecorator.cs | 0 .../Serializers/MapDecorator.cs.meta | 0 .../Serializers/MemberSpecifiedDecorator.cs | 0 .../MemberSpecifiedDecorator.cs.meta | 0 .../Serializers/NetObjectSerializer.cs | 0 .../Serializers/NetObjectSerializer.cs.meta | 0 .../Protobuf-net/Serializers/NullDecorator.cs | 0 .../Serializers/NullDecorator.cs.meta | 0 .../Serializers/ParseableSerializer.cs | 0 .../Serializers/ParseableSerializer.cs.meta | 0 .../Serializers/PropertyDecorator.cs | 0 .../Serializers/PropertyDecorator.cs.meta | 0 .../Serializers/ProtoDecoratorBase.cs | 0 .../Serializers/ProtoDecoratorBase.cs.meta | 0 .../Serializers/ReflectedUriDecorator.cs | 0 .../Serializers/ReflectedUriDecorator.cs.meta | 0 .../Serializers/SByteSerializer.cs | 0 .../Serializers/SByteSerializer.cs.meta | 0 .../Serializers/SingleSerializer.cs | 0 .../Serializers/SingleSerializer.cs.meta | 0 .../Serializers/StringSerializer.cs | 0 .../Serializers/StringSerializer.cs.meta | 0 .../Serializers/SubItemSerializer.cs | 0 .../Serializers/SubItemSerializer.cs.meta | 0 .../Serializers/SurrogateSerializer.cs | 0 .../Serializers/SurrogateSerializer.cs.meta | 0 .../Serializers/SystemTypeSerializer.cs | 0 .../Serializers/SystemTypeSerializer.cs.meta | 0 .../Protobuf-net/Serializers/TagDecorator.cs | 0 .../Serializers/TagDecorator.cs.meta | 0 .../Serializers/TimeSpanSerializer.cs | 0 .../Serializers/TimeSpanSerializer.cs.meta | 0 .../Serializers/TupleSerializer.cs | 0 .../Serializers/TupleSerializer.cs.meta | 0 .../Serializers/TypeSerializer.cs | 0 .../Serializers/TypeSerializer.cs.meta | 0 .../Serializers/UInt16Serializer.cs | 0 .../Serializers/UInt16Serializer.cs.meta | 0 .../Serializers/UInt32Serializer.cs | 0 .../Serializers/UInt32Serializer.cs.meta | 0 .../Serializers/UInt64Serializer.cs | 0 .../Serializers/UInt64Serializer.cs.meta | 0 .../Protobuf-net/Serializers/UriDecorator.cs | 0 .../Serializers/UriDecorator.cs.meta | 0 .../Plugins/Protobuf-net/ServiceModel.meta | 0 .../ServiceModel/ProtoBehaviorAttribute.cs | 0 .../ProtoBehaviorAttribute.cs.meta | 0 .../ProtoBehaviorExtensionElement.cs | 0 .../ProtoBehaviorExtensionElement.cs.meta | 0 .../ServiceModel/ProtoEndpointBehavior.cs | 0 .../ProtoEndpointBehavior.cs.meta | 0 .../ServiceModel/ProtoOperationBehavior.cs | 0 .../ProtoOperationBehavior.cs.meta | 0 .../ServiceModel/XmlProtoSerializer.cs | 0 .../ServiceModel/XmlProtoSerializer.cs.meta | 0 .../Plugins/Protobuf-net/SubItemToken.cs | 0 .../Plugins/Protobuf-net/SubItemToken.cs.meta | 0 .../Runtime/Plugins/Protobuf-net/WireType.cs | 0 .../Plugins/Protobuf-net/WireType.cs.meta | 0 .../Plugins/Protobuf-net/protobuf-net.csproj | 0 .../Protobuf-net/protobuf-net.csproj.meta | 0 .../Runtime/Plugins/WSocket.meta | 0 .../Runtime/Plugins/WSocket/Core.meta | 0 .../Plugins/WSocket/Core/CloseEventArgs.cs | 0 .../WSocket/Core/CloseEventArgs.cs.meta | 0 .../Plugins/WSocket/Core/CloseStatusCode.cs | 0 .../WSocket/Core/CloseStatusCode.cs.meta | 0 .../Plugins/WSocket/Core/ErrorEventArgs.cs | 0 .../WSocket/Core/ErrorEventArgs.cs.meta | 0 .../Plugins/WSocket/Core/IWebSocket.cs | 0 .../Plugins/WSocket/Core/IWebSocket.cs.meta | 0 .../Plugins/WSocket/Core/MessageEventArgs.cs | 0 .../WSocket/Core/MessageEventArgs.cs.meta | 0 .../Runtime/Plugins/WSocket/Core/Opcode.cs | 0 .../Plugins/WSocket/Core/Opcode.cs.meta | 0 .../Plugins/WSocket/Core/OpenEventArgs.cs | 0 .../WSocket/Core/OpenEventArgs.cs.meta | 0 .../Runtime/Plugins/WSocket/Core/Settings.cs | 0 .../Plugins/WSocket/Core/Settings.cs.meta | 0 .../Plugins/WSocket/Core/WebSocketState.cs | 0 .../WSocket/Core/WebSocketState.cs.meta | 0 .../Plugins/WSocket/Implementation.meta | 0 .../WSocket/Implementation/NoWebGL.meta | 0 .../Implementation/NoWebGL/WebSocket.cs | 11 +- .../Implementation/NoWebGL/WebSocket.cs.meta | 0 .../NoWebGL/WebSocketManager.cs | 0 .../NoWebGL/WebSocketManager.cs.meta | 0 .../Plugins/WSocket/Implementation/WebGL.meta | 0 .../WSocket/Implementation/WebGL/WebSocket.cs | 0 .../Implementation/WebGL/WebSocket.cs.meta | 0 .../Implementation/WebGL/WebSocketManager.cs | 0 .../WebGL/WebSocketManager.cs.meta | 0 .../Runtime/Plugins/WebGL.meta | 0 .../Runtime/Plugins/WebGL/WebSocket.jslib | 1 - .../Plugins/WebGL/WebSocket.jslib.meta | 0 .../{ThirdParty => }/NBC/Runtime/UI.meta | 0 .../NBC/Runtime/UI/Attributes.meta | 0 .../UI/Attributes/AutoFindAttribute.cs | 0 .../UI/Attributes/AutoFindAttribute.cs.meta | 0 .../NBC/Runtime/UI/Component.meta | 0 .../NBC/Runtime/UI/Component/UIPanel.cs | 1 - .../NBC/Runtime/UI/Component/UIPanel.cs.meta | 0 .../NBC/Runtime/UI/Const.meta | 0 .../NBC/Runtime/UI/Const/UIConst.cs | 0 .../NBC/Runtime/UI/Const/UIConst.cs.meta | 0 .../NBC/Runtime/UI/Const/UIEvents.cs | 0 .../NBC/Runtime/UI/Const/UIEvents.cs.meta | 0 .../NBC/Runtime/UI/Event.meta | 0 .../NBC/Runtime/UI/Event/UIEvent.cs | 0 .../NBC/Runtime/UI/Event/UIEvent.cs.meta | 0 .../NBC/Runtime/UI/Extension.meta | 0 .../Runtime/UI/Extension/UIAnimExtension.cs | 0 .../UI/Extension/UIAnimExtension.cs.meta | 0 .../NBC/Runtime/UI/Extension/UIExtension.cs | 0 .../Runtime/UI/Extension/UIExtension.cs.meta | 0 .../NBC/Runtime/UI/Interfaces.meta | 0 .../NBC/Runtime/UI/Interfaces/IBind.cs | 0 .../NBC/Runtime/UI/Interfaces/IBind.cs.meta | 0 .../NBC/Runtime/UI/UIComponent.cs | 0 .../NBC/Runtime/UI/UIComponent.cs.meta | 0 .../NBC/Runtime/UI/UILanguage.meta | 0 .../UI/UILanguage/UIComponentLanguagePack.cs | 0 .../UIComponentLanguagePack.cs.meta | 0 .../NBC/Runtime/UI/UILanguage/UILanguage.cs | 0 .../Runtime/UI/UILanguage/UILanguage.cs.meta | 0 .../NBC/Runtime/UI/Utils.meta | 0 .../NBC/Runtime/UI/Utils/UIRunner.cs | 0 .../NBC/Runtime/UI/Utils/UIRunner.cs.meta | 0 .../Fantasy.Unity => NBC/Runtime}/csc.rsp | 0 .../Runtime}/csc.rsp.meta | 2 +- .../Fantasy.Unity => NBC}/package.json | 0 .../{ThirdParty => }/NBC/package.json.meta | 0 .../ThirdParty/Fantasy.Unity/.gitattributes | 11 - .../Editor/Runtime/Fantasy.Editor.asmdef | 18 - .../Editor/Runtime/Fantasy.Editor.asmdef.meta | 7 - .../Settings/FantasySettingsProvider.cs | 725 ----------- .../Fantasy.Unity/Fantasy.Unity.asmdef | 17 - .../Fantasy.Unity/Fantasy.Unity.asmdef.meta | 7 - .../ThirdParty/Fantasy.Unity/LICENSE.meta | 7 - .../ThirdParty/Fantasy.Unity/README.md.meta | 7 - .../Fantasy.Unity/RoslynAnalyzers.meta | 8 - .../Fantasy.SourceGenerator.dll | Bin 75776 -> 0 bytes .../Fantasy.SourceGenerator.dll.meta | 84 -- .../ThirdParty/Fantasy.Unity/Runtime.meta | 8 - .../Fantasy.Unity/Runtime/Core.meta | 8 - .../Core/Assembly/AssemblyLifecycle.cs | 91 -- .../Runtime/Core/Assembly/AssemblyManifest.cs | 256 ---- .../Runtime/Core/Assembly/Interface.meta | 8 - .../Assembly/Interface/IAssemblyLifecycle.cs | 29 - .../Interface/IEntitySystemRegistrar.cs | 73 -- .../IEntityTypeCollectionRegistrar.cs | 19 - .../IEntityTypeCollectionRegistrar.cs.meta | 11 - .../Interface/IEventSystemRegistrar.cs | 35 - .../Interface/IEventSystemRegistrar.cs.meta | 11 - .../Interface/IMessageHandlerResolver.cs | 49 - .../Interface/IMessageHandlerResolver.cs.meta | 11 - .../INetworkProtocolOpCodeResolver.cs | 40 - .../INetworkProtocolOpCodeResolver.cs.meta | 11 - .../Interface/INetworkProtocolRegistrar.cs | 19 - .../INetworkProtocolRegistrar.cs.meta | 11 - .../INetworkProtocolResponseTypeResolver.cs | 26 - ...etworkProtocolResponseTypeResolver.cs.meta | 11 - .../Interface/ISeparateTableRegistrar.cs | 34 - .../Interface/ISeparateTableRegistrar.cs.meta | 11 - .../Fantasy.Unity/Runtime/Core/Benchmark.meta | 8 - .../Runtime/Core/Benchmark/Handler.meta | 8 - .../Handler/BenchmarkRequestHandler.cs | 25 - .../Handler/BenchmarkRequestHandler.cs.meta | 11 - .../Fantasy.Unity/Runtime/Core/DataBase.meta | 8 - .../Runtime/Core/DataBase/DataBaseType.cs | 20 - .../Core/DataBase/DataBaseType.cs.meta | 11 - .../Runtime/Core/DataBase/IDataBase.cs | 210 ---- .../Runtime/Core/DataBase/IDataBase.cs.meta | 11 - .../Runtime/Core/DataBase/MongoDataBase.cs | 1081 ----------------- .../Core/DataBase/MongoDataBase.cs.meta | 11 - .../Runtime/Core/DataBase/World.cs | 77 -- .../Runtime/Core/DataBase/World.cs.meta | 11 - .../Entitas/Component/EntityComponent.meta | 8 - .../EntityComponent/EntityComponent.cs | 476 -------- .../EventComponent/EventComponent.cs | 236 ---- .../EventComponent/Interface/IEvent.cs | 173 --- .../Component/SeparateTableComponent.meta | 8 - .../SeparateTableAttribute.cs | 49 - .../SeparateTableAttribute.cs.meta | 11 - .../SeparateTableComponent.cs | 221 ---- .../SeparateTableComponent.cs.meta | 11 - .../Component/TimerComponent/TimeWheel.meta | 8 - .../TimerComponent/TimeWheel/ScheduledTask.cs | 49 - .../TimeWheel/ScheduledTask.cs.meta | 11 - .../TimerComponent/TimeWheel/TimeWheel.cs | 134 -- .../TimeWheel/TimeWheel.cs.meta | 11 - .../Interface/Supported/EntityInterface.cs | 46 - .../Supported/EntityInterface.cs.meta | 11 - .../Supported/EntitySupportedChecker.cs | 58 - .../Supported/EntitySupportedChecker.cs.meta | 11 - .../Interface/Supported/TypeHashCache.cs | 100 -- .../Interface/Supported/TypeHashCache.cs.meta | 11 - .../System/ICustomEntitySystem.cs.meta | 11 - .../Interface/System/IEntitySystem.cs.meta | 11 - .../Interface/System/ILateUpdateSystem.cs | 36 - .../System/ILateUpdateSystem.cs.meta | 11 - .../Runtime/Core/Helper/ByteHelper.cs | 801 ------------ .../Runtime/Core/Helper/HashCodeHelper.cs | 336 ----- .../Core/IdFactory/Default/RuntimeIdStruct.cs | 195 --- .../IdFactory/Interface/IIdFactoryTool.cs | 57 - .../IdFactory/World/WorldRuntimeIdFactory.cs | 227 ---- .../Runtime/Core/Log/ConsoleLog.cs | 144 --- .../Runtime/Core/Log/ConsoleLog.cs.meta | 11 - .../Runtime/Core/Network/Addressable.meta | 8 - .../Network/Addressable/AddressableHelper.cs | 141 --- .../Addressable/AddressableHelper.cs.meta | 11 - .../Addressable/AddressableManageComponent.cs | 144 --- .../AddressableManageComponent.cs.meta | 11 - .../AddressableMessageComponent.cs | 91 -- .../AddressableMessageComponent.cs.meta | 11 - .../Addressable/AddressableRouteComponent.cs | 215 ---- .../AddressableRouteComponent.cs.meta | 11 - .../Network/Addressable/AddressableScene.cs | 31 - .../Addressable/AddressableScene.cs.meta | 11 - .../Core/Network/Addressable/Handler.meta | 8 - .../Handler/I_AddressableAddHandler.cs | 26 - .../Handler/I_AddressableAddHandler.cs.meta | 11 - .../Handler/I_AddressableGetHandler.cs | 26 - .../Handler/I_AddressableGetHandler.cs.meta | 11 - .../Handler/I_AddressableLockHandler.cs | 26 - .../Handler/I_AddressableLockHandler.cs.meta | 11 - .../Handler/I_AddressableRemoveHandler.cs | 26 - .../I_AddressableRemoveHandler.cs.meta | 11 - .../Handler/I_AddressableUnLockHandler.cs | 27 - .../I_AddressableUnLockHandler.cs.meta | 11 - .../Dispatcher/MessageDispatcherComponent.cs | 416 ------- .../Network/Message/PacketParser/OpCode.cs | 131 -- .../Runtime/Core/Platform/Console.meta | 8 - .../Runtime/Core/Platform/Console/Entry.cs | 101 -- .../Core/Platform/Console/Entry.cs.meta | 11 - .../ThreadSynchronizationContext.cs.meta | 11 - .../Runtime/Core/Platform/Net.meta | 8 - .../Runtime/Core/Platform/Net/ConfigLoader.cs | 537 -------- .../Core/Platform/Net/ConfigLoader.cs.meta | 11 - .../Core/Platform/Net/ConfigTable.meta | 8 - .../Platform/Net/ConfigTable/MachineConfig.cs | 110 -- .../Net/ConfigTable/MachineConfig.cs.meta | 11 - .../Platform/Net/ConfigTable/ProcessConfig.cs | 122 -- .../Net/ConfigTable/ProcessConfig.cs.meta | 11 - .../Platform/Net/ConfigTable/SceneConfig.cs | 216 ---- .../Net/ConfigTable/SceneConfig.cs.meta | 11 - .../Platform/Net/ConfigTable/WorldConfig.cs | 115 -- .../Net/ConfigTable/WorldConfig.cs.meta | 11 - .../Runtime/Core/Platform/Net/Entry.cs | 117 -- .../Runtime/Core/Platform/Net/Entry.cs.meta | 11 - .../Runtime/Core/Platform/Net/Process.cs | 156 --- .../Runtime/Core/Platform/Net/Process.cs.meta | 11 - .../Core/Platform/Net/ProcessDefine.cs | 52 - .../Core/Platform/Net/ProcessDefine.cs.meta | 11 - .../Net/ThreadSynchronizationContext.cs | 52 - .../Net/ThreadSynchronizationContext.cs.meta | 11 - .../Runtime/Core/Platform/ProgramDefine.cs | 56 - .../Core/Platform/ProgramDefine.cs.meta | 11 - .../Unity/ThreadSynchronizationContext.cs | 104 -- .../Runtime/Core/Scene/ISceneUpdate.cs | 31 - .../Serialize/BsonPack/BsonPackHelperNet.cs | 314 ----- .../BsonPack/BsonPackHelperNet.cs.meta | 11 - .../Serialize/BsonPack/StructBsonSerialize.cs | 65 - .../BsonPack/StructBsonSerialize.cs.meta | 11 - .../BsonPack/SupportInitializeChecker.cs | 17 - .../BsonPack/SupportInitializeChecker.cs.meta | 11 - .../ProtoBufPackHelperNet.cs | 258 ---- .../ProtoBufPackHelperNet.cs.meta | 11 - .../Fantasy.Unity/Runtime/Plugins.meta | 8 - .../Fantasy.Unity/package.json.meta | 7 - Assets/Scripts/ThirdParty/NBC/LICENSE | 12 - Assets/Scripts/ThirdParty/NBC/README.md | 45 - Assets/Scripts/ThirdParty/NBC/package.json | 25 - .../ModelViewer/ModelViewRenderImage.cs | 1 - 2148 files changed, 5550 insertions(+), 13963 deletions(-) delete mode 100644 Assets/Scripts/Generate/NetworkProtocol/NetworkProtocolHelper.cs delete mode 100644 Assets/Scripts/Generate/NetworkProtocol/NetworkProtocolHelper.cs.meta rename Assets/Scripts/{ThirdParty => }/NBC.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Attributes.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Attributes.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/BuildContext.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/BuildContext.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Builder.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Builder.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Gathers.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherBase.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherBase.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFile.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFile.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFolder.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFolder.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFolderParent.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFolderParent.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherSingle.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherSingle.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherWithoutSub.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherWithoutSub.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Tasks.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Tasks/BuildBundleTask.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Tasks/BuildBundleTask.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Tasks/BuildTask.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Tasks/BuildTask.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Tasks/CopyToStreamingAssets.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Tasks/CopyToStreamingAssets.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Tasks/CopyVersionBundleTask.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Tasks/CopyVersionBundleTask.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Tasks/GatherTask.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Tasks/GatherTask.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Tasks/GenPackageDataTask.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Tasks/GenPackageDataTask.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Tasks/GenVersionDataTask.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Builder/Tasks/GenVersionDataTask.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Cache.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Cache/BuildAsset.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Cache/BuildAsset.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Cache/BuildBundle.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Cache/BuildBundle.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Cache/BuildPackage.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Cache/BuildPackage.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Cache/Caches.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Cache/Caches.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Cache/Histories.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Cache/Histories.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Cache/VersionHistory.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Cache/VersionHistory.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Configs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Configs/GroupConfig.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Configs/GroupConfig.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Configs/ISelectTag.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Configs/ISelectTag.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Configs/PackageConfig.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Configs/PackageConfig.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Defs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Defs/AddressMode.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Defs/AddressMode.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Defs/BundleMode.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Defs/BundleMode.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Defs/Defs.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Defs/Defs.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Defs/FilterEnum.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Defs/FilterEnum.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Defs/Language.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Defs/Language.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Defs/Styles.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Defs/Styles.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Builder.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Builder/BuilderWindow.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Builder/BuilderWindow.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Builder/SubView.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Builder/SubView/BuildBundleAssetsTreeEditor.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Builder/SubView/BuildBundleAssetsTreeEditor.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Builder/SubView/BuildBundleTreeEditor.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Builder/SubView/BuildBundleTreeEditor.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Collector.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Collector/CollectorWindow.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Collector/CollectorWindow.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Collector/PackagesListTreeView.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Collector/PackagesListTreeView.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Collector/SubView.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/AssetsTreeEditor.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/AssetsTreeEditor.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/GroupInfoGUI.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/GroupInfoGUI.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/GroupTreeEditor.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/GroupTreeEditor.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/PackageTreeEditor.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/PackageTreeEditor.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Commom.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Commom/Splitter.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Commom/Splitter.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/History.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/History/HistoryWindow.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/History/HistoryWindow.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/History/SubView.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/History/SubView/HistoryBundleTreeEditor.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/History/SubView/HistoryBundleTreeEditor.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/History/SubView/HistoryVersionTreeEditor.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/History/SubView/HistoryVersionTreeEditor.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Inspector.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Inspector/ResInspectorUI.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Inspector/ResInspectorUI.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Label.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Label/LabelGUI.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Label/LabelGUI.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Label/LabelMaskPopupContent.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Label/LabelMaskPopupContent.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Profiler.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Profiler/ProfilerWindow.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Profiler/ProfilerWindow.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Profiler/SubView.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Profiler/SubView/ProfilerAssetListView.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Profiler/SubView/ProfilerAssetListView.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Profiler/SubView/ProfilerBundleListView.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/GUI/Profiler/SubView/ProfilerBundleListView.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Images.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Images/HeaderBoxImage.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Images/HeaderBoxImage.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Images/StyleSheet.guiskin (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Images/StyleSheet.guiskin.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Images/icon_add.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Images/icon_add.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Images/icon_folder.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Images/icon_folder.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Images/icon_package.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Images/icon_package.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Images/icon_package2.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Images/icon_package2.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Initialize.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Initialize.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Menus.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Menus.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Settings.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Settings/Attributes.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Settings/Attributes.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Settings/BuildSettings.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Settings/BuildSettings.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Settings/CollectorSetting.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Settings/CollectorSetting.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Simulate.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Simulate/AddressableEditImpl.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Simulate/AddressableEditImpl.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Utils.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Utils/EditUtil.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Utils/EditUtil.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Utils/GUITools.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Utils/GUITools.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Utils/HistoryUtil.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Utils/HistoryUtil.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Utils/ImportTools.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Utils/ImportTools.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Utils/MultiColumnHeaderUtil.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Utils/MultiColumnHeaderUtil.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Utils/ScriptableSignleton.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/Asset/Utils/ScriptableSignleton.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Editor/Runtime/CheckUnityVersion.cs (81%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Editor/Runtime/CheckUnityVersion.cs.meta (53%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/FairyGUI.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/FairyGUI/DisplayObjectEditor.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/FairyGUI/DisplayObjectEditor.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/FairyGUI/EditorToolSet.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/FairyGUI/EditorToolSet.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/FairyGUI/PackagesWindow.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/FairyGUI/PackagesWindow.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/FairyGUI/StageCameraEditor.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/FairyGUI/StageCameraEditor.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/FairyGUI/UIConfigEditor.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/FairyGUI/UIConfigEditor.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/FairyGUI/UIContentScalerEditor.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/FairyGUI/UIContentScalerEditor.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/FairyGUI/UIPainterEditor.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/FairyGUI/UIPainterEditor.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/FairyGUI/UIPanelEditor.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/FairyGUI/UIPanelEditor.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Editor/Runtime/FantasyStartup.cs (85%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Editor/Runtime/FantasyStartup.cs.meta (53%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Editor/Runtime/LinkXmlGenerator.cs (73%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Editor/Runtime/LinkXmlGenerator.cs.meta (53%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/NBC.Editor.asmdef (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Editor/Runtime/NBC.Editor.asmdef.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Editor/Runtime/Settings.meta (53%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Editor/Runtime/Settings/FantasySettings.cs (93%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Editor/Runtime/Settings/FantasySettings.cs.meta (53%) create mode 100644 Assets/Scripts/NBC/Editor/Runtime/Settings/FantasySettingsProvider.cs rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Editor/Runtime/Settings/FantasySettingsProvider.cs.meta (53%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Editor/Runtime/Settings/FantasySettingsScriptableObject.cs (56%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Editor/Runtime/Settings/FantasySettingsScriptableObject.cs.meta (53%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Editor/Runtime/Settings/ScriptableObjectSingleton.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Editor/Runtime/Settings/ScriptableObjectSingleton.cs.meta (53%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Editor/Runtime/WSocket.meta (77%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Editor/Runtime/WSocket/SettingsWindow.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Editor/Runtime/WSocket/SettingsWindow.cs.meta (83%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/LICENSE (100%) rename Assets/Scripts/{ThirdParty => }/NBC/LICENSE.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/README.md (100%) rename Assets/Scripts/{ThirdParty => }/NBC/README.md.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Editor.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Address.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Address/Addressable.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Address/Addressable.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Address/AddressableRuntimeImpl.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Address/AddressableRuntimeImpl.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Address/Data.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Address/Data/AssetData.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Address/Data/AssetData.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Address/Data/BundleData.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Address/Data/BundleData.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Address/Data/PackageData.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Address/Data/PackageData.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Address/Data/VersionData.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Address/Data/VersionData.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Address/Data/VersionDataReader.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Address/Data/VersionDataReader.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Address/Info.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Address/Info/AssetInfo.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Address/Info/AssetInfo.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Address/Info/BundleInfo.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Address/Info/BundleInfo.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Loaders.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Loaders/AssetLoadFromDatabase.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Loaders/AssetLoadFromDatabase.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Loaders/AssetLoaderFromBundle.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Loaders/AssetLoaderFromBundle.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Loaders/BundleLoaderFromDownload.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Loaders/BundleLoaderFromDownload.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Loaders/BundleLoaderFromLocal.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Loaders/BundleLoaderFromLocal.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Loaders/IAssetLoader.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Loaders/IAssetLoader.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Loaders/IBundleLoader.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Loaders/IBundleLoader.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Loaders/ISceneLoader.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Loaders/ISceneLoader.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Loaders/SceneLoadFromDatabase.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Loaders/SceneLoadFromDatabase.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Loaders/SceneLoaderFromBundle.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Loaders/SceneLoaderFromBundle.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Providers.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Providers/AssetProvider.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Providers/AssetProvider.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Providers/BundledProvider.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Providers/BundledProvider.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Providers/Dependency.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Providers/Dependency.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Providers/ProviderBase.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Providers/ProviderBase.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Providers/SceneProvider.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Asset/Providers/SceneProvider.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Assets.cs (99%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Assets.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Const.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Const/Const.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Const/Const.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Enums.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Enums/BundleLoadMode.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Enums/BundleLoadMode.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Services.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Services/Debug.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Services/Debug/DebugInfo.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Services/Debug/DebugInfo.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Services/Debug/DebugRemoteServer.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Services/Debug/DebugRemoteServer.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Services/IDecryptionServices.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Services/IDecryptionServices.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Services/Recycler.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Services/Recycler.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/AssetTaskBase.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/AssetTaskBase.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Download.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadBundlesTask.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadBundlesTask.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadCertificateHandler.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadCertificateHandler.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadFileTask.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadFileTask.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadRunner.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadRunner.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadTaskBase.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadTaskBase.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Initialization.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Initialization/EditorInitializationTask.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Initialization/EditorInitializationTask.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Initialization/InitializationTask.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Initialization/InitializationTask.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Initialization/OfflineInitializationTask.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Initialization/OfflineInitializationTask.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Initialization/OnlineInitializationTask.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Initialization/OnlineInitializationTask.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Initialization/StepTasks.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Initialization/StepTasks/CheckCoverInstallTask.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Initialization/StepTasks/CheckCoverInstallTask.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Initialization/StepTasks/CheckUnpackPackageTask.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Initialization/StepTasks/CheckUnpackPackageTask.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Provider.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Provider/ProviderRunner.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Provider/ProviderRunner.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/RunFunctionTask.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/RunFunctionTask.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/TaskRunner.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/TaskRunner.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Unpack.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackFileTask.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackFileTask.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackPackagesTask.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackPackagesTask.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackVersionTask.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackVersionTask.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Update.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Update/CheckUpdateTask.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Update/CheckUpdateTask.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Update/UpdateContext.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Update/UpdateContext.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Update/UpdateVersionTask.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Tasks/Update/UpdateVersionTask.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Utils.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Utils/Mono.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Utils/Mono.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Utils/StreamingAssetsUtil.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Utils/StreamingAssetsUtil.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Utils/Util.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Asset/Runtime/Utils/Util.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Core.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Core/App.cs (99%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Core/App.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Assembly.meta (100%) create mode 100644 Assets/Scripts/NBC/Runtime/Core/Assembly/AssemblyInfo.cs rename Assets/Scripts/{ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/AssemblyLifecycle.cs.meta => NBC/Runtime/Core/Assembly/AssemblyInfo.cs.meta} (83%) create mode 100644 Assets/Scripts/NBC/Runtime/Core/Assembly/AssemblySystem.cs rename Assets/Scripts/{ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/AssemblyManifest.cs.meta => NBC/Runtime/Core/Assembly/AssemblySystem.cs.meta} (83%) create mode 100644 Assets/Scripts/NBC/Runtime/Core/Assembly/IAssembly.cs rename Assets/Scripts/{ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IAssemblyLifecycle.cs.meta => NBC/Runtime/Core/Assembly/IAssembly.cs.meta} (83%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity/Editor.meta => NBC/Runtime/Core/Attributes.meta} (77%) create mode 100644 Assets/Scripts/NBC/Runtime/Core/Attributes/Attributes.cs create mode 100644 Assets/Scripts/NBC/Runtime/Core/Attributes/Attributes.cs.meta create mode 100644 Assets/Scripts/NBC/Runtime/Core/Config.meta create mode 100644 Assets/Scripts/NBC/Runtime/Core/Config/ConfigContext.cs create mode 100644 Assets/Scripts/NBC/Runtime/Core/Config/ConfigContext.cs.meta create mode 100644 Assets/Scripts/NBC/Runtime/Core/Config/ConfigTableHelper.cs create mode 100644 Assets/Scripts/NBC/Runtime/Core/Config/ConfigTableHelper.cs.meta create mode 100644 Assets/Scripts/NBC/Runtime/Core/Config/IConfigTable.cs create mode 100644 Assets/Scripts/NBC/Runtime/Core/Config/IConfigTable.cs.meta rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Collection.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Collection/CircularBuffer.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Collection/CircularBuffer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Collection/ConcurrentOneToManyListPool.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Collection/ConcurrentOneToManyListPool.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Collection/ConcurrentOneToManyQueuePool.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Collection/ConcurrentOneToManyQueuePool.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Collection/HashSetPool.cs (98%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Collection/HashSetPool.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Collection/ListPool.cs (97%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Collection/ListPool.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Collection/OneToManyHashSetPool.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Collection/OneToManyHashSetPool.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Collection/OneToManyListPool.cs (90%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Collection/OneToManyListPool.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Collection/OneToManyQueuePool.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Collection/OneToManyQueuePool.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Collection/ReuseList.cs (96%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Collection/ReuseList.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Collection/SortedConcurrentOneToManyListPool.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Collection/SortedConcurrentOneToManyListPool.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Collection/SortedOneToManyHashSetPool.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Collection/SortedOneToManyHashSetPool.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Collection/SortedOneToManyListPool.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Collection/SortedOneToManyListPool.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Dictionary.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Dictionary/DictionaryExtensions.cs (96%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Dictionary/DictionaryExtensions.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Dictionary/DictionaryPool.cs (96%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Dictionary/DictionaryPool.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Dictionary/DoubleMapDictionaryPool.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Dictionary/DoubleMapDictionaryPool.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Dictionary/EntityDictionary.cs (97%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Dictionary/EntityDictionary.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Dictionary/OneToManyDictionaryPool.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Dictionary/OneToManyDictionaryPool.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Dictionary/OneToManySortedDictionaryPool.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Dictionary/OneToManySortedDictionaryPool.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Dictionary/ReuseDictionary.cs (96%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Dictionary/ReuseDictionary.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Dictionary/SortedDictionaryPool.cs (96%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/Dictionary/SortedDictionaryPool.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/NativeCollections.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/PriorityQueue.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueGenerics.cs (98%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueGenerics.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueItem.cs (94%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueItem.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueSimple.cs (98%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueSimple.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/SkipTable.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/SkipTable/SkipTable.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/SkipTable/SkipTable.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/SkipTable/SkipTableBase.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/SkipTable/SkipTableBase.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/SkipTable/SkipTableDesc.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/SkipTable/SkipTableDesc.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/SkipTable/SkipTableNode.cs (98%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/DataStructure/SkipTable/SkipTableNode.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/CoroutineLock.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLock.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLock.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLockComponent.cs (96%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLockComponent.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLockQueue.cs (96%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLockQueue.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/CoroutineLock/WaitCoroutineLock.cs (98%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/CoroutineLock/WaitCoroutineLock.cs.meta (100%) create mode 100644 Assets/Scripts/NBC/Runtime/Core/Entitas/Component/EntityComponent.cs rename Assets/Scripts/{ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EntityComponent => NBC/Runtime/Core/Entitas/Component}/EntityComponent.cs.meta (83%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/EventComponent.meta (100%) create mode 100644 Assets/Scripts/NBC/Runtime/Core/Entitas/Component/EventComponent/EventComponent.cs rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/EventComponent/EventComponent.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/EventComponent/Interface.meta (100%) create mode 100644 Assets/Scripts/NBC/Runtime/Core/Entitas/Component/EventComponent/Interface/IEvent.cs rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/EventComponent/Interface/IEvent.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/MessagePoolComponent.cs (78%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/MessagePoolComponent.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/TimerComponent.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/TimerComponent/Interface.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/TimerComponent/Interface/TimerHandler.cs (85%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/TimerComponent/Interface/TimerHandler.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/TimerComponent/TimerAction.cs (97%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/TimerComponent/TimerAction.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/TimerComponent/TimerComponent.cs (87%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/TimerComponent/TimerComponent.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler/TimerSchedulerNet.cs (98%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler/TimerSchedulerNet.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler/TimerSchedulerNetUnity.cs (98%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler/TimerSchedulerNetUnity.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/TimerComponent/TimerType.cs (95%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Component/TimerComponent/TimerType.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Entity.cs (73%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Entity.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/EntityPool.cs (97%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/EntityPool.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/EntityReference.cs (90%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/EntityReference.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Interface.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Interface/Supported.meta (100%) create mode 100644 Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISingleCollectionRoot.cs rename Assets/Scripts/{ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IEntitySystemRegistrar.cs.meta => NBC/Runtime/Core/Entitas/Interface/Supported/ISingleCollectionRoot.cs.meta} (83%) create mode 100644 Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedDataBase.cs create mode 100644 Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedDataBase.cs.meta create mode 100644 Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedMultiEntity.cs create mode 100644 Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedMultiEntity.cs.meta create mode 100644 Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedSingleCollection.cs create mode 100644 Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedSingleCollection.cs.meta create mode 100644 Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedTransfer.cs create mode 100644 Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedTransfer.cs.meta rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Interface/System.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Interface/System/IAwakeSystem.cs (78%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Interface/System/IAwakeSystem.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/ICustomEntitySystem.cs => NBC/Runtime/Core/Entitas/Interface/System/ICustomEntitiesSystem.cs} (87%) create mode 100644 Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/ICustomEntitiesSystem.cs.meta rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Interface/System/IDeserializeSystem.cs (77%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Interface/System/IDeserializeSystem.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Interface/System/IDestroySystem.cs (77%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Interface/System/IDestroySystem.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IEntitySystem.cs => NBC/Runtime/Core/Entitas/Interface/System/IEntitiesSystem.cs} (78%) create mode 100644 Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IEntitiesSystem.cs.meta create mode 100644 Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IFrameUpdateSystem.cs create mode 100644 Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IFrameUpdateSystem.cs.meta rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Interface/System/IUpdateSystem.cs (79%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Entitas/Interface/System/IUpdateSystem.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Core/Event.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Core/Event/EventArgs.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Core/Event/EventArgs.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Core/Event/EventDispatcher.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Core/Event/EventDispatcher.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Core/Event/IEventDispatcher.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Core/Event/IEventDispatcher.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Core/FSM.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Core/FSM/Fsm.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Core/FSM/Fsm.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Core/FSM/FsmBaseState.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Core/FSM/FsmBaseState.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Core/FSM/FsmTransmit.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Core/FSM/FsmTransmit.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/FTask.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/FTask/Builder.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/FTask/Builder/AsyncFTaskCompletedMethodBuilder.cs (98%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/FTask/Builder/AsyncFTaskCompletedMethodBuilder.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/FTask/Builder/AsyncFTaskMethodBuilder.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/FTask/Builder/AsyncFTaskMethodBuilder.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/FTask/Builder/AsyncFVoidMethodBuilder.cs (98%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/FTask/Builder/AsyncFVoidMethodBuilder.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/FTask/FCancellationToken.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/FTask/FCancellationToken/FCancellationToken.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/FTask/FCancellationToken/FCancellationToken.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/FTask/FTask.Extension.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/FTask/FTask.Extension/FTask.Factory.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/FTask/FTask.Extension/FTask.Factory.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/FTask/FTask.Extension/FTask.Tools.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/FTask/FTask.Extension/FTask.Tools.cs.meta (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask.meta (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Collection.meta (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Collection/ParallelTaskCollection.cs (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Collection/ParallelTaskCollection.cs.meta (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Collection/SequenceTaskCollection.cs (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Collection/SequenceTaskCollection.cs.meta (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Collection/TaskCollection.cs (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Collection/TaskCollection.cs.meta (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Collection/TimelineTaskCollection.cs (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Collection/TimelineTaskCollection.cs.meta (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Extensions.meta (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Extensions/TaskChainExtension.cs (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Extensions/TaskChainExtension.cs.meta (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Interface.meta (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Interface/IProcess.cs (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Interface/IProcess.cs.meta (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Interface/IRunner.cs (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Interface/IRunner.cs.meta (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Interface/ITask.cs (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Interface/ITask.cs.meta (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Interface/ITaskCollection.cs (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Interface/ITaskCollection.cs.meta (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Interface/ITaskRun.cs (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Interface/ITaskRun.cs.meta (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/NTask.cs (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/NTask.cs.meta (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/NTaskStatus.cs (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/NTaskStatus.cs.meta (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Runner.meta (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Runner/FlushingOperation.cs (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Runner/FlushingOperation.cs.meta (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Runner/Runner.cs (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Runner/Runner.cs.meta (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Runner/RunnerProcess.cs (100%) rename Assets/Scripts/{ThirdParty/NBC/Runtime/Core => NBC/Runtime/Core/FTask}/NTask/Runner/RunnerProcess.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/FTask/Task.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/FTask/Task/FTask.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/FTask/Task/FTask.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/FTask/Task/FTaskCompleted.cs (97%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/FTask/Task/FTaskCompleted.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/FTask/Task/FVoid.cs (97%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/FTask/Task/FVoid.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper.meta (100%) create mode 100644 Assets/Scripts/NBC/Runtime/Core/Helper/ByteHelper.cs rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/ByteHelper.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/Download.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/Download/ADownload.cs (94%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/Download/ADownload.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/Download/Download.cs (96%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/Download/Download.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/Download/DownloadAssetBundle.cs (95%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/Download/DownloadAssetBundle.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/Download/DownloadAudioClip.cs (95%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/Download/DownloadAudioClip.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/Download/DownloadByte.cs (94%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/Download/DownloadByte.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/Download/DownloadSprite.cs (95%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/Download/DownloadSprite.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/Download/DownloadText.cs (94%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/Download/DownloadText.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/Download/DownloadTexture.cs (94%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/Download/DownloadTexture.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/EncryptHelper.cs (90%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/EncryptHelper.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/FileHelper.cs (98%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/FileHelper.cs.meta (100%) create mode 100644 Assets/Scripts/NBC/Runtime/Core/Helper/HashCodeHelper.cs rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/HashCodeHelper.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/HttpClient.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/HttpClient/HttpClientHelper.cs (98%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/HttpClient/HttpClientHelper.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/HttpClient/HttpClientPool.cs (98%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/HttpClient/HttpClientPool.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/HttpClient/IJsonRpcRequest.cs (90%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/HttpClient/IJsonRpcRequest.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/JsonHelper.cs (98%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/JsonHelper.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/NetworkHelper.cs (77%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/NetworkHelper.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/RandomHelper.cs (74%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/RandomHelper.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/RandomHelperWebgl.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/RandomHelperWebgl.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/SocketHelper.cs (94%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/SocketHelper.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/TimeHelper.cs (90%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/TimeHelper.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/UnityWebRequest.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/UnityWebRequest/UnityWebRequestHelper.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/UnityWebRequest/UnityWebRequestHelper.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/WebSocketHelper.cs (98%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/WebSocketHelper.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/WinPeriod.cs (96%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Helper/WinPeriod.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/IdFactory.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/IdFactory/Default.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/IdFactory/Default/EntityIdStruct.cs (84%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/IdFactory/Default/EntityIdStruct.cs.meta (100%) create mode 100644 Assets/Scripts/NBC/Runtime/Core/IdFactory/Default/RuntimeIdStruct.cs rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/IdFactory/Default/RuntimeIdStruct.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/IdFactory/IdFactoryHelper.cs (87%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/IdFactory/IdFactoryHelper.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/IdFactory/IdFactoryType.cs (95%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/IdFactory/IdFactoryType.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/IdFactory/Interface.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/IdFactory/Interface/IIdFactory.cs (86%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/IdFactory/Interface/IIdFactory.cs.meta (100%) create mode 100644 Assets/Scripts/NBC/Runtime/Core/IdFactory/Interface/IIdFactoryTool.cs rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/IdFactory/Interface/IIdFactoryTool.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/IdFactory/World.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/IdFactory/World/WorldEntityIdFactory.cs (86%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/IdFactory/World/WorldEntityIdFactory.cs.meta (100%) create mode 100644 Assets/Scripts/NBC/Runtime/Core/IdFactory/World/WorldRuntimeIdFactory.cs rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/IdFactory/World/WorldRuntimeIdFactory.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/InnerErrorCode.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/InnerErrorCode.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Log.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Log/ILog.cs (90%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Log/ILog.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Log/Log.cs (89%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Log/Log.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Log/UnityLog.cs (97%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Log/UnityLog.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity/Editor/Runtime.meta => NBC/Runtime/Core/LowLevel.meta} (77%) create mode 100644 Assets/Scripts/NBC/Runtime/Core/LowLevel/FixedBytes.cs create mode 100644 Assets/Scripts/NBC/Runtime/Core/LowLevel/FixedBytes.cs.meta create mode 100644 Assets/Scripts/NBC/Runtime/Core/LowLevel/XxHash.cs create mode 100644 Assets/Scripts/NBC/Runtime/Core/LowLevel/XxHash.cs.meta rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/MemoryStreamBufferPool.cs (98%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/MemoryStreamBufferPool.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/Dispatcher.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/Dispatcher/Interface.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/Dispatcher/Interface/IMessageHandler.cs (98%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/Dispatcher/Interface/IMessageHandler.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/Dispatcher/Interface/IRouteMessageHandler.cs (94%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/Dispatcher/Interface/IRouteMessageHandler.cs.meta (100%) create mode 100644 Assets/Scripts/NBC/Runtime/Core/Network/Message/Dispatcher/MessageDispatcherComponent.cs rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/Dispatcher/MessageDispatcherComponent.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/IMessage.cs (74%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/IMessage.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/InnerMessage.cs (87%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/InnerMessage.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser/Handler.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser/Handler/BufferPacketParser.cs (66%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser/Handler/BufferPacketParser.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser/Handler/CircularBufferPacketParser.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser/Handler/CircularBufferPacketParser.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser/Handler/OuterBufferPacketParserHelper.cs (72%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser/Handler/OuterBufferPacketParserHelper.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser/Handler/ReadOnlyMemoryPacketParser.cs (56%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser/Handler/ReadOnlyMemoryPacketParser.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser/Interface.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser/Interface/APackInfo.cs (93%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser/Interface/APackInfo.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser/Interface/APacketParser.cs (89%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser/Interface/APacketParser.cs.meta (100%) create mode 100644 Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/OpCode.cs rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser/OpCode.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser/Pack.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser/Pack/InnerPackInfo.cs (83%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser/Pack/InnerPackInfo.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser/Pack/OuterPackInfo.cs (94%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser/Pack/OuterPackInfo.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser/Pack/ProcessPackInfo.cs (88%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser/Pack/ProcessPackInfo.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser/Packet.cs (91%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser/Packet.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser/PacketParserFactory.cs (98%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/PacketParser/PacketParserFactory.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/Scheduler.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/Scheduler/ClientMessageScheduler.cs (96%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/Scheduler/ClientMessageScheduler.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/Scheduler/InnerMessageScheduler.cs (95%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/Scheduler/InnerMessageScheduler.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/Scheduler/Interface.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/Scheduler/Interface/ANetworkMessageScheduler.cs (86%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/Scheduler/Interface/ANetworkMessageScheduler.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/Scheduler/MessageHelper.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/Scheduler/MessageHelper/MessageSender.cs (97%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/Scheduler/MessageHelper/MessageSender.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/Scheduler/MessageHelper/NetworkMessagingComponent.cs (92%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/Scheduler/MessageHelper/NetworkMessagingComponent.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/Scheduler/MessageHelper/OnNetworkMessageUpdateCheckTimeout.cs (97%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/Scheduler/MessageHelper/OnNetworkMessageUpdateCheckTimeout.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/Scheduler/OuterMessageScheduler.cs (90%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Message/Scheduler/OuterMessageScheduler.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/Exception.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/Exception/ScanException.cs (95%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/Exception/ScanException.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/HTTP.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/HTTP/HTTPServerNetwork.cs (60%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/HTTP/HTTPServerNetwork.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/HTTP/SceneContextFilter.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/HTTP/SceneContextFilter.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/Interface.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/Interface/AClientNetwork.cs (91%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/Interface/AClientNetwork.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/Interface/ANetwork.cs (97%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/Interface/ANetwork.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/Interface/ANetworkServerChannel.cs (96%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/Interface/ANetworkServerChannel.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/Interface/INetworkChannel.cs (73%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/Interface/INetworkChannel.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP/Base.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP/Base/Kcp.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP/Base/Kcp.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP/Base/c.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP/Base/c/kcp.cs (96%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP/Base/c/kcp.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP/Base/define.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP/Base/define/system.cs (51%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP/Base/define/system.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP/Base/include.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP/Base/include/kcp.cs (95%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP/Base/include/kcp.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP/Client.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP/Client/KCPClientNetwork.cs (96%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP/Client/KCPClientNetwork.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP/KCPSettings.cs (67%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP/KCPSettings.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP/KcpHeader.cs (59%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP/KcpHeader.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP/Server.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkByArrayPool.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkByArrayPool.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkByPipe.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkByPipe.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkChannel.cs (94%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkChannel.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/NetworkProtocolFactory.cs (92%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/NetworkProtocolFactory.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/NetworkProtocolType.cs (98%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/NetworkProtocolType.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/NetworkThreadComponent.cs (98%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/NetworkThreadComponent.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/TCP.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/TCP/Client.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/TCP/Client/TCPClientNetwork.cs (97%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/TCP/Client/TCPClientNetwork.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/TCP/Server.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/TCP/Server/TCPServerNetwork.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/TCP/Server/TCPServerNetwork.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/TCP/Server/TCPServerNetworkChannel.cs (98%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/TCP/Server/TCPServerNetworkChannel.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/WebSocket.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/WebSocket/Client.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/WebSocket/Client/WebSocketClientNetwork.cs (91%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/WebSocket/Client/WebSocketClientNetwork.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/WebSocket/Client/WebSocketClientNetworkWebgl.cs (95%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/WebSocket/Client/WebSocketClientNetworkWebgl.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/WebSocket/Server.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/WebSocket/Server/WebSocketServerNetwork.cs (55%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/WebSocket/Server/WebSocketServerNetwork.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/WebSocket/Server/WebSocketServerNetworkChannel.cs (88%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Protocol/WebSocket/Server/WebSocketServerNetworkChannel.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Component.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Component/RoamingComponent.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Component/RoamingComponent.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Component/SessionRoamingComponent.cs (71%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Component/SessionRoamingComponent.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Component/SessionRoamingFlgComponent.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Component/SessionRoamingFlgComponent.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Component/TerminusComponent.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Component/TerminusComponent.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Entity.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Entity/Roaming.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Entity/Roaming.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Entity/Terminus.cs (96%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Entity/Terminus.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Handler.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Handler/I_GetTerminusIdRequestHandler.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Handler/I_GetTerminusIdRequestHandler.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Handler/I_LinkRoamingRequestHandler.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Handler/I_LinkRoamingRequestHandler.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Handler/I_LockTerminusIdRequestHandler.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Handler/I_LockTerminusIdRequestHandler.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Handler/I_TransferTerminusRequestHandler.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Handler/I_TransferTerminusRequestHandler.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Handler/I_UnLinkRoamingRequestHandler.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Handler/I_UnLinkRoamingRequestHandler.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Handler/I_UnLockTerminusIdRequestHandler.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Roaming/Handler/I_UnLockTerminusIdRequestHandler.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Route.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Route/RouteComponent.cs (94%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Route/RouteComponent.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Session.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Session/Component.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Session/Component/ConsoleSessionHeartbeatComponent.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Session/Component/ConsoleSessionHeartbeatComponent.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Session/Component/SessionIdleCheckerComponent.cs (83%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Session/Component/SessionIdleCheckerComponent.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Session/Component/UnitySessionHeartbeatComponent.cs (70%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Session/Component/UnitySessionHeartbeatComponent.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Session/ProcessSession.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Session/ProcessSession/ProcessScheduler.cs (89%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Session/ProcessSession/ProcessScheduler.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Session/ProcessSession/ProcessSession.cs (76%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Session/ProcessSession/ProcessSession.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Session/ProcessSession/ProcessSessionInfo.cs (91%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Session/ProcessSession/ProcessSessionInfo.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Session/Session.cs (81%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Network/Session/Session.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Platform.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Platform/Unity.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Platform/Unity/AppDefine.cs (94%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Platform/Unity/AppDefine.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Platform/Unity/Attributes.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Platform/Unity/Attributes/BsonDefaultValueAttribute.cs (91%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Platform/Unity/Attributes/BsonDefaultValueAttribute.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Platform/Unity/Attributes/BsonElementAttribute.cs (92%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Platform/Unity/Attributes/BsonElementAttribute.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Platform/Unity/Attributes/BsonIdAttribute.cs (88%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Platform/Unity/Attributes/BsonIdAttribute.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreAttribute.cs (88%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreAttribute.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreIfDefaultAttribute.cs (92%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreIfDefaultAttribute.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreIfNullAttribute.cs (88%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreIfNullAttribute.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Platform/Unity/Entry.cs (83%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Platform/Unity/Entry.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Platform/Unity/Temp.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Platform/Unity/Temp.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Console => NBC/Runtime/Core/Platform/Unity}/ThreadSynchronizationContext.cs (61%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Platform/Unity/ThreadSynchronizationContext.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Pool.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Pool/Concurrent.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Pool/Concurrent/MultiThreadPool.cs (98%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Pool/Concurrent/MultiThreadPool.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Pool/Concurrent/MultiThreadPoolQueue.cs (98%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Pool/Concurrent/MultiThreadPoolQueue.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Pool/Interface.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Pool/Interface/IPool.cs (94%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Pool/Interface/IPool.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Pool/Normal.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Pool/Normal/Pool.cs (98%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Pool/Normal/Pool.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Pool/Normal/PoolCore.cs (87%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Pool/Normal/PoolCore.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Pool/Normal/PoolWithDisposable.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Pool/Normal/PoolWithDisposable.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Pool/PoolHelper.cs (97%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Pool/PoolHelper.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Scene.meta (100%) create mode 100644 Assets/Scripts/NBC/Runtime/Core/Scene/ISceneUpdate.cs rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Scene/ISceneUpdate.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Scene/Scene.cs (51%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Scene/Scene.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Scene/SceneRuntimeMode.cs (97%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Scene/SceneRuntimeMode.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Scene/SceneRuntimeType.cs (96%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Scene/SceneRuntimeType.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Scene/Scheduler.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Scene/Scheduler/ISceneScheduler.cs (90%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Scene/Scheduler/ISceneScheduler.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Scene/Scheduler/MainScheduler.cs (74%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Scene/Scheduler/MainScheduler.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Scene/Scheduler/MultiThreadScheduler.cs (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Scene/Scheduler/MultiThreadScheduler.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Scene/Scheduler/ThreadPoolScheduler.cs (87%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Scene/Scheduler/ThreadPoolScheduler.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Scene/Scheduler/ThreadScheduler.cs (93%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Scene/Scheduler/ThreadScheduler.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Scene/SubScene.cs (87%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Scene/SubScene.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Serialize.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Serialize/BsonPack.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Serialize/BsonPack/BsonPackHelperUnity.cs (84%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Serialize/BsonPack/BsonPackHelperUnity.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Serialize/Interface.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Serialize/Interface/ASerialize.cs (52%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Serialize/Interface/ASerialize.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Serialize/Interface/ISerialize.cs (87%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Serialize/Interface/ISerialize.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Serialize/MemoryStreamBuffer.cs (98%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Serialize/MemoryStreamBuffer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Serialize/ProtoBufPackHelper.meta (100%) create mode 100644 Assets/Scripts/NBC/Runtime/Core/Serialize/ProtoBufPackHelper/IProto.cs create mode 100644 Assets/Scripts/NBC/Runtime/Core/Serialize/ProtoBufPackHelper/IProto.cs.meta rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Serialize/ProtoBufPackHelper/ProtoBufPackHelperUnity.cs (86%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Serialize/ProtoBufPackHelper/ProtoBufPackHelperUnity.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Serialize/SerializerManager.cs (75%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Core/Serialize/SerializerManager.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity.meta => NBC/Runtime/Core/Services.meta} (77%) create mode 100644 Assets/Scripts/NBC/Runtime/Core/Services/ISingletonAwake.cs create mode 100644 Assets/Scripts/NBC/Runtime/Core/Services/ISingletonAwake.cs.meta create mode 100644 Assets/Scripts/NBC/Runtime/Core/Services/MonoManager.cs create mode 100644 Assets/Scripts/NBC/Runtime/Core/Services/MonoManager.cs.meta create mode 100644 Assets/Scripts/NBC/Runtime/Core/Services/Singleton.cs create mode 100644 Assets/Scripts/NBC/Runtime/Core/Services/Singleton.cs.meta create mode 100644 Assets/Scripts/NBC/Runtime/Core/Services/TimeInfo.cs create mode 100644 Assets/Scripts/NBC/Runtime/Core/Services/TimeInfo.cs.meta create mode 100644 Assets/Scripts/NBC/Runtime/Core/Services/Timer.cs create mode 100644 Assets/Scripts/NBC/Runtime/Core/Services/Timer.cs.meta rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Language.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Language/Const.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Language/Const/LanguageConst.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Language/Const/LanguageConst.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Language/Interfaces.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Language/Interfaces/ILanguage.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Language/Interfaces/ILanguage.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Language/Lan.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Language/Lan.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Language/LanguageComponent.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Language/LanguageComponent.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Language/LanguageConcrete.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Language/LanguageConcrete/LanguageFont.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Language/LanguageConcrete/LanguageFont.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Language/LanguageConcrete/LanguageImage.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Language/LanguageConcrete/LanguageImage.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Language/LanguageConcrete/LanguageText.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Language/LanguageConcrete/LanguageText.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Language/LanguageConfig.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Language/LanguageConfig.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Language/LanguageManager.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Language/LanguageManager.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/NBC.asmdef (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/NBC.asmdef.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/BagMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/BagMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/BagWindow.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/BagWindow.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/IconManager.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/IconManager.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/MyGLoader.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/MyGLoader.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/BasicsMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/BasicsMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/Window1.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/Window1.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/Window2.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/Window2.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/BundleUsage.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/BundleUsage/BundleUsageMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/BundleUsage/BundleUsageMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Cooldown.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Cooldown/CooldownMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Cooldown/CooldownMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Curve.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Curve/CurveMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Curve/CurveMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/CutScene.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/CutScene/CutSceneMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/CutScene/CutSceneMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/CutScene/LevelManager.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/CutScene/LevelManager.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Editor.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Editor/BuildAssetBundles.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Editor/BuildAssetBundles.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitComponent.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitComponent.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitManager.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitManager.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitNumbersMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitNumbersMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Emoji.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Emoji/EmojiMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Emoji/EmojiMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Emoji/EmojiParser.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Emoji/EmojiParser.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Extension.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Extension/ExtensionMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Extension/ExtensionMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Extension/MailItem.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Extension/MailItem.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Filter.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Filter/FilterMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Filter/FilterMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Gesture.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Gesture/GestureMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Gesture/GestureMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Guide.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Guide/GuideMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Guide/GuideMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/HeadBar.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/HeadBar/HeadBarMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/HeadBar/HeadBarMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/HitTest.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/HitTest/HitTestMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/HitTest/HitTestMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Joystick.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Joystick/JoystickMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Joystick/JoystickMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Joystick/JoystickModule.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Joystick/JoystickModule.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/LoopList.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/LoopList/LoopListMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/LoopList/LoopListMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/ModalWaiting.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/ModalWaiting/ModalWaitingMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/ModalWaiting/ModalWaitingMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/ModalWaiting/Window4.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/ModalWaiting/Window4.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Model.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Model/ModelMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Model/ModelMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Particles.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Particles/CoolComponent.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Particles/CoolComponent.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Particles/ParticlesMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Particles/ParticlesMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Perspetive.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Perspetive/PerspectiveMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Perspetive/PerspectiveMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/PullToRefresh.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/PullToRefresh/PullToRefreshMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/PullToRefresh/PullToRefreshMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/PullToRefresh/ScrollPaneHeader.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/PullToRefresh/ScrollPaneHeader.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/RenderImage.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/RenderImage.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/RenderTextureMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/RenderTextureMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/Window3.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/Window3.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Cooldown.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Cooldown/k0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Cooldown/k0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Cooldown/k1.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Cooldown/k1.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Curve.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Curve/New Material.mat (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Curve/New Material.mat.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Curve/aomian.FBX (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Curve/aomian.FBX.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Materials.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Materials/EmbersParticle.mat (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Materials/EmbersParticle.mat.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Materials/FlameRoundYellowParticle.mat (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Materials/FlameRoundYellowParticle.mat.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Textures.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Textures/FlameRoundParticleSheet.tif (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Textures/FlameRoundParticleSheet.tif.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/Shared.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/Shared/Prefabs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/Shared/Prefabs/ParticlesLight.prefab (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/Shared/Prefabs/ParticlesLight.prefab.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Flame.prefab (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Flame.prefab.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/LiberationSans SDF.asset (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/LiberationSans SDF.asset.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/LiberationSans.ttf (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/LiberationSans.ttf.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/afont.ttf (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/afont.ttf.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Gesture.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Gesture/Globe Material.mat (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Gesture/Globe Material.mat.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Gesture/globe.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Gesture/globe.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i1.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i1.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i2.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i2.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i3.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i3.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i4.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i4.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i5.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i5.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i6.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i6.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i7.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i7.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i8.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i8.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i9.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i9.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/RenderTexture.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/RenderTexture/FullScreen.shader (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/RenderTexture/FullScreen.shader.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/RenderTexture/RenderImageCamera.prefab (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/RenderTexture/RenderImageCamera.prefab.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/Role-Diffuse.shader (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/Role-Diffuse.shader.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/U1NPC0040.mat (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/U1NPC0040.mat.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/U1NPC0041.mat (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/U1NPC0041.mat.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Textures.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Textures/U1NPC0040.tga (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Textures/U1NPC0040.tga.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc-with-hud.prefab (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc-with-hud.prefab.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc.prefab (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc.prefab.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc2.FBX (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc2.FBX.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc3.prefab (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc3.prefab.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npcs.FBX (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npcs.FBX.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/test.prefab (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/test.prefab.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Bag_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Bag_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Bag_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Bag_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_gojg7u.wav (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_gojg7u.wav.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_o4lt7w.wav (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_o4lt7w.wav.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/BundleUsage_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/BundleUsage_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/BundleUsage_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/BundleUsage_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Cooldown_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Cooldown_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Cooldown_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Cooldown_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Curve_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Curve_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Curve_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Curve_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/CutScene_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/CutScene_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/CutScene_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/CutScene_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/EmitNumbers_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/EmitNumbers_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/EmitNumbers_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/EmitNumbers_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Emoji_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Emoji_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Emoji_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Emoji_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Extension_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Extension_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Extension_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Extension_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Filter_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Filter_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Filter_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Filter_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Gesture_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Gesture_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Guide_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Guide_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Guide_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Guide_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HeadBar_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HeadBar_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HeadBar_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HeadBar_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HitTest_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HitTest_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HitTest_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HitTest_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Joystick_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Joystick_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Joystick_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Joystick_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/LoopList_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/LoopList_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/LoopList_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/LoopList_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ModalWaiting_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ModalWaiting_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ModalWaiting_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ModalWaiting_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Model_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Model_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Model_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Model_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Particles_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Particles_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Particles_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Particles_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Perspective_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Perspective_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Perspective_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Perspective_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/PullToRefresh_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/PullToRefresh_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/PullToRefresh_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/PullToRefresh_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/RenderTexture_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/RenderTexture_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/RenderTexture_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/RenderTexture_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ScrollPane_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ScrollPane_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ScrollPane_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ScrollPane_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TextMeshPro_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TextMeshPro_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TextMeshPro_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TextMeshPro_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_gkq03.wav (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_gkq03.wav.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TreeView_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TreeView_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TreeView_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TreeView_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnCard_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnCard_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnCard_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnCard_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnPage_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnPage_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnPage_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnPage_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TypingEffect_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TypingEffect_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TypingEffect_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TypingEffect_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/VirtualList_atlas0.png (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/VirtualList_atlas0.png.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/VirtualList_fui.bytes (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/VirtualList_fui.bytes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 01 - Basics.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 01 - Basics.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 02 - Bag.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 02 - Bag.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 03 - CoolDown.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 03 - CoolDown.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 04 - Emoji.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 04 - Emoji.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 05 - Joystick.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 05 - Joystick.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 06 - HeadBar.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 06 - HeadBar.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 07 - EmitNumbers.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 07 - EmitNumbers.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 08 - Transition.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 08 - Transition.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 09 - Extension.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 09 - Extension.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 10 - ModalWaiting.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 10 - ModalWaiting.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 11 - CutScene.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 11 - CutScene.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 12 - RenderTexture.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 12 - RenderTexture.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 13 - Particles.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 13 - Particles.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 14 - BundleUsage.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 14 - BundleUsage.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 15 - VirtualList.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 15 - VirtualList.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 16 - LoopList.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 16 - LoopList.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 17 - Model.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 17 - Model.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 18 - Guide.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 18 - Guide.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 19 - HitTest.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 19 - HitTest.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 20 - 3D UI.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 20 - 3D UI.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 21 - Curve UI.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 21 - Curve UI.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 22 - Gesture.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 22 - Gesture.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 23 - Filter.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 23 - Filter.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 24 - TurnCard.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 24 - TurnCard.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 25 - TreeView.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 25 - TreeView.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 26 - PullToRefresh.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 26 - PullToRefresh.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 27 - ScrollPane.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 27 - ScrollPane.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 28 - TypingEffect.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 28 - TypingEffect.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 29 - TurnPage.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 29 - TurnPage.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 30 - TextMeshPro.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 30 - TextMeshPro.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/scene1.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/scene1.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/scene2.unity (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/scene2.unity.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/ScrollPane.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/ScrollPane/ScrollPaneMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/ScrollPane/ScrollPaneMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/TextMeshPro.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/TextMeshPro/TextMeshProMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/TextMeshPro/TextMeshProMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Transition.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Transition/TransitionMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/Transition/TransitionMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/TreeView.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/TreeView/TreeViewMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/TreeView/TreeViewMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnCard.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnCard/Card.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnCard/Card.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnCard/TurnCardMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnCard/TurnCardMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/BookPage.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/BookPage.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/FairyBook.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/FairyBook.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/TurnPageMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/TurnPageMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/TypingEffect.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/TypingEffect/TypingEffectMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/TypingEffect/TypingEffectMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/VirtualList.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/VirtualList/VirtualListMain.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Examples~/VirtualList/VirtualListMain.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Resources.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/AddOn.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/AddOn/FairyGUI-BlurFilter.shader (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/AddOn/FairyGUI-BlurFilter.shader.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-BMFont.shader (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-BMFont.shader.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-Image.shader (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-Image.shader.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-Text.shader (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-Text.shader.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/BlendMode.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/BlendMode.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/CaptureCamera.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/CaptureCamera.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Container.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Container.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/DisplayObject.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/DisplayObject.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/GoWrapper.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/GoWrapper.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/ColliderHitTest.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/ColliderHitTest.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/HitTestContext.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/HitTestContext.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/IHitTest.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/IHitTest.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/MeshColliderHitTest.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/MeshColliderHitTest.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/PixelHitTest.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/PixelHitTest.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/RectHitTest.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/RectHitTest.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/ShapeHitTest.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/ShapeHitTest.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Image.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Image.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/MaterialManager.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/MaterialManager.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/CompositeMesh.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/CompositeMesh.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/EllipseMesh.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/EllipseMesh.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/FillMesh.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/FillMesh.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/LineMesh.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/LineMesh.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/MeshFactory.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/MeshFactory.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/PlaneMesh.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/PlaneMesh.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/PolygonMesh.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/PolygonMesh.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RectMesh.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RectMesh.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RegularPolygonMesh.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RegularPolygonMesh.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RoundedRectMesh.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RoundedRectMesh.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/StraightLineMesh.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/StraightLineMesh.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/VertexBuffer.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/VertexBuffer.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/MovieClip.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/MovieClip.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NAudioClip.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NAudioClip.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NGraphics.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NGraphics.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NTexture.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NTexture.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/ShaderConfig.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/ShaderConfig.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Shape.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Shape.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Stage.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Stage.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/StageCamera.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/StageCamera.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/StageEngine.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/StageEngine.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Stats.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Stats.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/BaseFont.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/BaseFont.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/BitmapFont.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/BitmapFont.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/DynamicFont.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/DynamicFont.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/Emoji.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/Emoji.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/FontManager.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/FontManager.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/IKeyboard.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/IKeyboard.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/InputTextField.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/InputTextField.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/RTLSupport.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/RTLSupport.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/RichTextField.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/RichTextField.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/SelectionShape.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/SelectionShape.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TextField.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TextField.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TextFormat.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TextFormat.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TouchScreenKeyboard.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TouchScreenKeyboard.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TypingEffect.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TypingEffect.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/UpdateContext.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/UpdateContext.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Event.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventBridge.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventBridge.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventContext.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventContext.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventDispatcher.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventDispatcher.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventListener.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventListener.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/IEventDispatcher.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/IEventDispatcher.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/InputEvent.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/InputEvent.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/DragonBones.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/DragonBones/DragonBonesLoader.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/DragonBones/DragonBonesLoader.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/Spine.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/Spine/SpineLoader.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/Spine/SpineLoader.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/Shaders.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/Shaders/FairyGUI-TMP.shader (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/Shaders/FairyGUI-TMP.shader.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/TMPFont.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/TMPFont.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/TMPTextFormat.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/TMPTextFormat.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput/WebGLTextInput.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput/WebGLTextInput.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput/WebGLTextInput.jslib (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput/WebGLTextInput.jslib.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/BlurFilter.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/BlurFilter.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/ColorFilter.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/ColorFilter.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/IFilter.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/IFilter.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/LongPressGesture.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/LongPressGesture.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/PinchGesture.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/PinchGesture.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/RotationGesture.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/RotationGesture.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/SwipeGesture.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/SwipeGesture.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/EaseManager.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/EaseManager.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/EaseType.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/EaseType.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GPath.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GPath.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GTween.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GTween.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GTweener.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GTweener.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenManager.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenManager.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenPropType.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenPropType.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenValue.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenValue.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/ChangePageAction.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/ChangePageAction.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/ControllerAction.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/ControllerAction.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/PlayTransitionAction.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/PlayTransitionAction.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/AsyncCreationHelper.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/AsyncCreationHelper.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Controller.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Controller.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/DragDropManager.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/DragDropManager.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/EMRenderSupport.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/EMRenderSupport.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/FieldTypes.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/FieldTypes.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GButton.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GButton.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GComboBox.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GComboBox.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GComponent.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GComponent.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GGraph.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GGraph.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GGroup.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GGroup.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GImage.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GImage.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLabel.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLabel.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GList.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GList.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLoader.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLoader.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLoader3D.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLoader3D.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GMovieClip.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GMovieClip.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GObject.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GObject.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GObjectPool.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GObjectPool.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GProgressBar.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GProgressBar.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GRichTextField.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GRichTextField.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GRoot.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GRoot.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GScrollBar.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GScrollBar.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GSlider.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GSlider.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTextField.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTextField.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTextInput.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTextInput.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTree.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTree.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTreeNode.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTreeNode.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearAnimation.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearAnimation.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearBase.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearBase.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearColor.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearColor.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearDisplay.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearDisplay.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearDisplay2.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearDisplay2.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearFontSize.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearFontSize.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearIcon.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearIcon.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearLook.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearLook.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearSize.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearSize.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearText.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearText.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearXY.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearXY.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/IAnimationGear.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/IAnimationGear.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/IColorGear.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/IColorGear.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/IUISource.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/IUISource.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Margin.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Margin.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/PackageItem.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/PackageItem.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/PopupMenu.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/PopupMenu.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/RelationItem.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/RelationItem.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Relations.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Relations.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/ScrollPane.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/ScrollPane.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Transition.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Transition.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/TranslationHelper.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/TranslationHelper.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Tree.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Tree/TreeNode.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Tree/TreeNode.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Tree/TreeView.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Tree/TreeView.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIConfig.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIConfig.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIContentScaler.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIContentScaler.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIObjectFactory.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIObjectFactory.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPackage.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPackage.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPainter.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPainter.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPanel.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPanel.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Window.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Window.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ByteBuffer.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ByteBuffer.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlButton.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlButton.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlElement.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlElement.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlImage.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlImage.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlInput.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlInput.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlLink.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlLink.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlPageContext.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlPageContext.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlParseOptions.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlParseOptions.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlParser.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlParser.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlSelect.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlSelect.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/IHtmlObject.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/IHtmlObject.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/IHtmlPageContext.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/IHtmlPageContext.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Timers.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Timers.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ToolSet.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ToolSet.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/UBBParser.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/UBBParser.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XML.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XML.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLIterator.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLIterator.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLList.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLList.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLUtils.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLUtils.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ZipReader.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ZipReader.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Other.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Other/System.Collections.Immutable.dll (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Other/System.Collections.Immutable.dll.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Other/System.IO.Pipelines.dll (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Other/System.IO.Pipelines.dll.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Other/System.Runtime.CompilerServices.Unsafe.dll (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Other/System.Runtime.CompilerServices.Unsafe.dll.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/BclHelpers.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/BclHelpers.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/BufferExtension.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/BufferExtension.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/BufferPool.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/BufferPool.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/CallbackAttributes.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/CallbackAttributes.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Compiler.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Compiler/CompilerContext.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Compiler/CompilerContext.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Compiler/CompilerDelegates.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Compiler/CompilerDelegates.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Compiler/Local.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Compiler/Local.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/DataFormat.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/DataFormat.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/DiscriminatedUnion.Serializable.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/DiscriminatedUnion.Serializable.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/DiscriminatedUnion.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/DiscriminatedUnion.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Extensible.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Extensible.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ExtensibleUtil.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ExtensibleUtil.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/GlobalSuppressions.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/GlobalSuppressions.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Helpers.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Helpers.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/IExtensible.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/IExtensible.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/IExtension.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/IExtension.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/IProtoInputT.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/IProtoInputT.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/IProtoOutputT.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/IProtoOutputT.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ImplicitFields.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ImplicitFields.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/KeyValuePairProxy.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/KeyValuePairProxy.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Meta.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Meta/AttributeMap.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Meta/AttributeMap.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Meta/BasicList.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Meta/BasicList.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Meta/CallbackSet.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Meta/CallbackSet.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Meta/MetaType.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Meta/MetaType.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Meta/ProtoSyntax.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Meta/ProtoSyntax.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Meta/RuntimeTypeModel.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Meta/RuntimeTypeModel.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Meta/SubType.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Meta/SubType.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Meta/TypeAddedEventArgs.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Meta/TypeAddedEventArgs.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Meta/TypeFormatEventArgs.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Meta/TypeFormatEventArgs.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Meta/TypeModel.InputOutput.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Meta/TypeModel.InputOutput.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Meta/TypeModel.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Meta/TypeModel.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Meta/ValueMember.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Meta/ValueMember.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/NetObjectCache.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/NetObjectCache.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/PrefixStyle.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/PrefixStyle.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ProtoContractAttribute.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ProtoContractAttribute.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ProtoConverterAttribute.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ProtoConverterAttribute.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ProtoEnumAttribute.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ProtoEnumAttribute.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ProtoException.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ProtoException.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ProtoIgnoreAttribute.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ProtoIgnoreAttribute.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ProtoIncludeAttribute.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ProtoIncludeAttribute.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ProtoMapAttribute.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ProtoMapAttribute.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ProtoMemberAttribute.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ProtoMemberAttribute.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ProtoReader.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ProtoReader.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ProtoWriter.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ProtoWriter.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/SerializationContext.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/SerializationContext.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/ArrayDecorator.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/ArrayDecorator.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/BlobSerializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/BlobSerializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/BooleanSerializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/BooleanSerializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/ByteSerializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/ByteSerializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/CharSerializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/CharSerializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/CompiledSerializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/CompiledSerializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/DateTimeSerializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/DateTimeSerializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/DecimalSerializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/DecimalSerializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/DefaultValueDecorator.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/DefaultValueDecorator.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/DoubleSerializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/DoubleSerializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/EnumSerializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/EnumSerializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/FieldDecorator.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/FieldDecorator.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/GuidSerializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/GuidSerializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/IProtoSerializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/IProtoSerializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/IProtoTypeSerializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/IProtoTypeSerializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/ISerializerProxy.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/ISerializerProxy.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/ImmutableCollectionDecorator.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/ImmutableCollectionDecorator.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/Int16Serializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/Int16Serializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/Int32Serializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/Int32Serializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/Int64Serializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/Int64Serializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/ListDecorator.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/ListDecorator.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/MapDecorator.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/MapDecorator.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/MemberSpecifiedDecorator.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/MemberSpecifiedDecorator.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/NetObjectSerializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/NetObjectSerializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/NullDecorator.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/NullDecorator.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/ParseableSerializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/ParseableSerializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/PropertyDecorator.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/PropertyDecorator.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/ProtoDecoratorBase.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/ProtoDecoratorBase.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/ReflectedUriDecorator.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/ReflectedUriDecorator.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/SByteSerializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/SByteSerializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/SingleSerializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/SingleSerializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/StringSerializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/StringSerializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/SubItemSerializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/SubItemSerializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/SurrogateSerializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/SurrogateSerializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/SystemTypeSerializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/SystemTypeSerializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/TagDecorator.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/TagDecorator.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/TimeSpanSerializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/TimeSpanSerializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/TupleSerializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/TupleSerializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/TypeSerializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/TypeSerializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/UInt16Serializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/UInt16Serializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/UInt32Serializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/UInt32Serializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/UInt64Serializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/UInt64Serializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/UriDecorator.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/Serializers/UriDecorator.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ServiceModel.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoBehaviorAttribute.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoBehaviorAttribute.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoBehaviorExtensionElement.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoBehaviorExtensionElement.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoEndpointBehavior.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoEndpointBehavior.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoOperationBehavior.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoOperationBehavior.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ServiceModel/XmlProtoSerializer.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/ServiceModel/XmlProtoSerializer.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/SubItemToken.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/SubItemToken.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/WireType.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/WireType.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/protobuf-net.csproj (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/Protobuf-net/protobuf-net.csproj.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Core.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Core/CloseEventArgs.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Core/CloseEventArgs.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Core/CloseStatusCode.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Core/CloseStatusCode.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Core/ErrorEventArgs.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Core/ErrorEventArgs.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Core/IWebSocket.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Core/IWebSocket.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Core/MessageEventArgs.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Core/MessageEventArgs.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Core/Opcode.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Core/Opcode.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Core/OpenEventArgs.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Core/OpenEventArgs.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Core/Settings.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Core/Settings.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Core/WebSocketState.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Core/WebSocketState.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Implementation.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Implementation/NoWebGL.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Implementation/NoWebGL/WebSocket.cs (98%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Implementation/NoWebGL/WebSocket.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Implementation/NoWebGL/WebSocketManager.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Implementation/NoWebGL/WebSocketManager.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Implementation/WebGL.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Implementation/WebGL/WebSocket.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Implementation/WebGL/WebSocket.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Implementation/WebGL/WebSocketManager.cs (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WSocket/Implementation/WebGL/WebSocketManager.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WebGL.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WebGL/WebSocket.jslib (99%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/Runtime/Plugins/WebGL/WebSocket.jslib.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/Attributes.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/Attributes/AutoFindAttribute.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/Attributes/AutoFindAttribute.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/Component.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/Component/UIPanel.cs (99%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/Component/UIPanel.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/Const.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/Const/UIConst.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/Const/UIConst.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/Const/UIEvents.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/Const/UIEvents.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/Event.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/Event/UIEvent.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/Event/UIEvent.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/Extension.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/Extension/UIAnimExtension.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/Extension/UIAnimExtension.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/Extension/UIExtension.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/Extension/UIExtension.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/Interfaces.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/Interfaces/IBind.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/Interfaces/IBind.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/UIComponent.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/UIComponent.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/UILanguage.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/UILanguage/UIComponentLanguagePack.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/UILanguage/UIComponentLanguagePack.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/UILanguage/UILanguage.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/UILanguage/UILanguage.cs.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/Utils.meta (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/Utils/UIRunner.cs (100%) rename Assets/Scripts/{ThirdParty => }/NBC/Runtime/UI/Utils/UIRunner.cs.meta (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC/Runtime}/csc.rsp (100%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC/Runtime}/csc.rsp.meta (74%) rename Assets/Scripts/{ThirdParty/Fantasy.Unity => NBC}/package.json (100%) rename Assets/Scripts/{ThirdParty => }/NBC/package.json.meta (100%) delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/.gitattributes delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Fantasy.Editor.asmdef delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Fantasy.Editor.asmdef.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings/FantasySettingsProvider.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Fantasy.Unity.asmdef delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Fantasy.Unity.asmdef.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/LICENSE.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/README.md.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/RoslynAnalyzers.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/RoslynAnalyzers/Fantasy.SourceGenerator.dll delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/RoslynAnalyzers/Fantasy.SourceGenerator.dll.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/AssemblyLifecycle.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/AssemblyManifest.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IAssemblyLifecycle.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IEntitySystemRegistrar.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IEntityTypeCollectionRegistrar.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IEntityTypeCollectionRegistrar.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IEventSystemRegistrar.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IEventSystemRegistrar.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IMessageHandlerResolver.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IMessageHandlerResolver.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/INetworkProtocolOpCodeResolver.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/INetworkProtocolOpCodeResolver.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/INetworkProtocolRegistrar.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/INetworkProtocolRegistrar.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/INetworkProtocolResponseTypeResolver.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/INetworkProtocolResponseTypeResolver.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/ISeparateTableRegistrar.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/ISeparateTableRegistrar.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Benchmark.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Benchmark/Handler.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Benchmark/Handler/BenchmarkRequestHandler.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Benchmark/Handler/BenchmarkRequestHandler.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/DataBaseType.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/DataBaseType.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/IDataBase.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/IDataBase.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/MongoDataBase.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/MongoDataBase.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/World.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/World.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EntityComponent.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EntityComponent/EntityComponent.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EventComponent/EventComponent.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EventComponent/Interface/IEvent.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/SeparateTableComponent.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/SeparateTableComponent/SeparateTableAttribute.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/SeparateTableComponent/SeparateTableAttribute.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/SeparateTableComponent/SeparateTableComponent.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/SeparateTableComponent/SeparateTableComponent.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimeWheel.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimeWheel/ScheduledTask.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimeWheel/ScheduledTask.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimeWheel/TimeWheel.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimeWheel/TimeWheel.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/Supported/EntityInterface.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/Supported/EntityInterface.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/Supported/EntitySupportedChecker.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/Supported/EntitySupportedChecker.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/Supported/TypeHashCache.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/Supported/TypeHashCache.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/ICustomEntitySystem.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IEntitySystem.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/ILateUpdateSystem.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/ILateUpdateSystem.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/ByteHelper.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/HashCodeHelper.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/Default/RuntimeIdStruct.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/Interface/IIdFactoryTool.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/World/WorldRuntimeIdFactory.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Log/ConsoleLog.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Log/ConsoleLog.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableHelper.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableHelper.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableManageComponent.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableManageComponent.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableMessageComponent.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableMessageComponent.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableRouteComponent.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableRouteComponent.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableScene.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableScene.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableAddHandler.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableAddHandler.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableGetHandler.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableGetHandler.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableLockHandler.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableLockHandler.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableRemoveHandler.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableRemoveHandler.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableUnLockHandler.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableUnLockHandler.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Dispatcher/MessageDispatcherComponent.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/OpCode.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Console.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Console/Entry.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Console/Entry.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Console/ThreadSynchronizationContext.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigLoader.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigLoader.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/MachineConfig.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/MachineConfig.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/ProcessConfig.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/ProcessConfig.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/SceneConfig.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/SceneConfig.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/WorldConfig.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/WorldConfig.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/Entry.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/Entry.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/Process.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/Process.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ProcessDefine.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ProcessDefine.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ThreadSynchronizationContext.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ThreadSynchronizationContext.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/ProgramDefine.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/ProgramDefine.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/ThreadSynchronizationContext.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/ISceneUpdate.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/BsonPackHelperNet.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/BsonPackHelperNet.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/StructBsonSerialize.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/StructBsonSerialize.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/SupportInitializeChecker.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/SupportInitializeChecker.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/ProtoBufPackHelper/ProtoBufPackHelperNet.cs delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/ProtoBufPackHelper/ProtoBufPackHelperNet.cs.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins.meta delete mode 100644 Assets/Scripts/ThirdParty/Fantasy.Unity/package.json.meta delete mode 100644 Assets/Scripts/ThirdParty/NBC/LICENSE delete mode 100644 Assets/Scripts/ThirdParty/NBC/README.md delete mode 100644 Assets/Scripts/ThirdParty/NBC/package.json diff --git a/Assets/Scripts/Generate/Config/BaitConfig.cs b/Assets/Scripts/Generate/Config/BaitConfig.cs index 03efcd2bd..a12132790 100644 --- a/Assets/Scripts/Generate/Config/BaitConfig.cs +++ b/Assets/Scripts/Generate/Config/BaitConfig.cs @@ -1,6 +1,6 @@ using System; using ProtoBuf; -using NBC; +using Fantasy; using System.Linq; using System.Reflection; using System.Collections.Generic; @@ -11,7 +11,7 @@ using NBC.Serialize; namespace NBF { [ProtoContract] - public sealed partial class BaitConfig : ASerialize, IConfigTable + public sealed partial class BaitConfig : ASerialize, IProto, IConfigTable { [ProtoMember(1)] diff --git a/Assets/Scripts/Generate/Config/BasicConfig.cs b/Assets/Scripts/Generate/Config/BasicConfig.cs index b1275b7e8..6da196d61 100644 --- a/Assets/Scripts/Generate/Config/BasicConfig.cs +++ b/Assets/Scripts/Generate/Config/BasicConfig.cs @@ -1,6 +1,6 @@ using System; using ProtoBuf; -using NBC; +using Fantasy; using System.Linq; using System.Reflection; using System.Collections.Generic; @@ -11,7 +11,7 @@ using NBC.Serialize; namespace NBF { [ProtoContract] - public sealed partial class BasicConfig : ASerialize, IConfigTable + public sealed partial class BasicConfig : ASerialize, IProto, IConfigTable { [ProtoMember(1)] diff --git a/Assets/Scripts/Generate/Config/BobberConfig.cs b/Assets/Scripts/Generate/Config/BobberConfig.cs index 2b04eb9a9..c2050c3bc 100644 --- a/Assets/Scripts/Generate/Config/BobberConfig.cs +++ b/Assets/Scripts/Generate/Config/BobberConfig.cs @@ -1,6 +1,6 @@ using System; using ProtoBuf; -using NBC; +using Fantasy; using System.Linq; using System.Reflection; using System.Collections.Generic; @@ -11,7 +11,7 @@ using NBC.Serialize; namespace NBF { [ProtoContract] - public sealed partial class BobberConfig : ASerialize, IConfigTable + public sealed partial class BobberConfig : ASerialize, IProto, IConfigTable { [ProtoMember(1)] diff --git a/Assets/Scripts/Generate/Config/FeederConfig.cs b/Assets/Scripts/Generate/Config/FeederConfig.cs index 2c6e95738..dee8859bf 100644 --- a/Assets/Scripts/Generate/Config/FeederConfig.cs +++ b/Assets/Scripts/Generate/Config/FeederConfig.cs @@ -1,6 +1,6 @@ using System; using ProtoBuf; -using NBC; +using Fantasy; using System.Linq; using System.Reflection; using System.Collections.Generic; @@ -11,7 +11,7 @@ using NBC.Serialize; namespace NBF { [ProtoContract] - public sealed partial class FeederConfig : ASerialize, IConfigTable + public sealed partial class FeederConfig : ASerialize, IProto, IConfigTable { [ProtoMember(1)] diff --git a/Assets/Scripts/Generate/Config/FishConfig.cs b/Assets/Scripts/Generate/Config/FishConfig.cs index c32b442ad..160825b91 100644 --- a/Assets/Scripts/Generate/Config/FishConfig.cs +++ b/Assets/Scripts/Generate/Config/FishConfig.cs @@ -1,6 +1,6 @@ using System; using ProtoBuf; -using NBC; +using Fantasy; using System.Linq; using System.Reflection; using System.Collections.Generic; @@ -11,7 +11,7 @@ using NBC.Serialize; namespace NBF { [ProtoContract] - public sealed partial class FishConfig : ASerialize, IConfigTable + public sealed partial class FishConfig : ASerialize, IProto, IConfigTable { [ProtoMember(1)] diff --git a/Assets/Scripts/Generate/Config/HookConfig.cs b/Assets/Scripts/Generate/Config/HookConfig.cs index 988985f65..d16cc2a9c 100644 --- a/Assets/Scripts/Generate/Config/HookConfig.cs +++ b/Assets/Scripts/Generate/Config/HookConfig.cs @@ -1,6 +1,6 @@ using System; using ProtoBuf; -using NBC; +using Fantasy; using System.Linq; using System.Reflection; using System.Collections.Generic; @@ -11,7 +11,7 @@ using NBC.Serialize; namespace NBF { [ProtoContract] - public sealed partial class HookConfig : ASerialize, IConfigTable + public sealed partial class HookConfig : ASerialize, IProto, IConfigTable { [ProtoMember(1)] diff --git a/Assets/Scripts/Generate/Config/InitConfig.cs b/Assets/Scripts/Generate/Config/InitConfig.cs index 74016b76f..ec6803ef7 100644 --- a/Assets/Scripts/Generate/Config/InitConfig.cs +++ b/Assets/Scripts/Generate/Config/InitConfig.cs @@ -1,6 +1,6 @@ using System; using ProtoBuf; -using NBC; +using Fantasy; using System.Linq; using System.Reflection; using System.Collections.Generic; @@ -11,7 +11,7 @@ using NBC.Serialize; namespace NBF { [ProtoContract] - public sealed partial class InitConfig : ASerialize, IConfigTable + public sealed partial class InitConfig : ASerialize, IProto, IConfigTable { [ProtoMember(1)] diff --git a/Assets/Scripts/Generate/Config/ItemConfig.cs b/Assets/Scripts/Generate/Config/ItemConfig.cs index a1789e43c..dde2d596e 100644 --- a/Assets/Scripts/Generate/Config/ItemConfig.cs +++ b/Assets/Scripts/Generate/Config/ItemConfig.cs @@ -1,6 +1,6 @@ using System; using ProtoBuf; -using NBC; +using Fantasy; using System.Linq; using System.Reflection; using System.Collections.Generic; @@ -11,7 +11,7 @@ using NBC.Serialize; namespace NBF { [ProtoContract] - public sealed partial class ItemConfig : ASerialize, IConfigTable + public sealed partial class ItemConfig : ASerialize, IProto, IConfigTable { [ProtoMember(1)] diff --git a/Assets/Scripts/Generate/Config/LineConfig.cs b/Assets/Scripts/Generate/Config/LineConfig.cs index b5dfd6051..98944c8d8 100644 --- a/Assets/Scripts/Generate/Config/LineConfig.cs +++ b/Assets/Scripts/Generate/Config/LineConfig.cs @@ -1,6 +1,6 @@ using System; using ProtoBuf; -using NBC; +using Fantasy; using System.Linq; using System.Reflection; using System.Collections.Generic; @@ -11,7 +11,7 @@ using NBC.Serialize; namespace NBF { [ProtoContract] - public sealed partial class LineConfig : ASerialize, IConfigTable + public sealed partial class LineConfig : ASerialize, IProto, IConfigTable { [ProtoMember(1)] diff --git a/Assets/Scripts/Generate/Config/LureConfig.cs b/Assets/Scripts/Generate/Config/LureConfig.cs index 3d2fd4a5a..1d038a2c5 100644 --- a/Assets/Scripts/Generate/Config/LureConfig.cs +++ b/Assets/Scripts/Generate/Config/LureConfig.cs @@ -1,6 +1,6 @@ using System; using ProtoBuf; -using NBC; +using Fantasy; using System.Linq; using System.Reflection; using System.Collections.Generic; @@ -11,7 +11,7 @@ using NBC.Serialize; namespace NBF { [ProtoContract] - public sealed partial class LureConfig : ASerialize, IConfigTable + public sealed partial class LureConfig : ASerialize, IProto, IConfigTable { [ProtoMember(1)] diff --git a/Assets/Scripts/Generate/Config/ReelConfig.cs b/Assets/Scripts/Generate/Config/ReelConfig.cs index a46662809..f09576a76 100644 --- a/Assets/Scripts/Generate/Config/ReelConfig.cs +++ b/Assets/Scripts/Generate/Config/ReelConfig.cs @@ -1,6 +1,6 @@ using System; using ProtoBuf; -using NBC; +using Fantasy; using System.Linq; using System.Reflection; using System.Collections.Generic; @@ -11,7 +11,7 @@ using NBC.Serialize; namespace NBF { [ProtoContract] - public sealed partial class ReelConfig : ASerialize, IConfigTable + public sealed partial class ReelConfig : ASerialize, IProto, IConfigTable { [ProtoMember(1)] diff --git a/Assets/Scripts/Generate/Config/RingConfig.cs b/Assets/Scripts/Generate/Config/RingConfig.cs index 10eb26f11..df08bbe4b 100644 --- a/Assets/Scripts/Generate/Config/RingConfig.cs +++ b/Assets/Scripts/Generate/Config/RingConfig.cs @@ -1,6 +1,6 @@ using System; using ProtoBuf; -using NBC; +using Fantasy; using System.Linq; using System.Reflection; using System.Collections.Generic; diff --git a/Assets/Scripts/Generate/Config/RodConfig.cs b/Assets/Scripts/Generate/Config/RodConfig.cs index d89d2e64c..d3931bc70 100644 --- a/Assets/Scripts/Generate/Config/RodConfig.cs +++ b/Assets/Scripts/Generate/Config/RodConfig.cs @@ -1,6 +1,6 @@ using System; using ProtoBuf; -using NBC; +using Fantasy; using System.Linq; using System.Reflection; using System.Collections.Generic; @@ -11,7 +11,7 @@ using NBC.Serialize; namespace NBF { [ProtoContract] - public sealed partial class RodConfig : ASerialize, IConfigTable + public sealed partial class RodConfig : ASerialize, IProto, IConfigTable { [ProtoMember(1)] diff --git a/Assets/Scripts/Generate/Config/RodRingConfig.cs b/Assets/Scripts/Generate/Config/RodRingConfig.cs index a690d611b..d6a81239f 100644 --- a/Assets/Scripts/Generate/Config/RodRingConfig.cs +++ b/Assets/Scripts/Generate/Config/RodRingConfig.cs @@ -1,6 +1,6 @@ using System; using ProtoBuf; -using NBC; +using Fantasy; using System.Linq; using System.Reflection; using System.Collections.Generic; @@ -11,7 +11,7 @@ using NBC.Serialize; namespace NBF { [ProtoContract] - public sealed partial class RodRingConfig : ASerialize, IConfigTable + public sealed partial class RodRingConfig : ASerialize, IProto, IConfigTable { [ProtoMember(1)] diff --git a/Assets/Scripts/Generate/Config/Unit2Config.cs b/Assets/Scripts/Generate/Config/Unit2Config.cs index 969673d67..39c7ae07c 100644 --- a/Assets/Scripts/Generate/Config/Unit2Config.cs +++ b/Assets/Scripts/Generate/Config/Unit2Config.cs @@ -1,6 +1,6 @@ using System; using ProtoBuf; -using NBC; +using Fantasy; using System.Linq; using System.Reflection; using System.Collections.Generic; diff --git a/Assets/Scripts/Generate/Config/UnitConfig.cs b/Assets/Scripts/Generate/Config/UnitConfig.cs index 11389fefc..79a2ef587 100644 --- a/Assets/Scripts/Generate/Config/UnitConfig.cs +++ b/Assets/Scripts/Generate/Config/UnitConfig.cs @@ -1,6 +1,6 @@ using System; using ProtoBuf; -using NBC; +using Fantasy; using System.Linq; using System.Reflection; using System.Collections.Generic; diff --git a/Assets/Scripts/Generate/Config/WeightConfig.cs b/Assets/Scripts/Generate/Config/WeightConfig.cs index c9043c633..d8bb15cc7 100644 --- a/Assets/Scripts/Generate/Config/WeightConfig.cs +++ b/Assets/Scripts/Generate/Config/WeightConfig.cs @@ -1,6 +1,6 @@ using System; using ProtoBuf; -using NBC; +using Fantasy; using System.Linq; using System.Reflection; using System.Collections.Generic; diff --git a/Assets/Scripts/Generate/NetworkProtocol/CommonProtoData.cs b/Assets/Scripts/Generate/NetworkProtocol/CommonProtoData.cs index c525fc071..1c4432721 100644 --- a/Assets/Scripts/Generate/NetworkProtocol/CommonProtoData.cs +++ b/Assets/Scripts/Generate/NetworkProtocol/CommonProtoData.cs @@ -1,7 +1,7 @@ using ProtoBuf; -using System; using System.Collections.Generic; +using Fantasy; using NBC; using NBC.Network.Interface; using NBC.Serialize; @@ -13,7 +13,7 @@ namespace NBC /// 角色基础信息 /// [ProtoContract] - public partial class RoleBaseInfo : AMessage + public partial class RoleBaseInfo : AMessage, IProto { public static RoleBaseInfo Create(Scene scene) { @@ -45,7 +45,7 @@ namespace NBC public VipInfo VipInfo { get; set; } } [ProtoContract] - public partial class KeyValueInt64 : AMessage + public partial class KeyValueInt64 : AMessage, IProto { public static KeyValueInt64 Create(Scene scene) { @@ -68,7 +68,7 @@ namespace NBC /// 角色信息 /// [ProtoContract] - public partial class RoleInfo : AMessage + public partial class RoleInfo : AMessage, IProto { public static RoleInfo Create(Scene scene) { @@ -115,7 +115,7 @@ namespace NBC /// 角色信息 /// [ProtoContract] - public partial class RoleSimpleInfo : AMessage + public partial class RoleSimpleInfo : AMessage, IProto { public static RoleSimpleInfo Create(Scene scene) { @@ -153,7 +153,7 @@ namespace NBC /// VIP信息 /// [ProtoContract] - public partial class VipInfo : AMessage + public partial class VipInfo : AMessage, IProto { public static VipInfo Create(Scene scene) { @@ -179,7 +179,7 @@ namespace NBC /// 奖励信息 /// [ProtoContract] - public partial class AwardInfo : AMessage + public partial class AwardInfo : AMessage, IProto { public static AwardInfo Create(Scene scene) { @@ -202,7 +202,7 @@ namespace NBC /// 玩家当前使用钓组信息 /// [ProtoContract] - public partial class ItemBindInfo : AMessage + public partial class ItemBindInfo : AMessage, IProto { public static ItemBindInfo Create(Scene scene) { @@ -225,7 +225,7 @@ namespace NBC /// 物品信息 /// [ProtoContract] - public partial class ItemInfo : AMessage + public partial class ItemInfo : AMessage, IProto { public static ItemInfo Create(Scene scene) { @@ -260,7 +260,7 @@ namespace NBC /// fish信息 /// [ProtoContract] - public partial class FishInfo : AMessage + public partial class FishInfo : AMessage, IProto { public static FishInfo Create(Scene scene) { @@ -289,7 +289,7 @@ namespace NBC public long ExpirationTime { get; set; } } [ProtoContract] - public partial class ActivityInfo : AMessage + public partial class ActivityInfo : AMessage, IProto { public static ActivityInfo Create(Scene scene) { @@ -318,7 +318,7 @@ namespace NBC /// 技能情况 /// [ProtoContract] - public partial class SkillInfo : AMessage + public partial class SkillInfo : AMessage, IProto { public static SkillInfo Create(Scene scene) { @@ -341,4 +341,3 @@ namespace NBC public int Exp { get; set; } } } - diff --git a/Assets/Scripts/Generate/NetworkProtocol/GameMessage.cs b/Assets/Scripts/Generate/NetworkProtocol/GameMessage.cs index 96c5651a5..e8f7641b9 100644 --- a/Assets/Scripts/Generate/NetworkProtocol/GameMessage.cs +++ b/Assets/Scripts/Generate/NetworkProtocol/GameMessage.cs @@ -1,7 +1,7 @@ using ProtoBuf; -using System; using System.Collections.Generic; +using Fantasy; using NBC; using NBC.Network.Interface; using NBC.Serialize; @@ -16,7 +16,7 @@ namespace NBC /// 请求背包列表 /// [ProtoContract] - public partial class C2Game_GetItemsRequest : AMessage, ICustomRouteRequest + public partial class C2Game_GetItemsRequest : AMessage, ICustomRouteRequest, IProto { public static C2Game_GetItemsRequest Create(Scene scene) { @@ -38,7 +38,7 @@ namespace NBC /// 请求背包列表响应 /// [ProtoContract] - public partial class Game2C_GetItemsResponse : AMessage, ICustomRouteResponse + public partial class Game2C_GetItemsResponse : AMessage, ICustomRouteResponse, IProto { public static Game2C_GetItemsResponse Create(Scene scene) { @@ -65,7 +65,7 @@ namespace NBC /// 请求使用物品 /// [ProtoContract] - public partial class C2Game_UseItemRequest : AMessage, ICustomRouteRequest + public partial class C2Game_UseItemRequest : AMessage, ICustomRouteRequest, IProto { public static C2Game_UseItemRequest Create(Scene scene) { @@ -87,7 +87,7 @@ namespace NBC /// 请求使用物品响应 /// [ProtoContract] - public partial class Game2C_UseItemResponse : AMessage, ICustomRouteResponse + public partial class Game2C_UseItemResponse : AMessage, ICustomRouteResponse, IProto { public static Game2C_UseItemResponse Create(Scene scene) { @@ -108,7 +108,7 @@ namespace NBC /// 物品变化 /// [ProtoContract] - public partial class Game2C_ItemChange : AMessage, ICustomRouteMessage + public partial class Game2C_ItemChange : AMessage, ICustomRouteMessage, IProto { public static Game2C_ItemChange Create(Scene scene) { @@ -140,7 +140,7 @@ namespace NBC /// 请求安装或取下配件 /// [ProtoContract] - public partial class C2Game_RigChangeRequest : AMessage, ICustomRouteRequest + public partial class C2Game_RigChangeRequest : AMessage, ICustomRouteRequest, IProto { public static C2Game_RigChangeRequest Create(Scene scene) { @@ -171,7 +171,7 @@ namespace NBC /// 请求安装配件响应 /// [ProtoContract] - public partial class Game2C_RigChangeResponse : AMessage, ICustomRouteResponse + public partial class Game2C_RigChangeResponse : AMessage, ICustomRouteResponse, IProto { public static Game2C_RigChangeResponse Create(Scene scene) { @@ -198,7 +198,7 @@ namespace NBC /// 请求鱼护列表 /// [ProtoContract] - public partial class C2Game_GetFishsRequest : AMessage, ICustomRouteRequest + public partial class C2Game_GetFishsRequest : AMessage, ICustomRouteRequest, IProto { public static C2Game_GetFishsRequest Create(Scene scene) { @@ -220,7 +220,7 @@ namespace NBC /// 请求鱼护列表响应 /// [ProtoContract] - public partial class Game2C_GetFishsResponse : AMessage, ICustomRouteResponse + public partial class Game2C_GetFishsResponse : AMessage, ICustomRouteResponse, IProto { public static Game2C_GetFishsResponse Create(Scene scene) { @@ -244,7 +244,7 @@ namespace NBC /// 鱼护变化 /// [ProtoContract] - public partial class Game2C_FishChange : AMessage, ICustomRouteMessage + public partial class Game2C_FishChange : AMessage, ICustomRouteMessage, IProto { public static Game2C_FishChange Create(Scene scene) { @@ -273,7 +273,7 @@ namespace NBC /// 请求出售 /// [ProtoContract] - public partial class C2Game_SellFishRequest : AMessage, ICustomRouteRequest + public partial class C2Game_SellFishRequest : AMessage, ICustomRouteRequest, IProto { public static C2Game_SellFishRequest Create(Scene scene) { @@ -298,7 +298,7 @@ namespace NBC /// 请求出售响应 /// [ProtoContract] - public partial class Game2C_SellFishResponse : AMessage, ICustomRouteResponse + public partial class Game2C_SellFishResponse : AMessage, ICustomRouteResponse, IProto { public static Game2C_SellFishResponse Create(Scene scene) { @@ -325,7 +325,7 @@ namespace NBC /// 请求购买 /// [ProtoContract] - public partial class C2Game_BuyRequest : AMessage, ICustomRouteRequest + public partial class C2Game_BuyRequest : AMessage, ICustomRouteRequest, IProto { public static C2Game_BuyRequest Create(Scene scene) { @@ -347,7 +347,7 @@ namespace NBC /// 请求购买响应 /// [ProtoContract] - public partial class Game2C_BuyResponse : AMessage, ICustomRouteResponse + public partial class Game2C_BuyResponse : AMessage, ICustomRouteResponse, IProto { public static Game2C_BuyResponse Create(Scene scene) { @@ -368,4 +368,3 @@ namespace NBC public uint ErrorCode { get; set; } } } - diff --git a/Assets/Scripts/Generate/NetworkProtocol/MapMessage.cs b/Assets/Scripts/Generate/NetworkProtocol/MapMessage.cs index 2f909da26..8f1fa48ed 100644 --- a/Assets/Scripts/Generate/NetworkProtocol/MapMessage.cs +++ b/Assets/Scripts/Generate/NetworkProtocol/MapMessage.cs @@ -1,7 +1,7 @@ using ProtoBuf; -using System; using System.Collections.Generic; +using Fantasy; using NBC; using NBC.Network.Interface; using NBC.Serialize; @@ -13,7 +13,7 @@ namespace NBC /// 请求创建房间 /// [ProtoContract] - public partial class C2Map_CreateRoomRequest : AMessage, ICustomRouteRequest + public partial class C2Map_CreateRoomRequest : AMessage, ICustomRouteRequest, IProto { public static C2Map_CreateRoomRequest Create(Scene scene) { @@ -38,7 +38,7 @@ namespace NBC /// 请求创建房间成功 /// [ProtoContract] - public partial class Map2C_CreateRoomResponse : AMessage, ICustomRouteResponse + public partial class Map2C_CreateRoomResponse : AMessage, ICustomRouteResponse, IProto { public static Map2C_CreateRoomResponse Create(Scene scene) { @@ -65,7 +65,7 @@ namespace NBC /// 请求网关离开房间(离开房间,但是不离开地图) /// [ProtoContract] - public partial class C2G_ExitRoomRequest : AMessage, IRequest + public partial class C2G_ExitRoomRequest : AMessage, IRequest, IProto { public static C2G_ExitRoomRequest Create(Scene scene) { @@ -88,7 +88,7 @@ namespace NBC /// 请求网关进入离开响应 /// [ProtoContract] - public partial class G2C_ExitRoomResponse : AMessage, IResponse + public partial class G2C_ExitRoomResponse : AMessage, IResponse, IProto { public static G2C_ExitRoomResponse Create(Scene scene) { @@ -112,7 +112,7 @@ namespace NBC /// 请求网关进入地图 /// [ProtoContract] - public partial class C2G_EnterMapRequest : AMessage, IRequest + public partial class C2G_EnterMapRequest : AMessage, IRequest, IProto { public static C2G_EnterMapRequest Create(Scene scene) { @@ -138,7 +138,7 @@ namespace NBC /// 请求网关进入房间响应 /// [ProtoContract] - public partial class G2C_EnterMapResponse : AMessage, IResponse + public partial class G2C_EnterMapResponse : AMessage, IResponse, IProto { public static G2C_EnterMapResponse Create(Scene scene) { @@ -168,7 +168,7 @@ namespace NBC /// 通知客户端切换地图 /// [ProtoContract] - public partial class Map2C_ChangeMap : AMessage, ICustomRouteMessage + public partial class Map2C_ChangeMap : AMessage, ICustomRouteMessage, IProto { public static Map2C_ChangeMap Create(Scene scene) { @@ -191,4 +191,3 @@ namespace NBC public int Node { get; set; } } } - diff --git a/Assets/Scripts/Generate/NetworkProtocol/MapProtoData.cs b/Assets/Scripts/Generate/NetworkProtocol/MapProtoData.cs index f42f9e595..dc0861ed7 100644 --- a/Assets/Scripts/Generate/NetworkProtocol/MapProtoData.cs +++ b/Assets/Scripts/Generate/NetworkProtocol/MapProtoData.cs @@ -1,7 +1,7 @@ using ProtoBuf; -using System; using System.Collections.Generic; +using Fantasy; using NBC; using NBC.Network.Interface; using NBC.Serialize; @@ -10,7 +10,7 @@ using NBC.Serialize; namespace NBC { [ProtoContract] - public partial class Vector3Info : AMessage + public partial class Vector3Info : AMessage, IProto { public static Vector3Info Create(Scene scene) { @@ -33,7 +33,7 @@ namespace NBC public float z { get; set; } } [ProtoContract] - public partial class Vector2Info : AMessage + public partial class Vector2Info : AMessage, IProto { public static Vector2Info Create(Scene scene) { @@ -53,7 +53,7 @@ namespace NBC public float y { get; set; } } [ProtoContract] - public partial class QuaternionInfo : AMessage + public partial class QuaternionInfo : AMessage, IProto { public static QuaternionInfo Create(Scene scene) { @@ -82,7 +82,7 @@ namespace NBC /// 玩家当前使用钓组信息 /// [ProtoContract] - public partial class GearInfo : AMessage + public partial class GearInfo : AMessage, IProto { public static GearInfo Create(Scene scene) { @@ -111,7 +111,7 @@ namespace NBC public List Propertys = new List(); } [ProtoContract] - public partial class UnitStateInfo : AMessage + public partial class UnitStateInfo : AMessage, IProto { public static UnitStateInfo Create(Scene scene) { @@ -131,7 +131,7 @@ namespace NBC public List Propertys = new List(); } [ProtoContract] - public partial class MapUnitInfo : AMessage + public partial class MapUnitInfo : AMessage, IProto { public static MapUnitInfo Create(Scene scene) { @@ -166,4 +166,3 @@ namespace NBC public List Propertys = new List(); } } - diff --git a/Assets/Scripts/Generate/NetworkProtocol/NetworkProtocolHelper.cs b/Assets/Scripts/Generate/NetworkProtocol/NetworkProtocolHelper.cs deleted file mode 100644 index 0ebac5e8e..000000000 --- a/Assets/Scripts/Generate/NetworkProtocol/NetworkProtocolHelper.cs +++ /dev/null @@ -1,657 +0,0 @@ -using System.Runtime.CompilerServices; -using NBC; -using NBC.Async; -using NBC.Network; -using System.Collections.Generic; -#pragma warning disable CS8618 - -namespace NBC -{ - public static class NetworkProtocolHelper - { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2Game_GetItemsRequest(this Session session, C2Game_GetItemsRequest request) - { - return (Game2C_GetItemsResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2Game_GetItemsRequest(this Session session) - { - using var request = Fantasy.C2Game_GetItemsRequest.Create(session.Scene); - return (Game2C_GetItemsResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2Game_UseItemRequest(this Session session, C2Game_UseItemRequest request) - { - return (Game2C_UseItemResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2Game_UseItemRequest(this Session session) - { - using var request = Fantasy.C2Game_UseItemRequest.Create(session.Scene); - return (Game2C_UseItemResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void Game2C_ItemChange(this Session session, Game2C_ItemChange message) - { - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void Game2C_ItemChange(this Session session, int type, List items, List removes) - { - using var message = Fantasy.Game2C_ItemChange.Create(session.Scene); - message.Type = type; - message.Items = items; - message.Removes = removes; - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2Game_RigChangeRequest(this Session session, C2Game_RigChangeRequest request) - { - return (Game2C_RigChangeResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2Game_RigChangeRequest(this Session session, long rodId, long rigId, bool isAdd) - { - using var request = Fantasy.C2Game_RigChangeRequest.Create(session.Scene); - request.RodId = rodId; - request.RigId = rigId; - request.IsAdd = isAdd; - return (Game2C_RigChangeResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2Game_GetFishsRequest(this Session session, C2Game_GetFishsRequest request) - { - return (Game2C_GetFishsResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2Game_GetFishsRequest(this Session session) - { - using var request = Fantasy.C2Game_GetFishsRequest.Create(session.Scene); - return (Game2C_GetFishsResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void Game2C_FishChange(this Session session, Game2C_FishChange message) - { - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void Game2C_FishChange(this Session session, int type, List fishs, List removes) - { - using var message = Fantasy.Game2C_FishChange.Create(session.Scene); - message.Type = type; - message.Fishs = fishs; - message.Removes = removes; - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2Game_SellFishRequest(this Session session, C2Game_SellFishRequest request) - { - return (Game2C_SellFishResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2Game_SellFishRequest(this Session session, List ids) - { - using var request = Fantasy.C2Game_SellFishRequest.Create(session.Scene); - request.Ids = ids; - return (Game2C_SellFishResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2Game_BuyRequest(this Session session, C2Game_BuyRequest request) - { - return (Game2C_GetFishsResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2Game_BuyRequest(this Session session) - { - using var request = Fantasy.C2Game_BuyRequest.Create(session.Scene); - return (Game2C_GetFishsResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2Map_CreateRoomRequest(this Session session, C2Map_CreateRoomRequest request) - { - return (Map2C_CreateRoomResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2Map_CreateRoomRequest(this Session session, int mapId) - { - using var request = Fantasy.C2Map_CreateRoomRequest.Create(session.Scene); - request.MapId = mapId; - return (Map2C_CreateRoomResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2G_ExitRoomRequest(this Session session, C2G_ExitRoomRequest request) - { - return (G2C_ExitRoomResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2G_ExitRoomRequest(this Session session, string roomCode) - { - using var request = Fantasy.C2G_ExitRoomRequest.Create(session.Scene); - request.RoomCode = roomCode; - return (G2C_ExitRoomResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2G_EnterMapRequest(this Session session, C2G_EnterMapRequest request) - { - return (G2C_EnterMapResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2G_EnterMapRequest(this Session session, string roomCode, int mapId) - { - using var request = Fantasy.C2G_EnterMapRequest.Create(session.Scene); - request.RoomCode = roomCode; - request.MapId = mapId; - return (G2C_EnterMapResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void Map2C_ChangeMap(this Session session, Map2C_ChangeMap message) - { - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void Map2C_ChangeMap(this Session session, int mapId, int node) - { - using var message = Fantasy.Map2C_ChangeMap.Create(session.Scene); - message.MapId = mapId; - message.Node = node; - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2A_LoginRequest(this Session session, C2A_LoginRequest request) - { - return (A2C_LoginResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2A_LoginRequest(this Session session, string username, string password, int loginType, int region) - { - using var request = Fantasy.C2A_LoginRequest.Create(session.Scene); - request.Username = username; - request.Password = password; - request.LoginType = loginType; - request.Region = region; - return (A2C_LoginResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2G_LoginRequest(this Session session, C2G_LoginRequest request) - { - return (G2C_LoginResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2G_LoginRequest(this Session session, string toKen) - { - using var request = Fantasy.C2G_LoginRequest.Create(session.Scene); - request.ToKen = toKen; - return (G2C_LoginResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void G2C_RepeatLogin(this Session session, G2C_RepeatLogin message) - { - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void G2C_RepeatLogin(this Session session) - { - using var message = Fantasy.G2C_RepeatLogin.Create(session.Scene); - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2Game_GetRoleInfoRequest(this Session session, C2Game_GetRoleInfoRequest request) - { - return (Game2C_GetRoleInfoResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2Game_GetRoleInfoRequest(this Session session) - { - using var request = Fantasy.C2Game_GetRoleInfoRequest.Create(session.Scene); - return (Game2C_GetRoleInfoResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void Map2C_RoleEnterRoomNotify(this Session session, Map2C_RoleEnterRoomNotify message) - { - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void Map2C_RoleEnterRoomNotify(this Session session, MapUnitInfo info) - { - using var message = Fantasy.Map2C_RoleEnterRoomNotify.Create(session.Scene); - message.Info = info; - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void Map2C_RoleExitRoomNotify(this Session session, Map2C_RoleExitRoomNotify message) - { - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void Map2C_RoleExitRoomNotify(this Session session, long id) - { - using var message = Fantasy.Map2C_RoleExitRoomNotify.Create(session.Scene); - message.Id = id; - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void C2Map_RolePropertyChange(this Session session, C2Map_RolePropertyChange message) - { - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void C2Map_RolePropertyChange(this Session session, List propertys) - { - using var message = Fantasy.C2Map_RolePropertyChange.Create(session.Scene); - message.Propertys = propertys; - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void Map2C_RoleStateNotify(this Session session, Map2C_RoleStateNotify message) - { - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void Map2C_RoleStateNotify(this Session session, long id, UnitStateInfo state) - { - using var message = Fantasy.Map2C_RoleStateNotify.Create(session.Scene); - message.Id = id; - message.State = state; - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void Map2C_RoleGearChangeNotify(this Session session, Map2C_RoleGearChangeNotify message) - { - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void Map2C_RoleGearChangeNotify(this Session session, long id, List gears) - { - using var message = Fantasy.Map2C_RoleGearChangeNotify.Create(session.Scene); - message.Id = id; - message.Gears = gears; - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void Map2C_RolePropertyChangeNotify(this Session session, Map2C_RolePropertyChangeNotify message) - { - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void Map2C_RolePropertyChangeNotify(this Session session, long id, List propertys) - { - using var message = Fantasy.Map2C_RolePropertyChangeNotify.Create(session.Scene); - message.Id = id; - message.Propertys = propertys; - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void C2Map_Move(this Session session, C2Map_Move message) - { - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void C2Map_Move(this Session session, Vector3Info position, Vector3Info rotation, Vector3Info direction, bool isStop, bool isRun, long timestamp) - { - using var message = Fantasy.C2Map_Move.Create(session.Scene); - message.Position = position; - message.Rotation = rotation; - message.Direction = direction; - message.IsStop = isStop; - message.IsRun = isRun; - message.Timestamp = timestamp; - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void C2Map_Look(this Session session, C2Map_Look message) - { - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void C2Map_Look(this Session session, Vector3Info rotation, long timestamp) - { - using var message = Fantasy.C2Map_Look.Create(session.Scene); - message.Rotation = rotation; - message.Timestamp = timestamp; - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void Map2C_MoveNotify(this Session session, Map2C_MoveNotify message) - { - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void Map2C_MoveNotify(this Session session, long id, Vector3Info position, Vector3Info rotation, Vector3Info direction, bool isStop, bool isRun, long timestamp) - { - using var message = Fantasy.Map2C_MoveNotify.Create(session.Scene); - message.Id = id; - message.Position = position; - message.Rotation = rotation; - message.Direction = direction; - message.IsStop = isStop; - message.IsRun = isRun; - message.Timestamp = timestamp; - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void Map2C_LookeNotify(this Session session, Map2C_LookeNotify message) - { - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void Map2C_LookeNotify(this Session session, long id, Vector3Info rotation, long timestamp) - { - using var message = Fantasy.Map2C_LookeNotify.Create(session.Scene); - message.Id = id; - message.Rotation = rotation; - message.Timestamp = timestamp; - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_GetConversationsRequest(this Session session, C2S_GetConversationsRequest request) - { - return (S2C_GetConversationsResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_GetConversationsRequest(this Session session) - { - using var request = Fantasy.C2S_GetConversationsRequest.Create(session.Scene); - return (S2C_GetConversationsResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_SendMailRequest(this Session session, C2S_SendMailRequest request) - { - return (S2C_SendMailResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_SendMailRequest(this Session session, long target, string content, List items) - { - using var request = Fantasy.C2S_SendMailRequest.Create(session.Scene); - request.Target = target; - request.Content = content; - request.Items = items; - return (S2C_SendMailResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_DeleteMailRequest(this Session session, C2S_DeleteMailRequest request) - { - return (S2C_DeleteMailResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_DeleteMailRequest(this Session session, long id) - { - using var request = Fantasy.C2S_DeleteMailRequest.Create(session.Scene); - request.Id = id; - return (S2C_DeleteMailResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void S2C_HaveMail(this Session session, S2C_HaveMail message) - { - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void S2C_HaveMail(this Session session, MailInfo mail, string key) - { - using var message = Fantasy.S2C_HaveMail.Create(session.Scene); - message.Mail = mail; - message.Key = key; - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void S2C_MailState(this Session session, S2C_MailState message) - { - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void S2C_MailState(this Session session, int mailState, long mailId) - { - using var message = Fantasy.S2C_MailState.Create(session.Scene); - message.MailState = mailState; - message.MailId = mailId; - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_CreateChannelRequest(this Session session, C2S_CreateChannelRequest request) - { - return (S2C_CreateChannelResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_CreateChannelRequest(this Session session, string name) - { - using var request = Fantasy.C2S_CreateChannelRequest.Create(session.Scene); - request.Name = name; - return (S2C_CreateChannelResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_JoinChannelRequest(this Session session, C2S_JoinChannelRequest request) - { - return (S2C_JoinChannelResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_JoinChannelRequest(this Session session, long target) - { - using var request = Fantasy.C2S_JoinChannelRequest.Create(session.Scene); - request.Target = target; - return (S2C_JoinChannelResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_SendMessageRequest(this Session session, C2S_SendMessageRequest request) - { - return (S2C_SendMessageResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_SendMessageRequest(this Session session, string message, long target) - { - using var request = Fantasy.C2S_SendMessageRequest.Create(session.Scene); - request.Message = message; - request.Target = target; - return (S2C_SendMessageResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void S2C_Message(this Session session, S2C_Message message) - { - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void S2C_Message(this Session session, ChatMessageInfo message) - { - using var message = Fantasy.S2C_Message.Create(session.Scene); - message.Message = message; - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_CreateClubRequest(this Session session, C2S_CreateClubRequest request) - { - return (S2C_CreateClubResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_CreateClubRequest(this Session session, string name) - { - using var request = Fantasy.C2S_CreateClubRequest.Create(session.Scene); - request.Name = name; - return (S2C_CreateClubResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_GetClubInfoRequest(this Session session, C2S_GetClubInfoRequest request) - { - return (S2C_GetClubInfoResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_GetClubInfoRequest(this Session session, long clubId) - { - using var request = Fantasy.C2S_GetClubInfoRequest.Create(session.Scene); - request.ClubId = clubId; - return (S2C_GetClubInfoResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_GetMemberListRequest(this Session session, C2S_GetMemberListRequest request) - { - return (S2C_GetMemberListResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_GetMemberListRequest(this Session session, long clubId) - { - using var request = Fantasy.C2S_GetMemberListRequest.Create(session.Scene); - request.ClubId = clubId; - return (S2C_GetMemberListResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_GetClubListRequest(this Session session, C2S_GetClubListRequest request) - { - return (S2C_GetClubListResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_GetClubListRequest(this Session session) - { - using var request = Fantasy.C2S_GetClubListRequest.Create(session.Scene); - return (S2C_GetClubListResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_JoinClubRequest(this Session session, C2S_JoinClubRequest request) - { - return (S2C_JoinClubResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_JoinClubRequest(this Session session, long clubId) - { - using var request = Fantasy.C2S_JoinClubRequest.Create(session.Scene); - request.ClubId = clubId; - return (S2C_JoinClubResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_LeaveClubRequest(this Session session, C2S_LeaveClubRequest request) - { - return (S2C_LeaveClubResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_LeaveClubRequest(this Session session, long clubId) - { - using var request = Fantasy.C2S_LeaveClubRequest.Create(session.Scene); - request.ClubId = clubId; - return (S2C_LeaveClubResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_DissolveClubRequest(this Session session, C2S_DissolveClubRequest request) - { - return (S2C_DissolveClubResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_DissolveClubRequest(this Session session, long clubId) - { - using var request = Fantasy.C2S_DissolveClubRequest.Create(session.Scene); - request.ClubId = clubId; - return (S2C_DissolveClubResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_DisposeJoinRequest(this Session session, C2S_DisposeJoinRequest request) - { - return (S2C_DisposeJoinResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static async FTask C2S_DisposeJoinRequest(this Session session, long clubId, long applicantId, int agree) - { - using var request = Fantasy.C2S_DisposeJoinRequest.Create(session.Scene); - request.ClubId = clubId; - request.ApplicantId = applicantId; - request.Agree = agree; - return (S2C_DisposeJoinResponse)await session.Call(request); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void S2C_ClubChange(this Session session, S2C_ClubChange message) - { - session.Send(message); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void S2C_ClubChange(this Session session, ClubInfo club, int changeType) - { - using var message = Fantasy.S2C_ClubChange.Create(session.Scene); - message.Club = club; - message.ChangeType = changeType; - session.Send(message); - } - - } -} diff --git a/Assets/Scripts/Generate/NetworkProtocol/NetworkProtocolHelper.cs.meta b/Assets/Scripts/Generate/NetworkProtocol/NetworkProtocolHelper.cs.meta deleted file mode 100644 index 8ae556987..000000000 --- a/Assets/Scripts/Generate/NetworkProtocol/NetworkProtocolHelper.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: bb560e77a377e5e48871dc9494a3c0d3 \ No newline at end of file diff --git a/Assets/Scripts/Generate/NetworkProtocol/OuterMessage.cs b/Assets/Scripts/Generate/NetworkProtocol/OuterMessage.cs index 366c3bb5a..c45707b56 100644 --- a/Assets/Scripts/Generate/NetworkProtocol/OuterMessage.cs +++ b/Assets/Scripts/Generate/NetworkProtocol/OuterMessage.cs @@ -1,7 +1,7 @@ using ProtoBuf; -using System; using System.Collections.Generic; +using Fantasy; using NBC; using NBC.Network.Interface; using NBC.Serialize; @@ -10,7 +10,7 @@ using NBC.Serialize; namespace NBC { [ProtoContract] - public partial class C2A_LoginRequest : AMessage, IRequest + public partial class C2A_LoginRequest : AMessage, IRequest, IProto { public static C2A_LoginRequest Create(Scene scene) { @@ -39,7 +39,7 @@ namespace NBC public int Region { get; set; } } [ProtoContract] - public partial class A2C_LoginResponse : AMessage, IResponse + public partial class A2C_LoginResponse : AMessage, IResponse, IProto { public static A2C_LoginResponse Create(Scene scene) { @@ -63,7 +63,7 @@ namespace NBC /// 客户端登录到Gate服务器 /// [ProtoContract] - public partial class C2G_LoginRequest : AMessage, IRequest + public partial class C2G_LoginRequest : AMessage, IRequest, IProto { public static C2G_LoginRequest Create(Scene scene) { @@ -83,7 +83,7 @@ namespace NBC public string ToKen { get; set; } } [ProtoContract] - public partial class G2C_LoginResponse : AMessage, IResponse + public partial class G2C_LoginResponse : AMessage, IResponse, IProto { public static G2C_LoginResponse Create(Scene scene) { @@ -107,7 +107,7 @@ namespace NBC /// 通知客户端重复登录 /// [ProtoContract] - public partial class G2C_RepeatLogin : AMessage, IMessage + public partial class G2C_RepeatLogin : AMessage, IMessage, IProto { public static G2C_RepeatLogin Create(Scene scene) { @@ -122,7 +122,7 @@ namespace NBC public uint OpCode() { return OuterOpcode.G2C_RepeatLogin; } } [ProtoContract] - public partial class C2Game_GetRoleInfoRequest : AMessage, ICustomRouteRequest + public partial class C2Game_GetRoleInfoRequest : AMessage, ICustomRouteRequest, IProto { public static C2Game_GetRoleInfoRequest Create(Scene scene) { @@ -141,7 +141,7 @@ namespace NBC public int RouteType => Fantasy.RouteType.GameRoute; } [ProtoContract] - public partial class Game2C_GetRoleInfoResponse : AMessage, ICustomRouteResponse + public partial class Game2C_GetRoleInfoResponse : AMessage, ICustomRouteResponse, IProto { public static Game2C_GetRoleInfoResponse Create(Scene scene) { @@ -165,4 +165,3 @@ namespace NBC public uint ErrorCode { get; set; } } } - diff --git a/Assets/Scripts/Generate/NetworkProtocol/OuterOpcode.cs b/Assets/Scripts/Generate/NetworkProtocol/OuterOpcode.cs index aabbbb790..8c9171724 100644 --- a/Assets/Scripts/Generate/NetworkProtocol/OuterOpcode.cs +++ b/Assets/Scripts/Generate/NetworkProtocol/OuterOpcode.cs @@ -1,4 +1,4 @@ -namespace NBC +namespace Fantasy { public static partial class OuterOpcode { diff --git a/Assets/Scripts/Generate/NetworkProtocol/RoamingType.cs b/Assets/Scripts/Generate/NetworkProtocol/RoamingType.cs index 9c6f28b67..96d932cb6 100644 --- a/Assets/Scripts/Generate/NetworkProtocol/RoamingType.cs +++ b/Assets/Scripts/Generate/NetworkProtocol/RoamingType.cs @@ -1,5 +1,5 @@ using System.Collections.Generic; -namespace NBC +namespace Fantasy { // Roaming协议定义(需要定义10000以上、因为10000以内的框架预留) public static class RoamingType diff --git a/Assets/Scripts/Generate/NetworkProtocol/RoomMessage.cs b/Assets/Scripts/Generate/NetworkProtocol/RoomMessage.cs index fd7621749..56c73cf38 100644 --- a/Assets/Scripts/Generate/NetworkProtocol/RoomMessage.cs +++ b/Assets/Scripts/Generate/NetworkProtocol/RoomMessage.cs @@ -1,7 +1,7 @@ using ProtoBuf; -using System; using System.Collections.Generic; +using Fantasy; using NBC; using NBC.Network.Interface; using NBC.Serialize; @@ -13,7 +13,7 @@ namespace NBC /// 用户进入地图 /// [ProtoContract] - public partial class Map2C_RoleEnterRoomNotify : AMessage, ICustomRouteMessage + public partial class Map2C_RoleEnterRoomNotify : AMessage, ICustomRouteMessage, IProto { public static Map2C_RoleEnterRoomNotify Create(Scene scene) { @@ -36,7 +36,7 @@ namespace NBC /// 用户离开地图 /// [ProtoContract] - public partial class Map2C_RoleExitRoomNotify : AMessage, ICustomRouteMessage + public partial class Map2C_RoleExitRoomNotify : AMessage, ICustomRouteMessage, IProto { public static Map2C_RoleExitRoomNotify Create(Scene scene) { @@ -56,7 +56,7 @@ namespace NBC public long Id { get; set; } } [ProtoContract] - public partial class C2Map_RolePropertyChange : AMessage, ICustomRouteMessage + public partial class C2Map_RolePropertyChange : AMessage, ICustomRouteMessage, IProto { public static C2Map_RolePropertyChange Create(Scene scene) { @@ -79,7 +79,7 @@ namespace NBC /// 玩家状态变化同步 /// [ProtoContract] - public partial class Map2C_RoleStateNotify : AMessage, ICustomRouteMessage + public partial class Map2C_RoleStateNotify : AMessage, ICustomRouteMessage, IProto { public static Map2C_RoleStateNotify Create(Scene scene) { @@ -105,7 +105,7 @@ namespace NBC /// 玩家钓组变化 /// [ProtoContract] - public partial class Map2C_RoleGearChangeNotify : AMessage, ICustomRouteMessage + public partial class Map2C_RoleGearChangeNotify : AMessage, ICustomRouteMessage, IProto { public static Map2C_RoleGearChangeNotify Create(Scene scene) { @@ -128,7 +128,7 @@ namespace NBC public List Gears = new List(); } [ProtoContract] - public partial class Map2C_RolePropertyChangeNotify : AMessage, ICustomRouteMessage + public partial class Map2C_RolePropertyChangeNotify : AMessage, ICustomRouteMessage, IProto { public static Map2C_RolePropertyChangeNotify Create(Scene scene) { @@ -151,7 +151,7 @@ namespace NBC public List Propertys = new List(); } [ProtoContract] - public partial class C2Map_Move : AMessage, ICustomRouteMessage + public partial class C2Map_Move : AMessage, ICustomRouteMessage, IProto { public static C2Map_Move Create(Scene scene) { @@ -186,7 +186,7 @@ namespace NBC public long Timestamp { get; set; } } [ProtoContract] - public partial class C2Map_Look : AMessage, ICustomRouteMessage + public partial class C2Map_Look : AMessage, ICustomRouteMessage, IProto { public static C2Map_Look Create(Scene scene) { @@ -212,7 +212,7 @@ namespace NBC /// 玩家移动推送 /// [ProtoContract] - public partial class Map2C_MoveNotify : AMessage, ICustomRouteMessage + public partial class Map2C_MoveNotify : AMessage, ICustomRouteMessage, IProto { public static Map2C_MoveNotify Create(Scene scene) { @@ -253,7 +253,7 @@ namespace NBC /// 玩家旋转推送 /// [ProtoContract] - public partial class Map2C_LookeNotify : AMessage, ICustomRouteMessage + public partial class Map2C_LookeNotify : AMessage, ICustomRouteMessage, IProto { public static Map2C_LookeNotify Create(Scene scene) { @@ -279,4 +279,3 @@ namespace NBC public long Timestamp { get; set; } } } - diff --git a/Assets/Scripts/Generate/NetworkProtocol/RouteType.cs b/Assets/Scripts/Generate/NetworkProtocol/RouteType.cs index f3a478268..01cebe1a1 100644 --- a/Assets/Scripts/Generate/NetworkProtocol/RouteType.cs +++ b/Assets/Scripts/Generate/NetworkProtocol/RouteType.cs @@ -1,4 +1,4 @@ -namespace NBC +namespace Fantasy { // Route协议定义(需要定义1000以上、因为1000以内的框架预留) public static class RouteType diff --git a/Assets/Scripts/Generate/NetworkProtocol/SocialMessage.cs b/Assets/Scripts/Generate/NetworkProtocol/SocialMessage.cs index b9ad29d88..d6e818585 100644 --- a/Assets/Scripts/Generate/NetworkProtocol/SocialMessage.cs +++ b/Assets/Scripts/Generate/NetworkProtocol/SocialMessage.cs @@ -1,7 +1,7 @@ using ProtoBuf; -using System; using System.Collections.Generic; +using Fantasy; using NBC; using NBC.Network.Interface; using NBC.Serialize; @@ -16,7 +16,7 @@ namespace NBC /// 会话信息 /// [ProtoContract] - public partial class ConversationInfo : AMessage + public partial class ConversationInfo : AMessage, IProto { public static ConversationInfo Create(Scene scene) { @@ -36,7 +36,7 @@ namespace NBC public List List = new List(); } [ProtoContract] - public partial class MailInfo : AMessage + public partial class MailInfo : AMessage, IProto { public static MailInfo Create(Scene scene) { @@ -74,7 +74,7 @@ namespace NBC /// 请求会话列表 /// [ProtoContract] - public partial class C2S_GetConversationsRequest : AMessage, ICustomRouteRequest + public partial class C2S_GetConversationsRequest : AMessage, ICustomRouteRequest, IProto { public static C2S_GetConversationsRequest Create(Scene scene) { @@ -96,7 +96,7 @@ namespace NBC /// 请求会话列表响应 /// [ProtoContract] - public partial class S2C_GetConversationsResponse : AMessage, ICustomRouteResponse + public partial class S2C_GetConversationsResponse : AMessage, ICustomRouteResponse, IProto { public static S2C_GetConversationsResponse Create(Scene scene) { @@ -120,7 +120,7 @@ namespace NBC /// 发送邮件消息 /// [ProtoContract] - public partial class C2S_SendMailRequest : AMessage, ICustomRouteRequest + public partial class C2S_SendMailRequest : AMessage, ICustomRouteRequest, IProto { public static C2S_SendMailRequest Create(Scene scene) { @@ -151,7 +151,7 @@ namespace NBC /// 发送邮件消息响应 /// [ProtoContract] - public partial class S2C_SendMailResponse : AMessage, ICustomRouteResponse + public partial class S2C_SendMailResponse : AMessage, ICustomRouteResponse, IProto { public static S2C_SendMailResponse Create(Scene scene) { @@ -172,7 +172,7 @@ namespace NBC /// 发送删除会话消息 /// [ProtoContract] - public partial class C2S_DeleteMailRequest : AMessage, ICustomRouteRequest + public partial class C2S_DeleteMailRequest : AMessage, ICustomRouteRequest, IProto { public static C2S_DeleteMailRequest Create(Scene scene) { @@ -197,7 +197,7 @@ namespace NBC /// 发送删除会话消息响应 /// [ProtoContract] - public partial class S2C_DeleteMailResponse : AMessage, ICustomRouteResponse + public partial class S2C_DeleteMailResponse : AMessage, ICustomRouteResponse, IProto { public static S2C_DeleteMailResponse Create(Scene scene) { @@ -221,7 +221,7 @@ namespace NBC /// 新邮件推送 /// [ProtoContract] - public partial class S2C_HaveMail : AMessage, ICustomRouteMessage + public partial class S2C_HaveMail : AMessage, ICustomRouteMessage, IProto { public static S2C_HaveMail Create(Scene scene) { @@ -244,7 +244,7 @@ namespace NBC public string Key { get; set; } } [ProtoContract] - public partial class S2C_MailState : AMessage, ICustomRouteMessage + public partial class S2C_MailState : AMessage, ICustomRouteMessage, IProto { public static S2C_MailState Create(Scene scene) { @@ -270,7 +270,7 @@ namespace NBC /// /////////// ******** 频道聊天 *******///////////// /// [ProtoContract] - public partial class ChatUserInfo : AMessage + public partial class ChatUserInfo : AMessage, IProto { public static ChatUserInfo Create(Scene scene) { @@ -290,7 +290,7 @@ namespace NBC public long Name { get; set; } } [ProtoContract] - public partial class ChatMessageInfo : AMessage + public partial class ChatMessageInfo : AMessage, IProto { public static ChatMessageInfo Create(Scene scene) { @@ -322,7 +322,7 @@ namespace NBC /// 创建频道 /// [ProtoContract] - public partial class C2S_CreateChannelRequest : AMessage, ICustomRouteRequest + public partial class C2S_CreateChannelRequest : AMessage, ICustomRouteRequest, IProto { public static C2S_CreateChannelRequest Create(Scene scene) { @@ -347,7 +347,7 @@ namespace NBC /// 创建频道响应 /// [ProtoContract] - public partial class S2C_CreateChannelResponse : AMessage, ICustomRouteResponse + public partial class S2C_CreateChannelResponse : AMessage, ICustomRouteResponse, IProto { public static S2C_CreateChannelResponse Create(Scene scene) { @@ -371,7 +371,7 @@ namespace NBC /// 请求进入频道 /// [ProtoContract] - public partial class C2S_JoinChannelRequest : AMessage, ICustomRouteRequest + public partial class C2S_JoinChannelRequest : AMessage, ICustomRouteRequest, IProto { public static C2S_JoinChannelRequest Create(Scene scene) { @@ -396,7 +396,7 @@ namespace NBC /// 进入频道响应 /// [ProtoContract] - public partial class S2C_JoinChannelResponse : AMessage, ICustomRouteResponse + public partial class S2C_JoinChannelResponse : AMessage, ICustomRouteResponse, IProto { public static S2C_JoinChannelResponse Create(Scene scene) { @@ -417,7 +417,7 @@ namespace NBC /// 发送消息 /// [ProtoContract] - public partial class C2S_SendMessageRequest : AMessage, ICustomRouteRequest + public partial class C2S_SendMessageRequest : AMessage, ICustomRouteRequest, IProto { public static C2S_SendMessageRequest Create(Scene scene) { @@ -445,7 +445,7 @@ namespace NBC /// 发送消息响应 /// [ProtoContract] - public partial class S2C_SendMessageResponse : AMessage, ICustomRouteResponse + public partial class S2C_SendMessageResponse : AMessage, ICustomRouteResponse, IProto { public static S2C_SendMessageResponse Create(Scene scene) { @@ -466,7 +466,7 @@ namespace NBC /// 推送消息 /// [ProtoContract] - public partial class S2C_Message : AMessage, ICustomRouteMessage + public partial class S2C_Message : AMessage, ICustomRouteMessage, IProto { public static S2C_Message Create(Scene scene) { @@ -489,7 +489,7 @@ namespace NBC /// /////////// ******** 工会 *******///////////// /// [ProtoContract] - public partial class ClubInfo : AMessage + public partial class ClubInfo : AMessage, IProto { public static ClubInfo Create(Scene scene) { @@ -521,7 +521,7 @@ namespace NBC /// 请求创建工会 /// [ProtoContract] - public partial class C2S_CreateClubRequest : AMessage, ICustomRouteRequest + public partial class C2S_CreateClubRequest : AMessage, ICustomRouteRequest, IProto { public static C2S_CreateClubRequest Create(Scene scene) { @@ -546,7 +546,7 @@ namespace NBC /// 创建工会响应 /// [ProtoContract] - public partial class S2C_CreateClubResponse : AMessage, ICustomRouteResponse + public partial class S2C_CreateClubResponse : AMessage, ICustomRouteResponse, IProto { public static S2C_CreateClubResponse Create(Scene scene) { @@ -570,7 +570,7 @@ namespace NBC /// 请求工会信息 /// [ProtoContract] - public partial class C2S_GetClubInfoRequest : AMessage, ICustomRouteRequest + public partial class C2S_GetClubInfoRequest : AMessage, ICustomRouteRequest, IProto { public static C2S_GetClubInfoRequest Create(Scene scene) { @@ -595,7 +595,7 @@ namespace NBC /// 响应工会信息 /// [ProtoContract] - public partial class S2C_GetClubInfoResponse : AMessage, ICustomRouteResponse + public partial class S2C_GetClubInfoResponse : AMessage, ICustomRouteResponse, IProto { public static S2C_GetClubInfoResponse Create(Scene scene) { @@ -619,7 +619,7 @@ namespace NBC /// 请求工会成员列表 /// [ProtoContract] - public partial class C2S_GetMemberListRequest : AMessage, ICustomRouteRequest + public partial class C2S_GetMemberListRequest : AMessage, ICustomRouteRequest, IProto { public static C2S_GetMemberListRequest Create(Scene scene) { @@ -644,7 +644,7 @@ namespace NBC /// 响应工会成员列表 /// [ProtoContract] - public partial class S2C_GetMemberListResponse : AMessage, ICustomRouteResponse + public partial class S2C_GetMemberListResponse : AMessage, ICustomRouteResponse, IProto { public static S2C_GetMemberListResponse Create(Scene scene) { @@ -668,7 +668,7 @@ namespace NBC /// 获取工会列表请求 /// [ProtoContract] - public partial class C2S_GetClubListRequest : AMessage, ICustomRouteRequest + public partial class C2S_GetClubListRequest : AMessage, ICustomRouteRequest, IProto { public static C2S_GetClubListRequest Create(Scene scene) { @@ -690,7 +690,7 @@ namespace NBC /// 获取工会列表响应 /// [ProtoContract] - public partial class S2C_GetClubListResponse : AMessage, ICustomRouteResponse + public partial class S2C_GetClubListResponse : AMessage, ICustomRouteResponse, IProto { public static S2C_GetClubListResponse Create(Scene scene) { @@ -714,7 +714,7 @@ namespace NBC /// 请求加入工会 /// [ProtoContract] - public partial class C2S_JoinClubRequest : AMessage, ICustomRouteRequest + public partial class C2S_JoinClubRequest : AMessage, ICustomRouteRequest, IProto { public static C2S_JoinClubRequest Create(Scene scene) { @@ -739,7 +739,7 @@ namespace NBC /// 响应加入工会 /// [ProtoContract] - public partial class S2C_JoinClubResponse : AMessage, ICustomRouteResponse + public partial class S2C_JoinClubResponse : AMessage, ICustomRouteResponse, IProto { public static S2C_JoinClubResponse Create(Scene scene) { @@ -763,7 +763,7 @@ namespace NBC /// 请求退出工会 /// [ProtoContract] - public partial class C2S_LeaveClubRequest : AMessage, ICustomRouteRequest + public partial class C2S_LeaveClubRequest : AMessage, ICustomRouteRequest, IProto { public static C2S_LeaveClubRequest Create(Scene scene) { @@ -788,7 +788,7 @@ namespace NBC /// 响应退出工会 /// [ProtoContract] - public partial class S2C_LeaveClubResponse : AMessage, ICustomRouteResponse + public partial class S2C_LeaveClubResponse : AMessage, ICustomRouteResponse, IProto { public static S2C_LeaveClubResponse Create(Scene scene) { @@ -812,7 +812,7 @@ namespace NBC /// 请求解散工会 /// [ProtoContract] - public partial class C2S_DissolveClubRequest : AMessage, ICustomRouteRequest + public partial class C2S_DissolveClubRequest : AMessage, ICustomRouteRequest, IProto { public static C2S_DissolveClubRequest Create(Scene scene) { @@ -837,7 +837,7 @@ namespace NBC /// 响应解散工会 /// [ProtoContract] - public partial class S2C_DissolveClubResponse : AMessage, ICustomRouteResponse + public partial class S2C_DissolveClubResponse : AMessage, ICustomRouteResponse, IProto { public static S2C_DissolveClubResponse Create(Scene scene) { @@ -861,7 +861,7 @@ namespace NBC /// 请求操作申请 /// [ProtoContract] - public partial class C2S_DisposeJoinRequest : AMessage, ICustomRouteRequest + public partial class C2S_DisposeJoinRequest : AMessage, ICustomRouteRequest, IProto { public static C2S_DisposeJoinRequest Create(Scene scene) { @@ -892,7 +892,7 @@ namespace NBC /// 响应操作申请 /// [ProtoContract] - public partial class S2C_DisposeJoinResponse : AMessage, ICustomRouteResponse + public partial class S2C_DisposeJoinResponse : AMessage, ICustomRouteResponse, IProto { public static S2C_DisposeJoinResponse Create(Scene scene) { @@ -922,7 +922,7 @@ namespace NBC /// 推送消息 /// [ProtoContract] - public partial class S2C_ClubChange : AMessage, ICustomRouteMessage + public partial class S2C_ClubChange : AMessage, ICustomRouteMessage, IProto { public static S2C_ClubChange Create(Scene scene) { @@ -945,4 +945,3 @@ namespace NBC public int ChangeType { get; set; } } } - diff --git a/Assets/Scripts/Init.cs b/Assets/Scripts/Init.cs index 5c46c751b..9d28ca423 100644 --- a/Assets/Scripts/Init.cs +++ b/Assets/Scripts/Init.cs @@ -125,8 +125,8 @@ namespace NBF { await Task.Delay(100); CommonTopPanel.Show(); - LoginPanel.Show(); - // PreviewPanel.Show(); + // LoginPanel.Show(); + PreviewPanel.Show(); } #region New diff --git a/Assets/Scripts/ThirdParty/NBC.meta b/Assets/Scripts/NBC.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC.meta rename to Assets/Scripts/NBC.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor.meta b/Assets/Scripts/NBC/Editor.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor.meta rename to Assets/Scripts/NBC/Editor.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime.meta b/Assets/Scripts/NBC/Editor/Runtime.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime.meta rename to Assets/Scripts/NBC/Editor/Runtime.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Attributes.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Attributes.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Attributes.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Attributes.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Attributes.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Attributes.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Attributes.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Attributes.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/BuildContext.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/BuildContext.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/BuildContext.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/BuildContext.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/BuildContext.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/BuildContext.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/BuildContext.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/BuildContext.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Builder.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Builder.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Builder.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Builder.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Builder.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Builder.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Builder.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Builder.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Gathers.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Gathers.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Gathers.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Gathers.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherBase.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherBase.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherBase.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherBase.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherBase.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherBase.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherBase.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherBase.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFile.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFile.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFile.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFile.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFile.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFile.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFile.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFile.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFolder.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFolder.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFolder.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFolder.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFolder.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFolder.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFolder.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFolder.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFolderParent.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFolderParent.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFolderParent.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFolderParent.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFolderParent.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFolderParent.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFolderParent.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherFolderParent.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherSingle.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherSingle.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherSingle.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherSingle.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherSingle.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherSingle.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherSingle.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherSingle.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherWithoutSub.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherWithoutSub.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherWithoutSub.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherWithoutSub.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherWithoutSub.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherWithoutSub.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherWithoutSub.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Gathers/GatherWithoutSub.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/BuildBundleTask.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/BuildBundleTask.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/BuildBundleTask.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/BuildBundleTask.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/BuildBundleTask.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/BuildBundleTask.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/BuildBundleTask.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/BuildBundleTask.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/BuildTask.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/BuildTask.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/BuildTask.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/BuildTask.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/BuildTask.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/BuildTask.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/BuildTask.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/BuildTask.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/CopyToStreamingAssets.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/CopyToStreamingAssets.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/CopyToStreamingAssets.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/CopyToStreamingAssets.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/CopyToStreamingAssets.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/CopyToStreamingAssets.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/CopyToStreamingAssets.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/CopyToStreamingAssets.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/CopyVersionBundleTask.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/CopyVersionBundleTask.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/CopyVersionBundleTask.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/CopyVersionBundleTask.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/CopyVersionBundleTask.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/CopyVersionBundleTask.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/CopyVersionBundleTask.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/CopyVersionBundleTask.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/GatherTask.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/GatherTask.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/GatherTask.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/GatherTask.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/GatherTask.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/GatherTask.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/GatherTask.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/GatherTask.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/GenPackageDataTask.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/GenPackageDataTask.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/GenPackageDataTask.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/GenPackageDataTask.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/GenPackageDataTask.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/GenPackageDataTask.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/GenPackageDataTask.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/GenPackageDataTask.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/GenVersionDataTask.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/GenVersionDataTask.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/GenVersionDataTask.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/GenVersionDataTask.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/GenVersionDataTask.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/GenVersionDataTask.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Builder/Tasks/GenVersionDataTask.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Builder/Tasks/GenVersionDataTask.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Cache.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Cache.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Cache.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Cache.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Cache/BuildAsset.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Cache/BuildAsset.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Cache/BuildAsset.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Cache/BuildAsset.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Cache/BuildAsset.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Cache/BuildAsset.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Cache/BuildAsset.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Cache/BuildAsset.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Cache/BuildBundle.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Cache/BuildBundle.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Cache/BuildBundle.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Cache/BuildBundle.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Cache/BuildBundle.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Cache/BuildBundle.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Cache/BuildBundle.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Cache/BuildBundle.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Cache/BuildPackage.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Cache/BuildPackage.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Cache/BuildPackage.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Cache/BuildPackage.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Cache/BuildPackage.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Cache/BuildPackage.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Cache/BuildPackage.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Cache/BuildPackage.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Cache/Caches.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Cache/Caches.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Cache/Caches.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Cache/Caches.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Cache/Caches.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Cache/Caches.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Cache/Caches.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Cache/Caches.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Cache/Histories.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Cache/Histories.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Cache/Histories.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Cache/Histories.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Cache/Histories.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Cache/Histories.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Cache/Histories.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Cache/Histories.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Cache/VersionHistory.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Cache/VersionHistory.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Cache/VersionHistory.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Cache/VersionHistory.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Cache/VersionHistory.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Cache/VersionHistory.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Cache/VersionHistory.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Cache/VersionHistory.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Configs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Configs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Configs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Configs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Configs/GroupConfig.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Configs/GroupConfig.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Configs/GroupConfig.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Configs/GroupConfig.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Configs/GroupConfig.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Configs/GroupConfig.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Configs/GroupConfig.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Configs/GroupConfig.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Configs/ISelectTag.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Configs/ISelectTag.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Configs/ISelectTag.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Configs/ISelectTag.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Configs/ISelectTag.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Configs/ISelectTag.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Configs/ISelectTag.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Configs/ISelectTag.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Configs/PackageConfig.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Configs/PackageConfig.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Configs/PackageConfig.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Configs/PackageConfig.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Configs/PackageConfig.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Configs/PackageConfig.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Configs/PackageConfig.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Configs/PackageConfig.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Defs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Defs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Defs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Defs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Defs/AddressMode.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Defs/AddressMode.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Defs/AddressMode.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Defs/AddressMode.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Defs/AddressMode.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Defs/AddressMode.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Defs/AddressMode.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Defs/AddressMode.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Defs/BundleMode.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Defs/BundleMode.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Defs/BundleMode.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Defs/BundleMode.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Defs/BundleMode.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Defs/BundleMode.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Defs/BundleMode.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Defs/BundleMode.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Defs/Defs.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Defs/Defs.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Defs/Defs.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Defs/Defs.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Defs/Defs.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Defs/Defs.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Defs/Defs.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Defs/Defs.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Defs/FilterEnum.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Defs/FilterEnum.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Defs/FilterEnum.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Defs/FilterEnum.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Defs/FilterEnum.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Defs/FilterEnum.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Defs/FilterEnum.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Defs/FilterEnum.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Defs/Language.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Defs/Language.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Defs/Language.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Defs/Language.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Defs/Language.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Defs/Language.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Defs/Language.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Defs/Language.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Defs/Styles.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Defs/Styles.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Defs/Styles.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Defs/Styles.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Defs/Styles.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Defs/Styles.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Defs/Styles.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Defs/Styles.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Builder.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Builder.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Builder.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Builder.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Builder/BuilderWindow.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Builder/BuilderWindow.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Builder/BuilderWindow.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Builder/BuilderWindow.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Builder/BuilderWindow.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Builder/BuilderWindow.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Builder/BuilderWindow.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Builder/BuilderWindow.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Builder/SubView.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Builder/SubView.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Builder/SubView.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Builder/SubView.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Builder/SubView/BuildBundleAssetsTreeEditor.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Builder/SubView/BuildBundleAssetsTreeEditor.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Builder/SubView/BuildBundleAssetsTreeEditor.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Builder/SubView/BuildBundleAssetsTreeEditor.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Builder/SubView/BuildBundleAssetsTreeEditor.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Builder/SubView/BuildBundleAssetsTreeEditor.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Builder/SubView/BuildBundleAssetsTreeEditor.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Builder/SubView/BuildBundleAssetsTreeEditor.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Builder/SubView/BuildBundleTreeEditor.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Builder/SubView/BuildBundleTreeEditor.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Builder/SubView/BuildBundleTreeEditor.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Builder/SubView/BuildBundleTreeEditor.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Builder/SubView/BuildBundleTreeEditor.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Builder/SubView/BuildBundleTreeEditor.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Builder/SubView/BuildBundleTreeEditor.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Builder/SubView/BuildBundleTreeEditor.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector/CollectorWindow.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector/CollectorWindow.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector/CollectorWindow.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector/CollectorWindow.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector/CollectorWindow.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector/CollectorWindow.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector/CollectorWindow.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector/CollectorWindow.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector/PackagesListTreeView.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector/PackagesListTreeView.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector/PackagesListTreeView.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector/PackagesListTreeView.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector/PackagesListTreeView.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector/PackagesListTreeView.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector/PackagesListTreeView.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector/PackagesListTreeView.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector/SubView.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector/SubView.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector/SubView.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector/SubView.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/AssetsTreeEditor.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/AssetsTreeEditor.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/AssetsTreeEditor.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/AssetsTreeEditor.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/AssetsTreeEditor.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/AssetsTreeEditor.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/AssetsTreeEditor.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/AssetsTreeEditor.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/GroupInfoGUI.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/GroupInfoGUI.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/GroupInfoGUI.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/GroupInfoGUI.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/GroupInfoGUI.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/GroupInfoGUI.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/GroupInfoGUI.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/GroupInfoGUI.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/GroupTreeEditor.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/GroupTreeEditor.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/GroupTreeEditor.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/GroupTreeEditor.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/GroupTreeEditor.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/GroupTreeEditor.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/GroupTreeEditor.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/GroupTreeEditor.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/PackageTreeEditor.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/PackageTreeEditor.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/PackageTreeEditor.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/PackageTreeEditor.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/PackageTreeEditor.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/PackageTreeEditor.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/PackageTreeEditor.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Collector/SubView/PackageTreeEditor.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Commom.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Commom.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Commom.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Commom.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Commom/Splitter.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Commom/Splitter.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Commom/Splitter.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Commom/Splitter.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Commom/Splitter.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Commom/Splitter.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Commom/Splitter.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Commom/Splitter.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/History.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/History.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/History.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/History.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/History/HistoryWindow.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/History/HistoryWindow.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/History/HistoryWindow.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/History/HistoryWindow.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/History/HistoryWindow.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/History/HistoryWindow.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/History/HistoryWindow.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/History/HistoryWindow.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/History/SubView.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/History/SubView.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/History/SubView.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/History/SubView.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/History/SubView/HistoryBundleTreeEditor.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/History/SubView/HistoryBundleTreeEditor.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/History/SubView/HistoryBundleTreeEditor.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/History/SubView/HistoryBundleTreeEditor.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/History/SubView/HistoryBundleTreeEditor.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/History/SubView/HistoryBundleTreeEditor.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/History/SubView/HistoryBundleTreeEditor.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/History/SubView/HistoryBundleTreeEditor.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/History/SubView/HistoryVersionTreeEditor.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/History/SubView/HistoryVersionTreeEditor.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/History/SubView/HistoryVersionTreeEditor.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/History/SubView/HistoryVersionTreeEditor.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/History/SubView/HistoryVersionTreeEditor.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/History/SubView/HistoryVersionTreeEditor.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/History/SubView/HistoryVersionTreeEditor.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/History/SubView/HistoryVersionTreeEditor.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Inspector.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Inspector.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Inspector.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Inspector.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Inspector/ResInspectorUI.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Inspector/ResInspectorUI.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Inspector/ResInspectorUI.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Inspector/ResInspectorUI.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Inspector/ResInspectorUI.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Inspector/ResInspectorUI.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Inspector/ResInspectorUI.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Inspector/ResInspectorUI.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Label.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Label.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Label.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Label.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Label/LabelGUI.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Label/LabelGUI.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Label/LabelGUI.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Label/LabelGUI.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Label/LabelGUI.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Label/LabelGUI.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Label/LabelGUI.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Label/LabelGUI.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Label/LabelMaskPopupContent.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Label/LabelMaskPopupContent.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Label/LabelMaskPopupContent.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Label/LabelMaskPopupContent.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Label/LabelMaskPopupContent.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Label/LabelMaskPopupContent.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Label/LabelMaskPopupContent.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Label/LabelMaskPopupContent.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Profiler.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Profiler.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Profiler.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Profiler.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Profiler/ProfilerWindow.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Profiler/ProfilerWindow.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Profiler/ProfilerWindow.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Profiler/ProfilerWindow.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Profiler/ProfilerWindow.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Profiler/ProfilerWindow.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Profiler/ProfilerWindow.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Profiler/ProfilerWindow.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Profiler/SubView.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Profiler/SubView.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Profiler/SubView.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Profiler/SubView.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Profiler/SubView/ProfilerAssetListView.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Profiler/SubView/ProfilerAssetListView.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Profiler/SubView/ProfilerAssetListView.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Profiler/SubView/ProfilerAssetListView.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Profiler/SubView/ProfilerAssetListView.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Profiler/SubView/ProfilerAssetListView.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Profiler/SubView/ProfilerAssetListView.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Profiler/SubView/ProfilerAssetListView.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Profiler/SubView/ProfilerBundleListView.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Profiler/SubView/ProfilerBundleListView.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Profiler/SubView/ProfilerBundleListView.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Profiler/SubView/ProfilerBundleListView.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Profiler/SubView/ProfilerBundleListView.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Profiler/SubView/ProfilerBundleListView.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/GUI/Profiler/SubView/ProfilerBundleListView.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/GUI/Profiler/SubView/ProfilerBundleListView.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Images.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Images.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Images.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Images.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Images/HeaderBoxImage.png b/Assets/Scripts/NBC/Editor/Runtime/Asset/Images/HeaderBoxImage.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Images/HeaderBoxImage.png rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Images/HeaderBoxImage.png diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Images/HeaderBoxImage.png.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Images/HeaderBoxImage.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Images/HeaderBoxImage.png.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Images/HeaderBoxImage.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Images/StyleSheet.guiskin b/Assets/Scripts/NBC/Editor/Runtime/Asset/Images/StyleSheet.guiskin similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Images/StyleSheet.guiskin rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Images/StyleSheet.guiskin diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Images/StyleSheet.guiskin.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Images/StyleSheet.guiskin.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Images/StyleSheet.guiskin.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Images/StyleSheet.guiskin.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Images/icon_add.png b/Assets/Scripts/NBC/Editor/Runtime/Asset/Images/icon_add.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Images/icon_add.png rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Images/icon_add.png diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Images/icon_add.png.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Images/icon_add.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Images/icon_add.png.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Images/icon_add.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Images/icon_folder.png b/Assets/Scripts/NBC/Editor/Runtime/Asset/Images/icon_folder.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Images/icon_folder.png rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Images/icon_folder.png diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Images/icon_folder.png.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Images/icon_folder.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Images/icon_folder.png.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Images/icon_folder.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Images/icon_package.png b/Assets/Scripts/NBC/Editor/Runtime/Asset/Images/icon_package.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Images/icon_package.png rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Images/icon_package.png diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Images/icon_package.png.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Images/icon_package.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Images/icon_package.png.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Images/icon_package.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Images/icon_package2.png b/Assets/Scripts/NBC/Editor/Runtime/Asset/Images/icon_package2.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Images/icon_package2.png rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Images/icon_package2.png diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Images/icon_package2.png.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Images/icon_package2.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Images/icon_package2.png.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Images/icon_package2.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Initialize.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Initialize.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Initialize.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Initialize.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Initialize.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Initialize.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Initialize.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Initialize.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Menus.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Menus.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Menus.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Menus.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Menus.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Menus.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Menus.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Menus.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Settings.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Settings.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Settings.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Settings.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Settings/Attributes.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Settings/Attributes.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Settings/Attributes.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Settings/Attributes.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Settings/Attributes.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Settings/Attributes.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Settings/Attributes.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Settings/Attributes.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Settings/BuildSettings.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Settings/BuildSettings.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Settings/BuildSettings.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Settings/BuildSettings.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Settings/BuildSettings.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Settings/BuildSettings.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Settings/BuildSettings.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Settings/BuildSettings.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Settings/CollectorSetting.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Settings/CollectorSetting.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Settings/CollectorSetting.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Settings/CollectorSetting.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Settings/CollectorSetting.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Settings/CollectorSetting.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Settings/CollectorSetting.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Settings/CollectorSetting.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Simulate.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Simulate.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Simulate.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Simulate.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Simulate/AddressableEditImpl.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Simulate/AddressableEditImpl.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Simulate/AddressableEditImpl.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Simulate/AddressableEditImpl.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Simulate/AddressableEditImpl.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Simulate/AddressableEditImpl.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Simulate/AddressableEditImpl.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Simulate/AddressableEditImpl.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Utils.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Utils.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Utils.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Utils.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Utils/EditUtil.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Utils/EditUtil.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Utils/EditUtil.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Utils/EditUtil.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Utils/EditUtil.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Utils/EditUtil.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Utils/EditUtil.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Utils/EditUtil.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Utils/GUITools.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Utils/GUITools.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Utils/GUITools.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Utils/GUITools.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Utils/GUITools.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Utils/GUITools.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Utils/GUITools.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Utils/GUITools.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Utils/HistoryUtil.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Utils/HistoryUtil.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Utils/HistoryUtil.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Utils/HistoryUtil.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Utils/HistoryUtil.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Utils/HistoryUtil.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Utils/HistoryUtil.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Utils/HistoryUtil.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Utils/ImportTools.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Utils/ImportTools.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Utils/ImportTools.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Utils/ImportTools.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Utils/ImportTools.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Utils/ImportTools.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Utils/ImportTools.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Utils/ImportTools.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Utils/MultiColumnHeaderUtil.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Utils/MultiColumnHeaderUtil.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Utils/MultiColumnHeaderUtil.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Utils/MultiColumnHeaderUtil.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Utils/MultiColumnHeaderUtil.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Utils/MultiColumnHeaderUtil.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Utils/MultiColumnHeaderUtil.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Utils/MultiColumnHeaderUtil.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Utils/ScriptableSignleton.cs b/Assets/Scripts/NBC/Editor/Runtime/Asset/Utils/ScriptableSignleton.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Utils/ScriptableSignleton.cs rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Utils/ScriptableSignleton.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Utils/ScriptableSignleton.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Asset/Utils/ScriptableSignleton.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/Asset/Utils/ScriptableSignleton.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Asset/Utils/ScriptableSignleton.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/CheckUnityVersion.cs b/Assets/Scripts/NBC/Editor/Runtime/CheckUnityVersion.cs similarity index 81% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/CheckUnityVersion.cs rename to Assets/Scripts/NBC/Editor/Runtime/CheckUnityVersion.cs index 8258eeb1f..8495457f5 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/CheckUnityVersion.cs +++ b/Assets/Scripts/NBC/Editor/Runtime/CheckUnityVersion.cs @@ -1,15 +1,15 @@ using System; using UnityEditor; -namespace Fantasy +namespace NBC { internal static class CheckUnityVersion { [InitializeOnLoadMethod] private static void OnInitializeOnLoad() { -#if !UNITY_2022_3_OR_NEWER - Debug.LogError("Fantasy支持的最低版本为Unity2022.3.622f2"); +#if !UNITY_2021_3_OR_NEWER + Debug.LogError("Fantasy支持的最低版本为Unity2021.3.14f1c1"); #endif } } diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/CheckUnityVersion.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/CheckUnityVersion.cs.meta similarity index 53% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/CheckUnityVersion.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/CheckUnityVersion.cs.meta index ec3073ddc..1f13ace47 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/CheckUnityVersion.cs.meta +++ b/Assets/Scripts/NBC/Editor/Runtime/CheckUnityVersion.cs.meta @@ -1,3 +1,3 @@ fileFormatVersion: 2 -guid: 208434147045e0d4bae1287de7e28fa3 +guid: 455f338921e74471841971fd6b79db01 timeCreated: 1725943424 \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI.meta b/Assets/Scripts/NBC/Editor/Runtime/FairyGUI.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI.meta rename to Assets/Scripts/NBC/Editor/Runtime/FairyGUI.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/DisplayObjectEditor.cs b/Assets/Scripts/NBC/Editor/Runtime/FairyGUI/DisplayObjectEditor.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/DisplayObjectEditor.cs rename to Assets/Scripts/NBC/Editor/Runtime/FairyGUI/DisplayObjectEditor.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/DisplayObjectEditor.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/FairyGUI/DisplayObjectEditor.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/DisplayObjectEditor.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/FairyGUI/DisplayObjectEditor.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/EditorToolSet.cs b/Assets/Scripts/NBC/Editor/Runtime/FairyGUI/EditorToolSet.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/EditorToolSet.cs rename to Assets/Scripts/NBC/Editor/Runtime/FairyGUI/EditorToolSet.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/EditorToolSet.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/FairyGUI/EditorToolSet.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/EditorToolSet.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/FairyGUI/EditorToolSet.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/PackagesWindow.cs b/Assets/Scripts/NBC/Editor/Runtime/FairyGUI/PackagesWindow.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/PackagesWindow.cs rename to Assets/Scripts/NBC/Editor/Runtime/FairyGUI/PackagesWindow.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/PackagesWindow.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/FairyGUI/PackagesWindow.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/PackagesWindow.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/FairyGUI/PackagesWindow.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/StageCameraEditor.cs b/Assets/Scripts/NBC/Editor/Runtime/FairyGUI/StageCameraEditor.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/StageCameraEditor.cs rename to Assets/Scripts/NBC/Editor/Runtime/FairyGUI/StageCameraEditor.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/StageCameraEditor.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/FairyGUI/StageCameraEditor.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/StageCameraEditor.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/FairyGUI/StageCameraEditor.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/UIConfigEditor.cs b/Assets/Scripts/NBC/Editor/Runtime/FairyGUI/UIConfigEditor.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/UIConfigEditor.cs rename to Assets/Scripts/NBC/Editor/Runtime/FairyGUI/UIConfigEditor.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/UIConfigEditor.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/FairyGUI/UIConfigEditor.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/UIConfigEditor.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/FairyGUI/UIConfigEditor.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/UIContentScalerEditor.cs b/Assets/Scripts/NBC/Editor/Runtime/FairyGUI/UIContentScalerEditor.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/UIContentScalerEditor.cs rename to Assets/Scripts/NBC/Editor/Runtime/FairyGUI/UIContentScalerEditor.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/UIContentScalerEditor.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/FairyGUI/UIContentScalerEditor.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/UIContentScalerEditor.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/FairyGUI/UIContentScalerEditor.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/UIPainterEditor.cs b/Assets/Scripts/NBC/Editor/Runtime/FairyGUI/UIPainterEditor.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/UIPainterEditor.cs rename to Assets/Scripts/NBC/Editor/Runtime/FairyGUI/UIPainterEditor.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/UIPainterEditor.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/FairyGUI/UIPainterEditor.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/UIPainterEditor.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/FairyGUI/UIPainterEditor.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/UIPanelEditor.cs b/Assets/Scripts/NBC/Editor/Runtime/FairyGUI/UIPanelEditor.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/UIPanelEditor.cs rename to Assets/Scripts/NBC/Editor/Runtime/FairyGUI/UIPanelEditor.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/UIPanelEditor.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/FairyGUI/UIPanelEditor.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/FairyGUI/UIPanelEditor.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/FairyGUI/UIPanelEditor.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/FantasyStartup.cs b/Assets/Scripts/NBC/Editor/Runtime/FantasyStartup.cs similarity index 85% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/FantasyStartup.cs rename to Assets/Scripts/NBC/Editor/Runtime/FantasyStartup.cs index de2b4dde8..e2680a1ed 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/FantasyStartup.cs +++ b/Assets/Scripts/NBC/Editor/Runtime/FantasyStartup.cs @@ -2,7 +2,7 @@ using System.IO; using UnityEditor; using UnityEngine; -namespace Fantasy +namespace NBC { [InitializeOnLoad] public static class FantasyStartup @@ -20,7 +20,7 @@ namespace Fantasy if (string.IsNullOrEmpty(hotUpdatePath)) { - Debug.LogError("请先在菜单Fantasy-Fantasy Settings里设置自动拷贝程序集输出目录位置"); + Debug.LogError("请先在菜单Fantasy-Fantasy Settings里设置HotUpdatePath目录位置"); return; } @@ -28,14 +28,7 @@ namespace Fantasy { Directory.CreateDirectory(hotUpdatePath); } - else - { - foreach (var file in Directory.GetFiles(hotUpdatePath)) - { - File.Delete(file); - } - } - + // ReSharper disable once StringLastIndexOfIsCultureSpecific.1 if (hotUpdatePath.LastIndexOf("/") != hotUpdatePath.Length - 1) { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/FantasyStartup.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/FantasyStartup.cs.meta similarity index 53% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/FantasyStartup.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/FantasyStartup.cs.meta index 2ea90b5f4..abcd77d59 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/FantasyStartup.cs.meta +++ b/Assets/Scripts/NBC/Editor/Runtime/FantasyStartup.cs.meta @@ -1,3 +1,3 @@ fileFormatVersion: 2 -guid: 13e9d2b99522b124680b7723aaded8d9 +guid: 42156ba2865a4aa4a3e1e57b3ac9b984 timeCreated: 1688276977 \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/LinkXmlGenerator.cs b/Assets/Scripts/NBC/Editor/Runtime/LinkXmlGenerator.cs similarity index 73% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/LinkXmlGenerator.cs rename to Assets/Scripts/NBC/Editor/Runtime/LinkXmlGenerator.cs index 14044c887..8843740ef 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/LinkXmlGenerator.cs +++ b/Assets/Scripts/NBC/Editor/Runtime/LinkXmlGenerator.cs @@ -1,46 +1,34 @@ -using System.Collections.Generic; using System.IO; using UnityEditor; using UnityEngine; -namespace Fantasy +namespace NBC { public class LinkXmlGenerator { private const string LinkPath = "Assets/link.xml"; // 在Unity编辑器中运行该方法来生成link.xml文件 + [UnityEditor.MenuItem("Fantasy/Generate link.xml")] public static void GenerateLinkXml() { using (var writer = new StreamWriter("Assets/link.xml")) { - var assemblyHashSet = new HashSet(); - - foreach (var assembly in FantasySettingsScriptableObject.Instance.includeAssembly) - { - assemblyHashSet.Add(assembly); - } - - if (FantasySettingsScriptableObject.Instance?.linkAssemblyDefinitions != null) - { - foreach (var assemblyDefinition in FantasySettingsScriptableObject.Instance.linkAssemblyDefinitions) - { - assemblyHashSet.Add(assemblyDefinition.name); - } - } - - if (assemblyHashSet.Count == 0) - { - return; - } - writer.WriteLine(""); - foreach (var assembly in assemblyHashSet) + foreach (var assembly in FantasySettingsScriptableObject.Instance.includeAssembly) { GenerateLinkXml(writer, assembly, LinkPath); Debug.Log($"{assembly} Link generation completed"); } + if (FantasySettingsScriptableObject.Instance?.linkAssemblyDefinitions != null) + { + foreach (var linkAssembly in FantasySettingsScriptableObject.Instance.linkAssemblyDefinitions) + { + GenerateLinkXml(writer, linkAssembly.name, LinkPath); + Debug.Log($"{linkAssembly.name} Link generation completed"); + } + } writer.WriteLine(""); } diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/LinkXmlGenerator.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/LinkXmlGenerator.cs.meta similarity index 53% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/LinkXmlGenerator.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/LinkXmlGenerator.cs.meta index 06f60c839..dbab22021 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/LinkXmlGenerator.cs.meta +++ b/Assets/Scripts/NBC/Editor/Runtime/LinkXmlGenerator.cs.meta @@ -1,3 +1,3 @@ fileFormatVersion: 2 -guid: 3360ff806a3d27d478e0e554ebbb291b +guid: cda4c9403de946df9c31654416193a21 timeCreated: 1722743236 \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/NBC.Editor.asmdef b/Assets/Scripts/NBC/Editor/Runtime/NBC.Editor.asmdef similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/NBC.Editor.asmdef rename to Assets/Scripts/NBC/Editor/Runtime/NBC.Editor.asmdef diff --git a/Assets/Scripts/ThirdParty/NBC/Editor/Runtime/NBC.Editor.asmdef.meta b/Assets/Scripts/NBC/Editor/Runtime/NBC.Editor.asmdef.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Editor/Runtime/NBC.Editor.asmdef.meta rename to Assets/Scripts/NBC/Editor/Runtime/NBC.Editor.asmdef.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings.meta b/Assets/Scripts/NBC/Editor/Runtime/Settings.meta similarity index 53% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings.meta rename to Assets/Scripts/NBC/Editor/Runtime/Settings.meta index 9792920a7..6b097c8be 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings.meta +++ b/Assets/Scripts/NBC/Editor/Runtime/Settings.meta @@ -1,3 +1,3 @@ fileFormatVersion: 2 -guid: 4481b9186fbddb04f96e2e6e56e9ebfc +guid: 3a6997d946f3400e8c423fe1b9245f65 timeCreated: 1688277110 \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings/FantasySettings.cs b/Assets/Scripts/NBC/Editor/Runtime/Settings/FantasySettings.cs similarity index 93% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings/FantasySettings.cs rename to Assets/Scripts/NBC/Editor/Runtime/Settings/FantasySettings.cs index 4c85dc7e4..6909092fa 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings/FantasySettings.cs +++ b/Assets/Scripts/NBC/Editor/Runtime/Settings/FantasySettings.cs @@ -1,6 +1,6 @@ using UnityEditor; -namespace Fantasy +namespace NBC { public class FantasySettings { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings/FantasySettings.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Settings/FantasySettings.cs.meta similarity index 53% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings/FantasySettings.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Settings/FantasySettings.cs.meta index e269ea226..852e825bf 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings/FantasySettings.cs.meta +++ b/Assets/Scripts/NBC/Editor/Runtime/Settings/FantasySettings.cs.meta @@ -1,3 +1,3 @@ fileFormatVersion: 2 -guid: 6a31e33b6eab0e847a6e836cf0f9835d +guid: 977a7c172c30403da60286ba39b7bc72 timeCreated: 1686913667 \ No newline at end of file diff --git a/Assets/Scripts/NBC/Editor/Runtime/Settings/FantasySettingsProvider.cs b/Assets/Scripts/NBC/Editor/Runtime/Settings/FantasySettingsProvider.cs new file mode 100644 index 000000000..0a7ee7e21 --- /dev/null +++ b/Assets/Scripts/NBC/Editor/Runtime/Settings/FantasySettingsProvider.cs @@ -0,0 +1,102 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Reflection; +using UnityEditor; +using UnityEngine; +using UnityEngine.UIElements; + +namespace NBC +{ + public class FantasySettingsProvider : SettingsProvider + { + private SerializedObject _serializedObject; + private SerializedProperty _autoCopyAssembly; + private SerializedProperty _hotUpdatePath; + private SerializedProperty _hotUpdateAssemblyDefinitions; + private SerializedProperty _linkAssemblyDefinitions; + private SerializedProperty _includeAssembly; + public FantasySettingsProvider() : base("Project/Fantasy Settings", SettingsScope.Project) { } + + public override void OnActivate(string searchContext, VisualElement rootElement) + { + Init(); + base.OnActivate(searchContext, rootElement); + } + + public override void OnDeactivate() + { + base.OnDeactivate(); + FantasySettingsScriptableObject.Save(); + } + + private void Init() + { + _serializedObject?.Dispose(); + _serializedObject = new SerializedObject(FantasySettingsScriptableObject.Instance); + _autoCopyAssembly = _serializedObject.FindProperty("autoCopyAssembly"); + _hotUpdatePath = _serializedObject.FindProperty("hotUpdatePath"); + _hotUpdateAssemblyDefinitions = _serializedObject.FindProperty("hotUpdateAssemblyDefinitions"); + _linkAssemblyDefinitions = _serializedObject.FindProperty("linkAssemblyDefinitions"); + _includeAssembly = _serializedObject.FindProperty("includeAssembly"); + } + + public override void OnGUI(string searchContext) + { + if (_serializedObject == null || !_serializedObject.targetObject) + { + Init(); + } + + using (CreateSettingsWindowGUIScope()) + { + _serializedObject!.Update(); + + EditorGUI.BeginChangeCheck(); + EditorGUILayout.PropertyField(_autoCopyAssembly); + EditorGUILayout.PropertyField(_hotUpdatePath); + EditorGUILayout.PropertyField(_hotUpdateAssemblyDefinitions); + EditorGUILayout.PropertyField(_includeAssembly); + EditorGUILayout.PropertyField(_linkAssemblyDefinitions); + // EditorGUILayout.HelpBox("默认包括Fantasy.Unity,所以不需要再次指定。", MessageType.Info); + + if (GUILayout.Button("GenerateLinkXml")) + { + LinkXmlGenerator.GenerateLinkXml(); + } + + if (EditorGUI.EndChangeCheck()) + { + _serializedObject.ApplyModifiedProperties(); + FantasySettingsScriptableObject.Save(); + EditorApplication.RepaintHierarchyWindow(); + } + + base.OnGUI(searchContext); + } + } + + private IDisposable CreateSettingsWindowGUIScope() + { + var unityEditorAssembly = System.Reflection.Assembly.GetAssembly(typeof(EditorWindow)); + var type = unityEditorAssembly.GetType("UnityEditor.SettingsWindow+GUIScope"); + return Activator.CreateInstance(type) as IDisposable; + } + + static FantasySettingsProvider _provider; + + [SettingsProvider] + public static SettingsProvider CreateMyCustomSettingsProvider() + { + if (FantasySettingsScriptableObject.Instance && _provider == null) + { + _provider = new FantasySettingsProvider(); + using (var so = new SerializedObject(FantasySettingsScriptableObject.Instance)) + { + _provider.keywords = GetSearchKeywordsFromSerializedObject(so); + } + } + return _provider; + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings/FantasySettingsProvider.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Settings/FantasySettingsProvider.cs.meta similarity index 53% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings/FantasySettingsProvider.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Settings/FantasySettingsProvider.cs.meta index d8e1f24ad..72e475d5a 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings/FantasySettingsProvider.cs.meta +++ b/Assets/Scripts/NBC/Editor/Runtime/Settings/FantasySettingsProvider.cs.meta @@ -1,3 +1,3 @@ fileFormatVersion: 2 -guid: 19a618703b49e3d4fbcd8223540a77f3 +guid: 047b2f13e73f413fa000bf7be979fb4a timeCreated: 1688380387 \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings/FantasySettingsScriptableObject.cs b/Assets/Scripts/NBC/Editor/Runtime/Settings/FantasySettingsScriptableObject.cs similarity index 56% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings/FantasySettingsScriptableObject.cs rename to Assets/Scripts/NBC/Editor/Runtime/Settings/FantasySettingsScriptableObject.cs index 63f9b069b..c36feab0e 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings/FantasySettingsScriptableObject.cs +++ b/Assets/Scripts/NBC/Editor/Runtime/Settings/FantasySettingsScriptableObject.cs @@ -4,20 +4,20 @@ using UnityEditorInternal; using UnityEngine; using UnityEngine.Serialization; -namespace Fantasy +namespace NBC { [ScriptableObjectPath("ProjectSettings/FantasySettings.asset")] public class FantasySettingsScriptableObject : ScriptableObjectSingleton, ISerializationCallbackReceiver { - [FormerlySerializedAs("AutoCopyAssembly")] + [FormerlySerializedAs("AutoCopyAssembly")] [Header("自动拷贝程序集到HotUpdatePath目录中")] public bool autoCopyAssembly = false; - [FormerlySerializedAs("HotUpdatePath")] + [FormerlySerializedAs("HotUpdatePath")] [Header("HotUpdate目录(Unity编译后会把所有HotUpdate程序集Copy一份到这个目录下)")] public string hotUpdatePath; - [FormerlySerializedAs("HotUpdateAssemblyDefinitions")] + [FormerlySerializedAs("HotUpdateAssemblyDefinitions")] [Header("HotUpdate程序集")] public AssemblyDefinitionAsset[] hotUpdateAssemblyDefinitions; - [FormerlySerializedAs("LinkAssemblyDefinitions")] + [FormerlySerializedAs("LinkAssemblyDefinitions")] [Header("指定要生成Link.xml的程序集")] public AssemblyDefinitionAsset[] linkAssemblyDefinitions; - [FormerlySerializedAs("IncludeAssembly")] + [FormerlySerializedAs("IncludeAssembly")] [Header("生成Link.xml时候默认包含的程序集")] public string[] includeAssembly = new[] { "Assembly-CSharp", "Fantasy.Unity" }; public void OnBeforeSerialize() { } public void OnAfterDeserialize() { } diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings/FantasySettingsScriptableObject.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Settings/FantasySettingsScriptableObject.cs.meta similarity index 53% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings/FantasySettingsScriptableObject.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Settings/FantasySettingsScriptableObject.cs.meta index 2c0b0a4dc..b5bae5a80 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings/FantasySettingsScriptableObject.cs.meta +++ b/Assets/Scripts/NBC/Editor/Runtime/Settings/FantasySettingsScriptableObject.cs.meta @@ -1,3 +1,3 @@ fileFormatVersion: 2 -guid: 6733837e208a20a488d61c50fb71919c +guid: 27a37e930ca3454fb57bc895f50d2106 timeCreated: 1688277120 \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings/ScriptableObjectSingleton.cs b/Assets/Scripts/NBC/Editor/Runtime/Settings/ScriptableObjectSingleton.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings/ScriptableObjectSingleton.cs rename to Assets/Scripts/NBC/Editor/Runtime/Settings/ScriptableObjectSingleton.cs index 620667626..191948e1b 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings/ScriptableObjectSingleton.cs +++ b/Assets/Scripts/NBC/Editor/Runtime/Settings/ScriptableObjectSingleton.cs @@ -6,7 +6,7 @@ using UnityEditorInternal; using UnityEngine; // ReSharper disable AssignNullToNotNullAttribute -namespace Fantasy +namespace NBC { public class ScriptableObjectSingleton : ScriptableObject where T : ScriptableObject { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings/ScriptableObjectSingleton.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/Settings/ScriptableObjectSingleton.cs.meta similarity index 53% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings/ScriptableObjectSingleton.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/Settings/ScriptableObjectSingleton.cs.meta index 2b0f325c9..5105c6fcc 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings/ScriptableObjectSingleton.cs.meta +++ b/Assets/Scripts/NBC/Editor/Runtime/Settings/ScriptableObjectSingleton.cs.meta @@ -1,3 +1,3 @@ fileFormatVersion: 2 -guid: a8963b5817140ad42a1a5cae9d6a4336 +guid: 3c77f5208dc14542ae7497d59321ef76 timeCreated: 1688278016 \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/WSocket.meta b/Assets/Scripts/NBC/Editor/Runtime/WSocket.meta similarity index 77% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/WSocket.meta rename to Assets/Scripts/NBC/Editor/Runtime/WSocket.meta index 0197b241b..21883b652 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/WSocket.meta +++ b/Assets/Scripts/NBC/Editor/Runtime/WSocket.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c6603a5cb5b34f44fb04cfca6e80092d +guid: b9e5c7d1436ec414fa3f69a23aaafc3b folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/WSocket/SettingsWindow.cs b/Assets/Scripts/NBC/Editor/Runtime/WSocket/SettingsWindow.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/WSocket/SettingsWindow.cs rename to Assets/Scripts/NBC/Editor/Runtime/WSocket/SettingsWindow.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/WSocket/SettingsWindow.cs.meta b/Assets/Scripts/NBC/Editor/Runtime/WSocket/SettingsWindow.cs.meta similarity index 83% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/WSocket/SettingsWindow.cs.meta rename to Assets/Scripts/NBC/Editor/Runtime/WSocket/SettingsWindow.cs.meta index ce870f364..741246883 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/WSocket/SettingsWindow.cs.meta +++ b/Assets/Scripts/NBC/Editor/Runtime/WSocket/SettingsWindow.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c797632152a42a04e944c54c3bdacad8 +guid: 902614e06186a482f9e816e1d1984547 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/LICENSE b/Assets/Scripts/NBC/LICENSE similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/LICENSE rename to Assets/Scripts/NBC/LICENSE diff --git a/Assets/Scripts/ThirdParty/NBC/LICENSE.meta b/Assets/Scripts/NBC/LICENSE.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/LICENSE.meta rename to Assets/Scripts/NBC/LICENSE.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/README.md b/Assets/Scripts/NBC/README.md similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/README.md rename to Assets/Scripts/NBC/README.md diff --git a/Assets/Scripts/ThirdParty/NBC/README.md.meta b/Assets/Scripts/NBC/README.md.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/README.md.meta rename to Assets/Scripts/NBC/README.md.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime.meta b/Assets/Scripts/NBC/Runtime.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime.meta rename to Assets/Scripts/NBC/Runtime.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset.meta b/Assets/Scripts/NBC/Runtime/Asset.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset.meta rename to Assets/Scripts/NBC/Runtime/Asset.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Editor.meta b/Assets/Scripts/NBC/Runtime/Asset/Editor.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Editor.meta rename to Assets/Scripts/NBC/Runtime/Asset/Editor.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Address.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Address.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Addressable.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Addressable.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Addressable.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Addressable.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Addressable.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Addressable.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Addressable.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Addressable.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/AddressableRuntimeImpl.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/AddressableRuntimeImpl.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/AddressableRuntimeImpl.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/AddressableRuntimeImpl.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/AddressableRuntimeImpl.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/AddressableRuntimeImpl.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/AddressableRuntimeImpl.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/AddressableRuntimeImpl.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Data.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Data.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Data.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Data.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Data/AssetData.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Data/AssetData.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Data/AssetData.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Data/AssetData.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Data/AssetData.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Data/AssetData.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Data/AssetData.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Data/AssetData.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Data/BundleData.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Data/BundleData.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Data/BundleData.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Data/BundleData.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Data/BundleData.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Data/BundleData.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Data/BundleData.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Data/BundleData.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Data/PackageData.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Data/PackageData.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Data/PackageData.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Data/PackageData.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Data/PackageData.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Data/PackageData.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Data/PackageData.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Data/PackageData.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Data/VersionData.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Data/VersionData.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Data/VersionData.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Data/VersionData.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Data/VersionData.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Data/VersionData.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Data/VersionData.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Data/VersionData.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Data/VersionDataReader.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Data/VersionDataReader.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Data/VersionDataReader.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Data/VersionDataReader.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Data/VersionDataReader.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Data/VersionDataReader.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Data/VersionDataReader.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Data/VersionDataReader.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Info.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Info.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Info.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Info.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Info/AssetInfo.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Info/AssetInfo.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Info/AssetInfo.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Info/AssetInfo.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Info/AssetInfo.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Info/AssetInfo.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Info/AssetInfo.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Info/AssetInfo.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Info/BundleInfo.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Info/BundleInfo.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Info/BundleInfo.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Info/BundleInfo.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Info/BundleInfo.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Info/BundleInfo.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Address/Info/BundleInfo.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Address/Info/BundleInfo.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/AssetLoadFromDatabase.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/AssetLoadFromDatabase.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/AssetLoadFromDatabase.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/AssetLoadFromDatabase.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/AssetLoadFromDatabase.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/AssetLoadFromDatabase.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/AssetLoadFromDatabase.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/AssetLoadFromDatabase.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/AssetLoaderFromBundle.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/AssetLoaderFromBundle.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/AssetLoaderFromBundle.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/AssetLoaderFromBundle.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/AssetLoaderFromBundle.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/AssetLoaderFromBundle.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/AssetLoaderFromBundle.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/AssetLoaderFromBundle.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/BundleLoaderFromDownload.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/BundleLoaderFromDownload.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/BundleLoaderFromDownload.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/BundleLoaderFromDownload.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/BundleLoaderFromDownload.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/BundleLoaderFromDownload.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/BundleLoaderFromDownload.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/BundleLoaderFromDownload.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/BundleLoaderFromLocal.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/BundleLoaderFromLocal.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/BundleLoaderFromLocal.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/BundleLoaderFromLocal.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/BundleLoaderFromLocal.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/BundleLoaderFromLocal.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/BundleLoaderFromLocal.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/BundleLoaderFromLocal.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/IAssetLoader.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/IAssetLoader.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/IAssetLoader.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/IAssetLoader.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/IAssetLoader.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/IAssetLoader.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/IAssetLoader.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/IAssetLoader.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/IBundleLoader.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/IBundleLoader.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/IBundleLoader.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/IBundleLoader.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/IBundleLoader.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/IBundleLoader.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/IBundleLoader.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/IBundleLoader.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/ISceneLoader.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/ISceneLoader.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/ISceneLoader.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/ISceneLoader.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/ISceneLoader.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/ISceneLoader.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/ISceneLoader.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/ISceneLoader.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/SceneLoadFromDatabase.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/SceneLoadFromDatabase.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/SceneLoadFromDatabase.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/SceneLoadFromDatabase.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/SceneLoadFromDatabase.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/SceneLoadFromDatabase.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/SceneLoadFromDatabase.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/SceneLoadFromDatabase.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/SceneLoaderFromBundle.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/SceneLoaderFromBundle.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/SceneLoaderFromBundle.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/SceneLoaderFromBundle.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/SceneLoaderFromBundle.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/SceneLoaderFromBundle.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Loaders/SceneLoaderFromBundle.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Loaders/SceneLoaderFromBundle.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Providers.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Providers.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Providers.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Providers.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Providers/AssetProvider.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Providers/AssetProvider.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Providers/AssetProvider.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Providers/AssetProvider.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Providers/AssetProvider.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Providers/AssetProvider.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Providers/AssetProvider.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Providers/AssetProvider.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Providers/BundledProvider.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Providers/BundledProvider.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Providers/BundledProvider.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Providers/BundledProvider.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Providers/BundledProvider.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Providers/BundledProvider.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Providers/BundledProvider.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Providers/BundledProvider.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Providers/Dependency.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Providers/Dependency.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Providers/Dependency.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Providers/Dependency.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Providers/Dependency.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Providers/Dependency.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Providers/Dependency.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Providers/Dependency.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Providers/ProviderBase.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Providers/ProviderBase.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Providers/ProviderBase.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Providers/ProviderBase.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Providers/ProviderBase.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Providers/ProviderBase.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Providers/ProviderBase.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Providers/ProviderBase.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Providers/SceneProvider.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Providers/SceneProvider.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Providers/SceneProvider.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Providers/SceneProvider.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Providers/SceneProvider.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Providers/SceneProvider.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Asset/Providers/SceneProvider.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Asset/Providers/SceneProvider.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Assets.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Assets.cs similarity index 99% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Assets.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Assets.cs index ed0cbb064..b8fb15fc9 100644 --- a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Assets.cs +++ b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Assets.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.IO; -using NBC.Async; using UnityEngine; using Object = UnityEngine.Object; diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Assets.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Assets.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Assets.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Assets.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Const.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Const.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Const.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Const.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Const/Const.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Const/Const.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Const/Const.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Const/Const.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Const/Const.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Const/Const.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Const/Const.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Const/Const.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Enums.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Enums.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Enums.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Enums.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Enums/BundleLoadMode.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Enums/BundleLoadMode.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Enums/BundleLoadMode.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Enums/BundleLoadMode.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Enums/BundleLoadMode.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Enums/BundleLoadMode.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Enums/BundleLoadMode.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Enums/BundleLoadMode.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Services.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Services.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Services.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Services.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Services/Debug.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Services/Debug.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Services/Debug.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Services/Debug.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Services/Debug/DebugInfo.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Services/Debug/DebugInfo.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Services/Debug/DebugInfo.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Services/Debug/DebugInfo.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Services/Debug/DebugInfo.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Services/Debug/DebugInfo.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Services/Debug/DebugInfo.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Services/Debug/DebugInfo.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Services/Debug/DebugRemoteServer.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Services/Debug/DebugRemoteServer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Services/Debug/DebugRemoteServer.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Services/Debug/DebugRemoteServer.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Services/Debug/DebugRemoteServer.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Services/Debug/DebugRemoteServer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Services/Debug/DebugRemoteServer.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Services/Debug/DebugRemoteServer.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Services/IDecryptionServices.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Services/IDecryptionServices.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Services/IDecryptionServices.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Services/IDecryptionServices.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Services/IDecryptionServices.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Services/IDecryptionServices.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Services/IDecryptionServices.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Services/IDecryptionServices.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Services/Recycler.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Services/Recycler.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Services/Recycler.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Services/Recycler.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Services/Recycler.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Services/Recycler.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Services/Recycler.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Services/Recycler.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/AssetTaskBase.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/AssetTaskBase.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/AssetTaskBase.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/AssetTaskBase.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/AssetTaskBase.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/AssetTaskBase.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/AssetTaskBase.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/AssetTaskBase.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Download.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Download.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Download.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Download.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadBundlesTask.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadBundlesTask.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadBundlesTask.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadBundlesTask.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadBundlesTask.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadBundlesTask.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadBundlesTask.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadBundlesTask.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadCertificateHandler.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadCertificateHandler.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadCertificateHandler.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadCertificateHandler.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadCertificateHandler.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadCertificateHandler.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadCertificateHandler.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadCertificateHandler.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadFileTask.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadFileTask.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadFileTask.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadFileTask.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadFileTask.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadFileTask.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadFileTask.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadFileTask.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadRunner.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadRunner.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadRunner.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadRunner.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadRunner.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadRunner.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadRunner.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadRunner.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadTaskBase.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadTaskBase.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadTaskBase.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadTaskBase.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadTaskBase.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadTaskBase.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadTaskBase.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Download/DownloadTaskBase.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization/EditorInitializationTask.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization/EditorInitializationTask.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization/EditorInitializationTask.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization/EditorInitializationTask.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization/EditorInitializationTask.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization/EditorInitializationTask.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization/EditorInitializationTask.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization/EditorInitializationTask.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization/InitializationTask.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization/InitializationTask.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization/InitializationTask.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization/InitializationTask.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization/InitializationTask.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization/InitializationTask.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization/InitializationTask.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization/InitializationTask.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization/OfflineInitializationTask.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization/OfflineInitializationTask.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization/OfflineInitializationTask.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization/OfflineInitializationTask.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization/OfflineInitializationTask.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization/OfflineInitializationTask.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization/OfflineInitializationTask.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization/OfflineInitializationTask.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization/OnlineInitializationTask.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization/OnlineInitializationTask.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization/OnlineInitializationTask.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization/OnlineInitializationTask.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization/OnlineInitializationTask.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization/OnlineInitializationTask.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization/OnlineInitializationTask.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization/OnlineInitializationTask.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization/StepTasks.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization/StepTasks.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization/StepTasks.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization/StepTasks.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization/StepTasks/CheckCoverInstallTask.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization/StepTasks/CheckCoverInstallTask.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization/StepTasks/CheckCoverInstallTask.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization/StepTasks/CheckCoverInstallTask.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization/StepTasks/CheckCoverInstallTask.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization/StepTasks/CheckCoverInstallTask.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization/StepTasks/CheckCoverInstallTask.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization/StepTasks/CheckCoverInstallTask.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization/StepTasks/CheckUnpackPackageTask.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization/StepTasks/CheckUnpackPackageTask.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization/StepTasks/CheckUnpackPackageTask.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization/StepTasks/CheckUnpackPackageTask.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization/StepTasks/CheckUnpackPackageTask.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization/StepTasks/CheckUnpackPackageTask.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Initialization/StepTasks/CheckUnpackPackageTask.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Initialization/StepTasks/CheckUnpackPackageTask.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Provider.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Provider.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Provider.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Provider.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Provider/ProviderRunner.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Provider/ProviderRunner.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Provider/ProviderRunner.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Provider/ProviderRunner.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Provider/ProviderRunner.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Provider/ProviderRunner.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Provider/ProviderRunner.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Provider/ProviderRunner.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/RunFunctionTask.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/RunFunctionTask.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/RunFunctionTask.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/RunFunctionTask.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/RunFunctionTask.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/RunFunctionTask.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/RunFunctionTask.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/RunFunctionTask.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/TaskRunner.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/TaskRunner.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/TaskRunner.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/TaskRunner.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/TaskRunner.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/TaskRunner.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/TaskRunner.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/TaskRunner.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Unpack.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Unpack.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Unpack.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Unpack.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackFileTask.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackFileTask.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackFileTask.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackFileTask.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackFileTask.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackFileTask.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackFileTask.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackFileTask.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackPackagesTask.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackPackagesTask.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackPackagesTask.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackPackagesTask.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackPackagesTask.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackPackagesTask.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackPackagesTask.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackPackagesTask.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackVersionTask.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackVersionTask.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackVersionTask.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackVersionTask.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackVersionTask.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackVersionTask.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackVersionTask.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Unpack/UnpackVersionTask.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Update.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Update.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Update.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Update.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Update/CheckUpdateTask.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Update/CheckUpdateTask.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Update/CheckUpdateTask.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Update/CheckUpdateTask.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Update/CheckUpdateTask.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Update/CheckUpdateTask.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Update/CheckUpdateTask.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Update/CheckUpdateTask.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Update/UpdateContext.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Update/UpdateContext.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Update/UpdateContext.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Update/UpdateContext.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Update/UpdateContext.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Update/UpdateContext.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Update/UpdateContext.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Update/UpdateContext.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Update/UpdateVersionTask.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Update/UpdateVersionTask.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Update/UpdateVersionTask.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Update/UpdateVersionTask.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Update/UpdateVersionTask.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Update/UpdateVersionTask.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Tasks/Update/UpdateVersionTask.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Tasks/Update/UpdateVersionTask.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Utils.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Utils.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Utils.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Utils.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Utils/Mono.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Utils/Mono.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Utils/Mono.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Utils/Mono.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Utils/Mono.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Utils/Mono.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Utils/Mono.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Utils/Mono.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Utils/StreamingAssetsUtil.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Utils/StreamingAssetsUtil.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Utils/StreamingAssetsUtil.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Utils/StreamingAssetsUtil.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Utils/StreamingAssetsUtil.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Utils/StreamingAssetsUtil.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Utils/StreamingAssetsUtil.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Utils/StreamingAssetsUtil.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Utils/Util.cs b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Utils/Util.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Utils/Util.cs rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Utils/Util.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Utils/Util.cs.meta b/Assets/Scripts/NBC/Runtime/Asset/Runtime/Utils/Util.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Asset/Runtime/Utils/Util.cs.meta rename to Assets/Scripts/NBC/Runtime/Asset/Runtime/Utils/Util.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core.meta b/Assets/Scripts/NBC/Runtime/Core.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core.meta rename to Assets/Scripts/NBC/Runtime/Core.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/App.cs b/Assets/Scripts/NBC/Runtime/Core/App.cs similarity index 99% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/App.cs rename to Assets/Scripts/NBC/Runtime/Core/App.cs index 1bf1a79de..bcb6a3957 100644 --- a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/App.cs +++ b/Assets/Scripts/NBC/Runtime/Core/App.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using NBC.Async; using UnityEngine; namespace NBC diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/App.cs.meta b/Assets/Scripts/NBC/Runtime/Core/App.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/App.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/App.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly.meta b/Assets/Scripts/NBC/Runtime/Core/Assembly.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly.meta rename to Assets/Scripts/NBC/Runtime/Core/Assembly.meta diff --git a/Assets/Scripts/NBC/Runtime/Core/Assembly/AssemblyInfo.cs b/Assets/Scripts/NBC/Runtime/Core/Assembly/AssemblyInfo.cs new file mode 100644 index 000000000..7f6c1d074 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Assembly/AssemblyInfo.cs @@ -0,0 +1,89 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using NBC.DataStructure.Collection; + +// ReSharper disable CollectionNeverQueried.Global +#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. + +namespace NBC.Assembly +{ + /// + /// AssemblyInfo提供有关程序集和类型的信息 + /// + public sealed class AssemblyInfo + { + /// + /// 唯一标识 + /// + public readonly long AssemblyIdentity; + /// + /// 获取或设置与此程序集相关联的 实例。 + /// + public System.Reflection.Assembly Assembly { get; private set; } + /// + /// 程序集类型集合,获取一个列表,包含从程序集加载的所有类型。 + /// + public readonly List AssemblyTypeList = new List(); + /// + /// 程序集类型分组集合,获取一个分组列表,将接口类型映射到实现这些接口的类型。 + /// + public readonly OneToManyList AssemblyTypeGroupList = new OneToManyList(); + + /// + /// 初始化 类的新实例。 + /// + /// + public AssemblyInfo(long assemblyIdentity) + { + AssemblyIdentity = assemblyIdentity; + } + + /// + /// 从指定的程序集加载类型信息并进行分类。 + /// + /// 要加载信息的程序集。 + public void Load(System.Reflection.Assembly assembly) + { + Assembly = assembly; + var assemblyTypes = assembly.GetTypes().ToList(); + + foreach (var type in assemblyTypes) + { + if (type.IsAbstract || type.IsInterface) + { + continue; + } + + var interfaces = type.GetInterfaces(); + + foreach (var interfaceType in interfaces) + { + AssemblyTypeGroupList.Add(interfaceType, type); + } + } + + AssemblyTypeList.AddRange(assemblyTypes); + } + + /// + /// 重新加载程序集的类型信息。 + /// + /// + public void ReLoad(System.Reflection.Assembly assembly) + { + Unload(); + Load(assembly); + } + + /// + /// 卸载程序集的类型信息。 + /// + public void Unload() + { + AssemblyTypeList.Clear(); + AssemblyTypeGroupList.Clear(); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/AssemblyLifecycle.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Assembly/AssemblyInfo.cs.meta similarity index 83% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/AssemblyLifecycle.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Assembly/AssemblyInfo.cs.meta index 7957a6a90..b5e3a2846 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/AssemblyLifecycle.cs.meta +++ b/Assets/Scripts/NBC/Runtime/Core/Assembly/AssemblyInfo.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: cc34b85d59dac6a4dad420cfa302e4c7 +guid: 6588e9470957646dfa79849126de341c MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Scripts/NBC/Runtime/Core/Assembly/AssemblySystem.cs b/Assets/Scripts/NBC/Runtime/Core/Assembly/AssemblySystem.cs new file mode 100644 index 000000000..25de73752 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Assembly/AssemblySystem.cs @@ -0,0 +1,286 @@ +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Security.Cryptography; +using System.Text; +using NBC.Async; +using NBC.Helper; + +#pragma warning disable CS8604 // Possible null reference argument. +#pragma warning disable CS8602 // Dereference of a possibly null reference. +#pragma warning disable CS8603 +#pragma warning disable CS8618 +namespace NBC.Assembly +{ + /// + /// 管理程序集加载和卸载的帮助类。 + /// + public static class AssemblySystem + { +#if FANTASY_WEBGL + private static readonly List AssemblySystems = new List(); + private static readonly Dictionary AssemblyList = new Dictionary(); +#else + private static readonly ConcurrentQueue AssemblySystems = new ConcurrentQueue(); + private static readonly ConcurrentDictionary AssemblyList = new ConcurrentDictionary(); +#endif + /// + /// 初始化 AssemblySystem。(仅限内部) + /// + /// + internal static async FTask InnerInitialize(params System.Reflection.Assembly[] assemblies) + { + await LoadAssembly(typeof(AssemblySystem).Assembly); + foreach (var assembly in assemblies) + { + await LoadAssembly(assembly); + } + } + + /// + /// 加载指定的程序集,并触发相应的事件。 + /// + /// 要加载的程序集。 + /// 如果当前Domain中已经存在同名的Assembly,使用Domain中的程序集。 + public static async FTask LoadAssembly(System.Reflection.Assembly assembly, bool isCurrentDomain = true) + { + if (isCurrentDomain) + { + var currentDomainAssemblies = System.AppDomain.CurrentDomain.GetAssemblies(); + var currentAssembly = currentDomainAssemblies.FirstOrDefault(d => d.GetName().Name == assembly.GetName().Name); + if (currentAssembly != null) + { + assembly = currentAssembly; + } + } + + var assemblyIdentity = AssemblyIdentity(assembly); + + if (AssemblyList.TryGetValue(assemblyIdentity, out var assemblyInfo)) + { + assemblyInfo.ReLoad(assembly); + foreach (var assemblySystem in AssemblySystems) + { + await assemblySystem.ReLoad(assemblyIdentity); + } + } + else + { + assemblyInfo = new AssemblyInfo(assemblyIdentity); + assemblyInfo.Load(assembly); + AssemblyList.TryAdd(assemblyIdentity, assemblyInfo); + foreach (var assemblySystem in AssemblySystems) + { + await assemblySystem.Load(assemblyIdentity); + } + } + } + + /// + /// 卸载程序集 + /// + /// + public static async FTask UnLoadAssembly(System.Reflection.Assembly assembly) + { + var assemblyIdentity = AssemblyIdentity(assembly); + + if (!AssemblyList.Remove(assemblyIdentity, out var assemblyInfo)) + { + return; + } + + assemblyInfo.Unload(); + foreach (var assemblySystem in AssemblySystems) + { + await assemblySystem.OnUnLoad(assemblyIdentity); + } + } + + /// + /// 将AssemblySystem接口的object注册到程序集管理中心 + /// + /// + public static async FTask Register(object obj) + { + if (obj is not IAssembly assemblySystem) + { + return; + } +#if FANTASY_WEBGL + AssemblySystems.Add(assemblySystem); +#else + AssemblySystems.Enqueue(assemblySystem); +#endif + foreach (var (assemblyIdentity, _) in AssemblyList) + { + await assemblySystem.Load(assemblyIdentity); + } + } + + /// + /// 程序集管理中心卸载注册的Load、ReLoad、UnLoad的接口 + /// + /// + public static void UnRegister(object obj) + { + if (obj is not IAssembly assemblySystem) + { + return; + } +#if FANTASY_WEBGL + AssemblySystems.Remove(assemblySystem); +#else + var count = AssemblySystems.Count; + + for (var i = 0; i < count; i++) + { + if (!AssemblySystems.TryDequeue(out var removeAssemblySystem)) + { + continue; + } + + if (removeAssemblySystem == assemblySystem) + { + break; + } + + AssemblySystems.Enqueue(removeAssemblySystem); + } +#endif + } + + /// + /// 获取所有已加载程序集中的所有类型。 + /// + /// 所有已加载程序集中的类型。 + public static IEnumerable ForEach() + { + foreach (var (_, assemblyInfo) in AssemblyList) + { + foreach (var type in assemblyInfo.AssemblyTypeList) + { + yield return type; + } + } + } + + /// + /// 获取指定程序集中的所有类型。 + /// + /// 程序集唯一标识。 + /// 指定程序集中的类型。 + public static IEnumerable ForEach(long assemblyIdentity) + { + if (!AssemblyList.TryGetValue(assemblyIdentity, out var assemblyInfo)) + { + yield break; + } + + foreach (var type in assemblyInfo.AssemblyTypeList) + { + yield return type; + } + } + + /// + /// 获取所有已加载程序集中实现指定类型的所有类型。 + /// + /// 要查找的基类或接口类型。 + /// 所有已加载程序集中实现指定类型的类型。 + public static IEnumerable ForEach(Type findType) + { + foreach (var (_, assemblyInfo) in AssemblyList) + { + if (!assemblyInfo.AssemblyTypeGroupList.TryGetValue(findType, out var assemblyLoad)) + { + continue; + } + + foreach (var type in assemblyLoad) + { + yield return type; + } + } + } + + /// + /// 获取指定程序集中实现指定类型的所有类型。 + /// + /// 程序集唯一标识。 + /// 要查找的基类或接口类型。 + /// 指定程序集中实现指定类型的类型。 + public static IEnumerable ForEach(long assemblyIdentity, Type findType) + { + if (!AssemblyList.TryGetValue(assemblyIdentity, out var assemblyInfo)) + { + yield break; + } + + if (!assemblyInfo.AssemblyTypeGroupList.TryGetValue(findType, out var assemblyLoad)) + { + yield break; + } + + foreach (var type in assemblyLoad) + { + yield return type; + } + } + + /// + /// 获取指定程序集的实例。 + /// + /// 程序集名称。 + /// 指定程序集的实例,如果未加载则返回 null。 + public static System.Reflection.Assembly GetAssembly(long assemblyIdentity) + { + return !AssemblyList.TryGetValue(assemblyIdentity, out var assemblyInfo) ? null : assemblyInfo.Assembly; + } + + /// + /// 获取当前框架注册的Assembly + /// + /// + public static IEnumerable ForEachAssembly + { + get + { + foreach (var (_, assemblyInfo) in AssemblyList) + { + yield return assemblyInfo.Assembly; + } + } + } + + /// + /// 根据Assembly的强命名计算唯一标识。 + /// + /// + /// + private static long AssemblyIdentity(System.Reflection.Assembly assembly) + { + return HashCodeHelper.ComputeHash64(assembly.GetName().Name); + } + + /// + /// 释放资源,卸载所有加载的程序集。 + /// + public static void Dispose() + { + DisposeAsync().Coroutine(); + } + + private static async FTask DisposeAsync() + { + foreach (var (_, assemblyInfo) in AssemblyList.ToArray()) + { + await UnLoadAssembly(assemblyInfo.Assembly); + } + + AssemblyList.Clear(); + AssemblySystems.Clear(); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/AssemblyManifest.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Assembly/AssemblySystem.cs.meta similarity index 83% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/AssemblyManifest.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Assembly/AssemblySystem.cs.meta index ae387a2fc..6474bd994 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/AssemblyManifest.cs.meta +++ b/Assets/Scripts/NBC/Runtime/Core/Assembly/AssemblySystem.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 0b3ec9cf56a12434a80505dca842a833 +guid: 6f06892fa649d49c287bf07095569ae0 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Scripts/NBC/Runtime/Core/Assembly/IAssembly.cs b/Assets/Scripts/NBC/Runtime/Core/Assembly/IAssembly.cs new file mode 100644 index 000000000..f86c9f13c --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Assembly/IAssembly.cs @@ -0,0 +1,27 @@ +using System; +using NBC.Async; + +namespace NBC.Assembly +{ + /// + /// 实现这个接口、会再程序集首次加载、卸载、重载的时候调用 + /// + public interface IAssembly : IDisposable + { + /// + /// 程序集加载时调用 + /// + /// 程序集标识 + public FTask Load(long assemblyIdentity); + /// + /// 程序集重新加载的时候调用 + /// + /// 程序集标识 + public FTask ReLoad(long assemblyIdentity); + /// + /// 卸载的时候调用 + /// + /// 程序集标识 + public FTask OnUnLoad(long assemblyIdentity); + } +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IAssemblyLifecycle.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Assembly/IAssembly.cs.meta similarity index 83% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IAssemblyLifecycle.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Assembly/IAssembly.cs.meta index f2266e8c7..11db0dc68 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IAssemblyLifecycle.cs.meta +++ b/Assets/Scripts/NBC/Runtime/Core/Assembly/IAssembly.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 3c72e8392156fd34db27c23ffce41bbb +guid: f14fcbf29decc4d47b6c548a3d5f2a3f MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor.meta b/Assets/Scripts/NBC/Runtime/Core/Attributes.meta similarity index 77% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Editor.meta rename to Assets/Scripts/NBC/Runtime/Core/Attributes.meta index 29b611ea4..b5e7b7eab 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor.meta +++ b/Assets/Scripts/NBC/Runtime/Core/Attributes.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 852fc04751ab07349a96fb31b98b9bf7 +guid: cf2ee6bcf7bf9f94eb3eab2a87540dcd folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Scripts/NBC/Runtime/Core/Attributes/Attributes.cs b/Assets/Scripts/NBC/Runtime/Core/Attributes/Attributes.cs new file mode 100644 index 000000000..1c951104f --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Attributes/Attributes.cs @@ -0,0 +1,20 @@ +using System; + +namespace NBC +{ + [AttributeUsage(AttributeTargets.Class)] + public class BaseAttribute : Attribute + { + } + + [AttributeUsage(AttributeTargets.Class | AttributeTargets.Field | AttributeTargets.Method)] + public class SortAttribute : Attribute + { + public int Sort; + + public SortAttribute(int sort) + { + Sort = sort; + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/NBC/Runtime/Core/Attributes/Attributes.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Attributes/Attributes.cs.meta new file mode 100644 index 000000000..9ae06182c --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Attributes/Attributes.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 32bc35c38967479d81a79bd1354d38e8 +timeCreated: 1733995116 \ No newline at end of file diff --git a/Assets/Scripts/NBC/Runtime/Core/Config.meta b/Assets/Scripts/NBC/Runtime/Core/Config.meta new file mode 100644 index 000000000..42243075f --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Config.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 5ccc2499679c40909ac59a0a325c78c4 +timeCreated: 1759160041 \ No newline at end of file diff --git a/Assets/Scripts/NBC/Runtime/Core/Config/ConfigContext.cs b/Assets/Scripts/NBC/Runtime/Core/Config/ConfigContext.cs new file mode 100644 index 000000000..53c9ec1fe --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Config/ConfigContext.cs @@ -0,0 +1,90 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace NBC +{ + public interface IConfigContext + { + // 定义非泛型接口 + } + + public class ConfigContext : IConfigContext where T : IConfigTable + { + private static List _cacheList = new List(); + + #region Cache + + public void Association(List list) + { + if (list != null) + { + _cacheList = list; + } + } + + #endregion + + public int Count() + { + return _cacheList.Count; + } + + public int Count(Func predicate) + { + return _cacheList.Count(predicate); + } + + public T Get(uint key) + { + return First(key); + } + + public T Fist() + { + return _cacheList.First(); + } + + public T Last() + { + return _cacheList.Last(); + } + + public T Fist(Predicate match) + { + return Get(match); + } + + public T Last(Predicate match) + { + return _cacheList.FindLast(match); + } + + public T Get(Predicate match) + { + return _cacheList.Find(match); + } + + public T GetRandom() + { + Random random = new Random(); + // 随机从列表中取一个对象 + return _cacheList[random.Next(_cacheList.Count)]; + } + + public List GetList() + { + return _cacheList; + } + + public List GetList(Predicate match) + { + return _cacheList.FindAll(match); + } + + private T First(uint key) + { + return _cacheList.Find(t => t.Key == key); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/NBC/Runtime/Core/Config/ConfigContext.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Config/ConfigContext.cs.meta new file mode 100644 index 000000000..e0d9e3f4d --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Config/ConfigContext.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: f916dd8f41b047068d570fc87f9163c2 +timeCreated: 1760064105 \ No newline at end of file diff --git a/Assets/Scripts/NBC/Runtime/Core/Config/ConfigTableHelper.cs b/Assets/Scripts/NBC/Runtime/Core/Config/ConfigTableHelper.cs new file mode 100644 index 000000000..9f35d20ea --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Config/ConfigTableHelper.cs @@ -0,0 +1,115 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using NBC.Serialize; +using Newtonsoft.Json.Linq; + +namespace NBC +{ + /// + /// 配置表帮助类 + /// + public static class ConfigTableHelper + { + private static readonly Dictionary _dictionary = new Dictionary(); + + /// + /// 初始化ConfigTableHelper + /// + public static void Initialize(string json) + { + var jsonObj = JObject.Parse(json); + Dictionary tokens = new(); + foreach (var item in jsonObj) + { + try + { + var name = item.Key; + var value = item.Value; + if (value is JArray jArray) + { + tokens[name] = jArray; + } + } + catch (Exception e) + { + Log.Error($"读表异常,请检查,name={item.Key} ex={e}"); + } + } + + //反射获取所有IConfigTable的非抽象类 + var tableTypes = GetAllConfigTableTypes(); + foreach (var type in tableTypes) + { + var name = type.Name; + if (tokens.TryGetValue(name, out var jArray)) + { + // 通过反射调用 ParseJson 方法 + var parseMethod = type.GetMethod("ParseJson", BindingFlags.Public | BindingFlags.Static); + parseMethod?.Invoke(null, new object[] { jArray }); + } + } + + } + + public static ConfigContext Table() where T : IConfigTable + { + var type = typeof(T); + if (_dictionary.TryGetValue(type, out var context)) + { + return context as ConfigContext; + } + + var jsonContext = new ConfigContext(); + _dictionary[type] = jsonContext; + return jsonContext; + } + + public static List ParseLine(JArray arr) where T : IConfigTable, new() + { + List list = new List(); + foreach (var jToken in arr) + { + T instance = jToken.ToObject(); + + if (instance != null) + { + list.Add(instance); + } + } + + var context = Table(); + context.Association(list); + + return list; + } + + + /// + /// 获取所有实现了 IConfigTable 接口的非抽象类 + /// + /// 所有非抽象的配置对象类 + private static List GetAllConfigTableTypes() + { + var types = new List(); + var interfaceType = typeof(IConfigTable); + + // 遍历当前程序集中的所有类型 + foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies()) + { + foreach (var type in assembly.GetTypes()) + { + // 检查是否实现了 IConfigTable 接口,并且不是抽象类 + if (interfaceType.IsAssignableFrom(type) && !type.IsAbstract && !type.IsInterface) + { + types.Add(type); + } + } + } + + return types; + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/NBC/Runtime/Core/Config/ConfigTableHelper.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Config/ConfigTableHelper.cs.meta new file mode 100644 index 000000000..5e76c5c1d --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Config/ConfigTableHelper.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: de53a788ec4e446eb6c07c50c65afcc2 +timeCreated: 1759160093 \ No newline at end of file diff --git a/Assets/Scripts/NBC/Runtime/Core/Config/IConfigTable.cs b/Assets/Scripts/NBC/Runtime/Core/Config/IConfigTable.cs new file mode 100644 index 000000000..ffa4e2eb7 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Config/IConfigTable.cs @@ -0,0 +1,19 @@ +namespace NBC +{ + /// + /// 表示是一个配置文件 + /// + public interface IConfigTable + { + public uint Key { get; } + } + + public interface IConfigItemTable + { + public string Model { get; } + + public string Quality { get; } + + public string Icon { get; } + } +} \ No newline at end of file diff --git a/Assets/Scripts/NBC/Runtime/Core/Config/IConfigTable.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Config/IConfigTable.cs.meta new file mode 100644 index 000000000..78551c11b --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Config/IConfigTable.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: df4eb038440a4a498e27ccaf23a1cd9b +timeCreated: 1759160060 \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/CircularBuffer.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/CircularBuffer.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/CircularBuffer.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/CircularBuffer.cs index d80ec5529..d7a68c06e 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/CircularBuffer.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/CircularBuffer.cs @@ -4,7 +4,7 @@ using System.IO; #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. -namespace Fantasy.DataStructure.Collection +namespace NBC.DataStructure.Collection { /// 环形缓存(自增式缓存,自动扩充、不会收缩缓存、所以不要用这个操作过大的IO流) /// 1、环大小8192,溢出的会自动增加环的大小。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/CircularBuffer.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/CircularBuffer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/CircularBuffer.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/CircularBuffer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/ConcurrentOneToManyListPool.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/ConcurrentOneToManyListPool.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/ConcurrentOneToManyListPool.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/ConcurrentOneToManyListPool.cs index e110a0b3f..d8a5e94e0 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/ConcurrentOneToManyListPool.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/ConcurrentOneToManyListPool.cs @@ -3,11 +3,11 @@ using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; -using Fantasy.Pool; +using NBC.Pool; #pragma warning disable CS8603 // Possible null reference return. -namespace Fantasy.DataStructure.Collection +namespace NBC.DataStructure.Collection { /// /// 并发的一对多列表池,用于维护具有相同键的多个值的关联关系,实现了 接口。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/ConcurrentOneToManyListPool.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/ConcurrentOneToManyListPool.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/ConcurrentOneToManyListPool.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/ConcurrentOneToManyListPool.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/ConcurrentOneToManyQueuePool.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/ConcurrentOneToManyQueuePool.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/ConcurrentOneToManyQueuePool.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/ConcurrentOneToManyQueuePool.cs index 59c436701..e6ee79ff6 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/ConcurrentOneToManyQueuePool.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/ConcurrentOneToManyQueuePool.cs @@ -2,11 +2,11 @@ using System; using System.Collections.Concurrent; using System.Collections.Generic; -using Fantasy.Pool; +using NBC.Pool; #pragma warning disable CS8603 -namespace Fantasy.DataStructure.Collection +namespace NBC.DataStructure.Collection { /// /// 表示一个并发的一对多队列池,用于维护具有相同键的多个值的关联关系,实现了 接口。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/ConcurrentOneToManyQueuePool.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/ConcurrentOneToManyQueuePool.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/ConcurrentOneToManyQueuePool.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/ConcurrentOneToManyQueuePool.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/HashSetPool.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/HashSetPool.cs similarity index 98% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/HashSetPool.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/HashSetPool.cs index bb64ae870..5e46af055 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/HashSetPool.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/HashSetPool.cs @@ -1,8 +1,8 @@ using System; using System.Collections.Generic; -using Fantasy.Pool; +using NBC.Pool; -namespace Fantasy.DataStructure.Collection +namespace NBC.DataStructure.Collection { /// /// 可释放的哈希集合对象池。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/HashSetPool.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/HashSetPool.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/HashSetPool.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/HashSetPool.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/ListPool.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/ListPool.cs similarity index 97% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/ListPool.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/ListPool.cs index de70fe239..13c272fef 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/ListPool.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/ListPool.cs @@ -1,10 +1,10 @@ using System; using System.Collections.Generic; -using Fantasy.Pool; +using NBC.Pool; // ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract -namespace Fantasy.DataStructure.Collection +namespace NBC.DataStructure.Collection { /// /// 可释放的列表(List)对象池。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/ListPool.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/ListPool.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/ListPool.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/ListPool.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/OneToManyHashSetPool.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/OneToManyHashSetPool.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/OneToManyHashSetPool.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/OneToManyHashSetPool.cs index 8a5766c26..e0a223d01 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/OneToManyHashSetPool.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/OneToManyHashSetPool.cs @@ -1,10 +1,10 @@ using System; using System.Collections.Generic; -using Fantasy.Pool; +using NBC.Pool; #pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. -namespace Fantasy.DataStructure.Collection +namespace NBC.DataStructure.Collection { /// /// 一对多哈希集合(OneToManyHashSet)对象池。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/OneToManyHashSetPool.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/OneToManyHashSetPool.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/OneToManyHashSetPool.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/OneToManyHashSetPool.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/OneToManyListPool.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/OneToManyListPool.cs similarity index 90% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/OneToManyListPool.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/OneToManyListPool.cs index 80568efeb..1f7d469d1 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/OneToManyListPool.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/OneToManyListPool.cs @@ -1,12 +1,13 @@ using System; using System.Collections.Generic; using System.Linq; -using Fantasy.Pool; +using System.Reflection; +using NBC.Pool; #pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. #pragma warning disable CS8603 // Possible null reference return. -namespace Fantasy.DataStructure.Collection +namespace NBC.DataStructure.Collection { /// /// 可回收的、一对多关系的列表池。 @@ -88,6 +89,26 @@ namespace Fantasy.DataStructure.Collection /// public OneToManyList() { } + /// + /// 对整个字典的所有 List 进行排序 + /// + public void SortAll() + { + foreach (var key in Keys.ToList()) // 使用 ToList() 避免修改集合异常 + { + this[key] = this[key].OrderByDescending(GetSortValue).ToList(); + } + } + + // 获取对象的排序值(SortAttribute 的值,默认 0) + private int GetSortValue(TValue obj) + { + if (obj == null) return 0; + + var sortAttr = obj.GetType().GetCustomAttribute(); + return sortAttr?.Sort ?? 0; + } + /// /// 设置最大缓存数量 /// diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/OneToManyListPool.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/OneToManyListPool.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/OneToManyListPool.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/OneToManyListPool.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/OneToManyQueuePool.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/OneToManyQueuePool.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/OneToManyQueuePool.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/OneToManyQueuePool.cs index 222576e44..e787ba82d 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/OneToManyQueuePool.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/OneToManyQueuePool.cs @@ -1,10 +1,10 @@ using System; using System.Collections.Generic; -using Fantasy.Pool; +using NBC.Pool; #pragma warning disable CS8603 -namespace Fantasy.DataStructure.Collection +namespace NBC.DataStructure.Collection { /// /// 支持一对多关系的队列池,用于存储具有相同键的值的队列集合。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/OneToManyQueuePool.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/OneToManyQueuePool.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/OneToManyQueuePool.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/OneToManyQueuePool.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/ReuseList.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/ReuseList.cs similarity index 96% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/ReuseList.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/ReuseList.cs index b4395e8a9..50be9bc89 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/ReuseList.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/ReuseList.cs @@ -1,8 +1,8 @@ using System; using System.Collections.Generic; -using Fantasy.Pool; +using NBC.Pool; -namespace Fantasy.DataStructure.Collection +namespace NBC.DataStructure.Collection { /// /// 可重用的列表,继承自 类。该类支持通过对象池重用列表实例,以减少对象分配和释放的开销。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/ReuseList.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/ReuseList.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/ReuseList.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/ReuseList.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/SortedConcurrentOneToManyListPool.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/SortedConcurrentOneToManyListPool.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/SortedConcurrentOneToManyListPool.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/SortedConcurrentOneToManyListPool.cs index 464ab58ef..98198a9a5 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/SortedConcurrentOneToManyListPool.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/SortedConcurrentOneToManyListPool.cs @@ -2,11 +2,11 @@ using System; using System.Collections.Generic; using System.Linq; -using Fantasy.Pool; +using NBC.Pool; #pragma warning disable CS8603 -namespace Fantasy.DataStructure.Collection +namespace NBC.DataStructure.Collection { /// /// 基于排序字典和并发集合实现的一对多映射列表的对象池包装类,继承自 类, diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/SortedConcurrentOneToManyListPool.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/SortedConcurrentOneToManyListPool.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/SortedConcurrentOneToManyListPool.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/SortedConcurrentOneToManyListPool.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/SortedOneToManyHashSetPool.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/SortedOneToManyHashSetPool.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/SortedOneToManyHashSetPool.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/SortedOneToManyHashSetPool.cs index 8158db562..0c49ca86b 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/SortedOneToManyHashSetPool.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/SortedOneToManyHashSetPool.cs @@ -1,8 +1,8 @@ using System; using System.Collections.Generic; -using Fantasy.Pool; +using NBC.Pool; -namespace Fantasy.DataStructure.Collection +namespace NBC.DataStructure.Collection { /// /// 基于排序字典实现的一对多关系的映射哈希集合的对象池包装类,将唯一键映射到多个值的哈希集合。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/SortedOneToManyHashSetPool.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/SortedOneToManyHashSetPool.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/SortedOneToManyHashSetPool.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/SortedOneToManyHashSetPool.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/SortedOneToManyListPool.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/SortedOneToManyListPool.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/SortedOneToManyListPool.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/SortedOneToManyListPool.cs index f0bae12fa..dc349c91f 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/SortedOneToManyListPool.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/SortedOneToManyListPool.cs @@ -1,11 +1,11 @@ using System; using System.Collections.Generic; using System.Linq; -using Fantasy.Pool; +using NBC.Pool; #pragma warning disable CS8603 -namespace Fantasy.DataStructure.Collection +namespace NBC.DataStructure.Collection { /// /// 基于排序字典实现的一对多映射列表的对象池包装类,继承自 类, diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/SortedOneToManyListPool.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/SortedOneToManyListPool.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Collection/SortedOneToManyListPool.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Collection/SortedOneToManyListPool.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/DictionaryExtensions.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/DictionaryExtensions.cs similarity index 96% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/DictionaryExtensions.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/DictionaryExtensions.cs index ed0aa5791..609c411dd 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/DictionaryExtensions.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/DictionaryExtensions.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; #pragma warning disable CS8601 // Possible null reference assignment. -namespace Fantasy.DataStructure.Dictionary +namespace NBC.DataStructure.Dictionary { /// /// 提供对字典的扩展方法。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/DictionaryExtensions.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/DictionaryExtensions.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/DictionaryExtensions.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/DictionaryExtensions.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/DictionaryPool.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/DictionaryPool.cs similarity index 96% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/DictionaryPool.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/DictionaryPool.cs index 567901c2e..a65c8f1fc 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/DictionaryPool.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/DictionaryPool.cs @@ -1,8 +1,8 @@ using System; using System.Collections.Generic; -using Fantasy.Pool; +using NBC.Pool; -namespace Fantasy.DataStructure.Dictionary +namespace NBC.DataStructure.Dictionary { /// /// 提供一个可以使用对象池管理的字典类。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/DictionaryPool.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/DictionaryPool.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/DictionaryPool.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/DictionaryPool.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/DoubleMapDictionaryPool.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/DoubleMapDictionaryPool.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/DoubleMapDictionaryPool.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/DoubleMapDictionaryPool.cs index e868710c6..d7868814c 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/DoubleMapDictionaryPool.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/DoubleMapDictionaryPool.cs @@ -1,12 +1,12 @@ using System; using System.Collections.Generic; -using Fantasy.Pool; +using NBC.Pool; #pragma warning disable CS8601 // Possible null reference assignment. #pragma warning disable CS8604 // Possible null reference argument. #pragma warning disable CS8603 // Possible null reference return. -namespace Fantasy.DataStructure.Dictionary +namespace NBC.DataStructure.Dictionary { /// /// 提供一个双向映射字典对象池类,用于双向键值对映射。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/DoubleMapDictionaryPool.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/DoubleMapDictionaryPool.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/DoubleMapDictionaryPool.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/DoubleMapDictionaryPool.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/EntityDictionary.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/EntityDictionary.cs similarity index 97% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/EntityDictionary.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/EntityDictionary.cs index fc4d44f89..4c4d25f29 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/EntityDictionary.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/EntityDictionary.cs @@ -1,8 +1,8 @@ using System; using System.Collections.Generic; -using Fantasy.Pool; +using NBC.Pool; -namespace Fantasy.DataStructure.Dictionary +namespace NBC.DataStructure.Dictionary { /// /// 提供一个带资源释放功能的实体字典类,支持使用对象池管理。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/EntityDictionary.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/EntityDictionary.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/EntityDictionary.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/EntityDictionary.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/OneToManyDictionaryPool.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/OneToManyDictionaryPool.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/OneToManyDictionaryPool.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/OneToManyDictionaryPool.cs index 051542324..3d4756105 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/OneToManyDictionaryPool.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/OneToManyDictionaryPool.cs @@ -1,12 +1,12 @@ using System; using System.Collections.Generic; using System.Linq; -using Fantasy.Pool; +using NBC.Pool; #pragma warning disable CS8603 #pragma warning disable CS8601 -namespace Fantasy.DataStructure.Dictionary +namespace NBC.DataStructure.Dictionary { /// /// 一对多映射关系的字典对象池。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/OneToManyDictionaryPool.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/OneToManyDictionaryPool.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/OneToManyDictionaryPool.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/OneToManyDictionaryPool.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/OneToManySortedDictionaryPool.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/OneToManySortedDictionaryPool.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/OneToManySortedDictionaryPool.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/OneToManySortedDictionaryPool.cs index 127a8ac67..c6208a7a1 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/OneToManySortedDictionaryPool.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/OneToManySortedDictionaryPool.cs @@ -1,10 +1,10 @@ using System; using System.Collections.Generic; -using Fantasy.Pool; +using NBC.Pool; #pragma warning disable CS8601 -namespace Fantasy.DataStructure.Dictionary +namespace NBC.DataStructure.Dictionary { /// /// 一对多映射关系的排序字典对象池。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/OneToManySortedDictionaryPool.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/OneToManySortedDictionaryPool.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/OneToManySortedDictionaryPool.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/OneToManySortedDictionaryPool.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/ReuseDictionary.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/ReuseDictionary.cs similarity index 96% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/ReuseDictionary.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/ReuseDictionary.cs index ebe12e95a..04fea5b55 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/ReuseDictionary.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/ReuseDictionary.cs @@ -1,8 +1,8 @@ using System; using System.Collections.Generic; -using Fantasy.Pool; +using NBC.Pool; -namespace Fantasy.DataStructure.Dictionary +namespace NBC.DataStructure.Dictionary { /// /// 提供一个可以重用的字典类,支持使用对象池管理。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/ReuseDictionary.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/ReuseDictionary.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/ReuseDictionary.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/ReuseDictionary.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/SortedDictionaryPool.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/SortedDictionaryPool.cs similarity index 96% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/SortedDictionaryPool.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/SortedDictionaryPool.cs index 8db66a881..b7741759d 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/SortedDictionaryPool.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/SortedDictionaryPool.cs @@ -1,8 +1,8 @@ using System; using System.Collections.Generic; -using Fantasy.Pool; +using NBC.Pool; -namespace Fantasy.DataStructure.Dictionary +namespace NBC.DataStructure.Dictionary { /// /// 提供一个可以使用对象池管理的排序字典类。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/SortedDictionaryPool.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/SortedDictionaryPool.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/Dictionary/SortedDictionaryPool.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/Dictionary/SortedDictionaryPool.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/NativeCollections.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/NativeCollections.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/NativeCollections.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/NativeCollections.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/PriorityQueue.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/PriorityQueue.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/PriorityQueue.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/PriorityQueue.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueGenerics.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueGenerics.cs similarity index 98% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueGenerics.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueGenerics.cs index 2ef67040c..4c1ae0e3a 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueGenerics.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueGenerics.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member #pragma warning disable CS8601 // Possible null reference assignment. -namespace Fantasy.DataStructure.PriorityQueue +namespace NBC.DataStructure.PriorityQueue { /// /// 优先队列 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueGenerics.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueGenerics.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueGenerics.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueGenerics.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueItem.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueItem.cs similarity index 94% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueItem.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueItem.cs index 5b020b2a0..754b313d5 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueItem.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueItem.cs @@ -2,7 +2,7 @@ // ReSharper disable SwapViaDeconstruction // ReSharper disable InconsistentNaming #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -namespace Fantasy.DataStructure.PriorityQueue +namespace NBC.DataStructure.PriorityQueue { public struct PriorityQueueItemUint { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueItem.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueItem.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueItem.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueItem.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueSimple.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueSimple.cs similarity index 98% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueSimple.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueSimple.cs index 63a4418b4..9841c06c2 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueSimple.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueSimple.cs @@ -5,7 +5,7 @@ using System; using System.Collections.Generic; #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member #pragma warning disable CS8601 // Possible null reference assignment. -namespace Fantasy.DataStructure.PriorityQueue +namespace NBC.DataStructure.PriorityQueue { public sealed class PriorityQueue where T : IComparable { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueSimple.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueSimple.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueSimple.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/PriorityQueue/PriorityQueueSimple.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/SkipTable.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/SkipTable.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/SkipTable.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/SkipTable.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/SkipTable/SkipTable.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/SkipTable/SkipTable.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/SkipTable/SkipTable.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/SkipTable/SkipTable.cs index acbc2c1f4..b4ca0c579 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/SkipTable/SkipTable.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/SkipTable/SkipTable.cs @@ -4,7 +4,7 @@ #pragma warning disable CS8604 // Possible null reference argument. #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. #pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. -namespace Fantasy.DataStructure.SkipTable +namespace NBC.DataStructure.SkipTable { /// /// 跳表数据结构(升序版) diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/SkipTable/SkipTable.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/SkipTable/SkipTable.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/SkipTable/SkipTable.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/SkipTable/SkipTable.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/SkipTable/SkipTableBase.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/SkipTable/SkipTableBase.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/SkipTable/SkipTableBase.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/SkipTable/SkipTableBase.cs index 82783e81c..86798d94d 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/SkipTable/SkipTableBase.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/SkipTable/SkipTableBase.cs @@ -1,14 +1,14 @@ using System; using System.Collections; using System.Collections.Generic; -using Fantasy.DataStructure.Collection; +using NBC.DataStructure.Collection; #pragma warning disable CS8601 #pragma warning disable CS8603 #pragma warning disable CS8625 #pragma warning disable CS8604 -namespace Fantasy.DataStructure.SkipTable +namespace NBC.DataStructure.SkipTable { /// /// 抽象的跳表基类,提供跳表的基本功能和操作。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/SkipTable/SkipTableBase.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/SkipTable/SkipTableBase.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/SkipTable/SkipTableBase.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/SkipTable/SkipTableBase.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/SkipTable/SkipTableDesc.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/SkipTable/SkipTableDesc.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/SkipTable/SkipTableDesc.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/SkipTable/SkipTableDesc.cs index 63daa16c1..41c95d780 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/SkipTable/SkipTableDesc.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/SkipTable/SkipTableDesc.cs @@ -4,7 +4,7 @@ #pragma warning disable CS8602 // Dereference of a possibly null reference. #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. #pragma warning disable CS8601 // Possible null reference assignment. -namespace Fantasy.DataStructure.SkipTable +namespace NBC.DataStructure.SkipTable { /// /// 跳表降序版,用于存储降序排列的数据。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/SkipTable/SkipTableDesc.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/SkipTable/SkipTableDesc.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/SkipTable/SkipTableDesc.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/SkipTable/SkipTableDesc.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/SkipTable/SkipTableNode.cs b/Assets/Scripts/NBC/Runtime/Core/DataStructure/SkipTable/SkipTableNode.cs similarity index 98% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/SkipTable/SkipTableNode.cs rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/SkipTable/SkipTableNode.cs index 8a1a1446c..8ef19fe9e 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/SkipTable/SkipTableNode.cs +++ b/Assets/Scripts/NBC/Runtime/Core/DataStructure/SkipTable/SkipTableNode.cs @@ -1,4 +1,4 @@ -namespace Fantasy.DataStructure.SkipTable +namespace NBC.DataStructure.SkipTable { /// /// 跳跃表节点。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/SkipTable/SkipTableNode.cs.meta b/Assets/Scripts/NBC/Runtime/Core/DataStructure/SkipTable/SkipTableNode.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataStructure/SkipTable/SkipTableNode.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/DataStructure/SkipTable/SkipTableNode.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/CoroutineLock.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/CoroutineLock.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/CoroutineLock.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/CoroutineLock.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLock.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLock.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLock.cs rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLock.cs index a95d8f3a9..9d5c819ba 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLock.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLock.cs @@ -1,10 +1,10 @@ using System; using System.Collections.Generic; -using Fantasy.Pool; +using NBC.Pool; #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. -namespace Fantasy.Async +namespace NBC.Async { /// /// 协程锁专用的对象池 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLock.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLock.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLock.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLock.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLockComponent.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLockComponent.cs similarity index 96% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLockComponent.cs rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLockComponent.cs index fe03298b3..98efb3124 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLockComponent.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLockComponent.cs @@ -1,10 +1,10 @@ using System.Collections.Generic; -using Fantasy.Entitas; +using NBC.Entitas; #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. -namespace Fantasy.Async +namespace NBC.Async { /// /// 协程锁组件 @@ -82,7 +82,7 @@ namespace Fantasy.Async /// /// /// - public void Release(long coroutineLockType, long coroutineLockQueueKey) + public void Release(int coroutineLockType, long coroutineLockQueueKey) { if (IsDisposed) { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLockComponent.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLockComponent.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLockComponent.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLockComponent.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLockQueue.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLockQueue.cs similarity index 96% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLockQueue.cs rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLockQueue.cs index 2948aca2a..808cfad8e 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLockQueue.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLockQueue.cs @@ -1,10 +1,10 @@ // ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract using System.Collections.Generic; -using Fantasy.Pool; +using NBC.Pool; #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. -namespace Fantasy.Async +namespace NBC.Async { internal sealed class CoroutineLockQueuePool : PoolCore { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLockQueue.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLockQueue.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLockQueue.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/CoroutineLock/CoroutineLockQueue.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/CoroutineLock/WaitCoroutineLock.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/CoroutineLock/WaitCoroutineLock.cs similarity index 98% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/CoroutineLock/WaitCoroutineLock.cs rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/CoroutineLock/WaitCoroutineLock.cs index 28d04d46d..1e179b1fb 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/CoroutineLock/WaitCoroutineLock.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/CoroutineLock/WaitCoroutineLock.cs @@ -1,10 +1,10 @@ using System; -using Fantasy.Event; -using Fantasy.Pool; +using NBC.Event; +using NBC.Pool; #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. -namespace Fantasy.Async +namespace NBC.Async { internal sealed class WaitCoroutineLockPool : PoolCore { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/CoroutineLock/WaitCoroutineLock.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/CoroutineLock/WaitCoroutineLock.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/CoroutineLock/WaitCoroutineLock.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/CoroutineLock/WaitCoroutineLock.cs.meta diff --git a/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/EntityComponent.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/EntityComponent.cs new file mode 100644 index 000000000..eb3b4c741 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/EntityComponent.cs @@ -0,0 +1,472 @@ +// ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract +using System; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using System.Runtime.InteropServices; +using NBC.Entitas; +using NBC.Assembly; +using NBC.Async; +using NBC.DataStructure.Collection; +using NBC.Entitas.Interface; +using NBC.Helper; + +#pragma warning disable CS8602 // Dereference of a possibly null reference. +#pragma warning disable CS8765 // Nullability of type of parameter doesn't match overridden member (possibly because of nullability attributes). + +#pragma warning disable CS8604 // Possible null reference argument. +#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member +namespace NBC.Entitas +{ + internal sealed class UpdateQueueInfo + { + public bool IsStop; + public readonly Type Type; + public readonly long RunTimeId; + + public UpdateQueueInfo(Type type, long runTimeId) + { + Type = type; + IsStop = false; + RunTimeId = runTimeId; + } + } + + internal sealed class FrameUpdateQueueInfo + { + public readonly Type Type; + public readonly long RunTimeId; + + public FrameUpdateQueueInfo(Type type, long runTimeId) + { + Type = type; + RunTimeId = runTimeId; + } + } + + internal struct CustomEntitiesSystemKey : IEquatable + { + public int CustomEventType { get; } + public Type EntitiesType { get; } + public CustomEntitiesSystemKey(int customEventType, Type entitiesType) + { + CustomEventType = customEventType; + EntitiesType = entitiesType; + } + public bool Equals(CustomEntitiesSystemKey other) + { + return CustomEventType == other.CustomEventType && EntitiesType == other.EntitiesType; + } + + public override bool Equals(object obj) + { + return obj is CustomEntitiesSystemKey other && Equals(other); + } + + public override int GetHashCode() + { + return HashCode.Combine(CustomEventType, EntitiesType); + } + } + + /// + /// Entity管理组件 + /// + public sealed class EntityComponent : Entity, ISceneUpdate, IAssembly + { + private readonly OneToManyList _assemblyList = new(); + private readonly OneToManyList _assemblyHashCodes = new(); + + private readonly Dictionary _awakeSystems = new(); + private readonly Dictionary _updateSystems = new(); + private readonly Dictionary _destroySystems = new(); + private readonly Dictionary _deserializeSystems = new(); + private readonly Dictionary _frameUpdateSystem = new(); + + private readonly OneToManyList _assemblyCustomSystemList = new(); + private readonly Dictionary _customEntitiesSystems = new Dictionary(); + + private readonly Dictionary _hashCodes = new Dictionary(); + private readonly Queue _updateQueue = new Queue(); + private readonly Queue _frameUpdateQueue = new Queue(); + private readonly Dictionary _updateQueueDic = new Dictionary(); + + internal async FTask Initialize() + { + await AssemblySystem.Register(this); + return this; + } + + #region Assembly + + public FTask Load(long assemblyIdentity) + { + var task = FTask.Create(false); + Scene?.ThreadSynchronizationContext.Post(() => + { + LoadInner(assemblyIdentity); + task.SetResult(); + }); + return task; + } + + public FTask ReLoad(long assemblyIdentity) + { + var task = FTask.Create(false); + Scene?.ThreadSynchronizationContext.Post(() => + { + OnUnLoadInner(assemblyIdentity); + LoadInner(assemblyIdentity); + task.SetResult(); + }); + + return task; + } + + public FTask OnUnLoad(long assemblyIdentity) + { + var task = FTask.Create(false); + Scene?.ThreadSynchronizationContext.Post(() => + { + OnUnLoadInner(assemblyIdentity); + task.SetResult(); + }); + return task; + } + + private void LoadInner(long assemblyIdentity) + { + foreach (var entityType in AssemblySystem.ForEach(assemblyIdentity, typeof(IEntity))) + { + _hashCodes.Add(entityType, HashCodeHelper.ComputeHash64(entityType.FullName)); + _assemblyHashCodes.Add(assemblyIdentity, entityType); + } + + foreach (var entitiesSystemType in AssemblySystem.ForEach(assemblyIdentity, typeof(IEntitiesSystem))) + { + Type entitiesType = null; + var entity = Activator.CreateInstance(entitiesSystemType); + + switch (entity) + { + case IAwakeSystem iAwakeSystem: + { + entitiesType = iAwakeSystem.EntitiesType(); + _awakeSystems.Add(entitiesType, iAwakeSystem); + break; + } + case IDestroySystem iDestroySystem: + { + entitiesType = iDestroySystem.EntitiesType(); + _destroySystems.Add(entitiesType, iDestroySystem); + break; + } + case IDeserializeSystem iDeserializeSystem: + { + entitiesType = iDeserializeSystem.EntitiesType(); + _deserializeSystems.Add(entitiesType, iDeserializeSystem); + break; + } + case IUpdateSystem iUpdateSystem: + { + entitiesType = iUpdateSystem.EntitiesType(); + _updateSystems.Add(entitiesType, iUpdateSystem); + break; + } + case IFrameUpdateSystem iFrameUpdateSystem: + { + entitiesType = iFrameUpdateSystem.EntitiesType(); + _frameUpdateSystem.Add(entitiesType, iFrameUpdateSystem); + break; + } + default: + { + Log.Error($"IEntitiesSystem not support type {entitiesSystemType}"); + return; + } + } + + _assemblyList.Add(assemblyIdentity, entitiesType); + } + + foreach (var customEntitiesSystemType in AssemblySystem.ForEach(assemblyIdentity, typeof(ICustomEntitiesSystem))) + { + var entity = (ICustomEntitiesSystem)Activator.CreateInstance(customEntitiesSystemType); + var customEntitiesSystemKey = new CustomEntitiesSystemKey(entity.CustomEventType, entity.EntitiesType()); + _customEntitiesSystems.Add(customEntitiesSystemKey, entity); + _assemblyCustomSystemList.Add(assemblyIdentity, customEntitiesSystemKey); + } + } + + private void OnUnLoadInner(long assemblyIdentity) + { + if (_assemblyHashCodes.TryGetValue(assemblyIdentity, out var entityType)) + { + foreach (var type in entityType) + { + _hashCodes.Remove(type); + } + + _assemblyHashCodes.RemoveByKey(assemblyIdentity); + } + + if (_assemblyList.TryGetValue(assemblyIdentity, out var assembly)) + { + foreach (var type in assembly) + { + _awakeSystems.Remove(type); + _updateSystems.Remove(type); + _destroySystems.Remove(type); + _deserializeSystems.Remove(type); + _frameUpdateSystem.Remove(type); + } + + _assemblyList.RemoveByKey(assemblyIdentity); + } + + if (_assemblyCustomSystemList.TryGetValue(assemblyIdentity, out var customSystemAssembly)) + { + foreach (var customEntitiesSystemKey in customSystemAssembly) + { + _customEntitiesSystems.Remove(customEntitiesSystemKey); + } + + _assemblyCustomSystemList.RemoveByKey(assemblyIdentity); + } + } + + #endregion + + #region Event + + /// + /// 触发实体的唤醒方法 + /// + /// 实体对象 + public void Awake(Entity entity) + { + if (!_awakeSystems.TryGetValue(entity.Type, out var awakeSystem)) + { + return; + } + + try + { + awakeSystem.Invoke(entity); + } + catch (Exception e) + { + Log.Error($"{entity.Type.FullName} Error {e}"); + } + } + + /// + /// 触发实体的销毁方法 + /// + /// 实体对象 + public void Destroy(Entity entity) + { + if (!_destroySystems.TryGetValue(entity.Type, out var system)) + { + return; + } + + try + { + system.Invoke(entity); + } + catch (Exception e) + { + Log.Error($"{entity.Type.FullName} Destroy Error {e}"); + } + } + + /// + /// 触发实体的反序列化方法 + /// + /// 实体对象 + public void Deserialize(Entity entity) + { + if (!_deserializeSystems.TryGetValue(entity.Type, out var system)) + { + return; + } + + try + { + system.Invoke(entity); + } + catch (Exception e) + { + Log.Error($"{entity.Type.FullName} Deserialize Error {e}"); + } + } + + #endregion + + #region CustomEvent + + public void CustomSystem(Entity entity, int customEventType) + { + var customEntitiesSystemKey = new CustomEntitiesSystemKey(customEventType, entity.Type); + + if (!_customEntitiesSystems.TryGetValue(customEntitiesSystemKey, out var system)) + { + return; + } + + try + { + system.Invoke(entity); + } + catch (Exception e) + { + Log.Error($"{entity.Type.FullName} CustomSystem Error {e}"); + } + } + + #endregion + + #region Update + + /// + /// 将实体加入更新队列,准备进行更新 + /// + /// 实体对象 + public void StartUpdate(Entity entity) + { + var type = entity.Type; + var entityRuntimeId = entity.RuntimeId; + + if (_updateSystems.ContainsKey(type)) + { + var updateQueueInfo = new UpdateQueueInfo(type, entityRuntimeId); + _updateQueue.Enqueue(updateQueueInfo); + _updateQueueDic.Add(entityRuntimeId, updateQueueInfo); + } + + if (_frameUpdateSystem.ContainsKey(type)) + { + _frameUpdateQueue.Enqueue(new FrameUpdateQueueInfo(type, entityRuntimeId)); + } + } + + /// + /// 停止实体进行更新 + /// + /// 实体对象 + public void StopUpdate(Entity entity) + { + if (!_updateQueueDic.Remove(entity.RuntimeId, out var updateQueueInfo)) + { + return; + } + + updateQueueInfo.IsStop = true; + } + + /// + /// 执行实体系统的更新逻辑 + /// + public void Update() + { + var updateQueueCount = _updateQueue.Count; + + while (updateQueueCount-- > 0) + { + var updateQueueStruct = _updateQueue.Dequeue(); + + if (updateQueueStruct.IsStop) + { + continue; + } + + if (!_updateSystems.TryGetValue(updateQueueStruct.Type, out var updateSystem)) + { + continue; + } + + var entity = Scene.GetEntity(updateQueueStruct.RunTimeId); + + if (entity == null || entity.IsDisposed) + { + _updateQueueDic.Remove(updateQueueStruct.RunTimeId); + continue; + } + + _updateQueue.Enqueue(updateQueueStruct); + + try + { + updateSystem.Invoke(entity); + } + catch (Exception e) + { + Log.Error($"{updateQueueStruct.Type.FullName} Update Error {e}"); + } + } + } + + /// + /// 执行实体系统的帧更新逻辑 + /// + public void FrameUpdate() + { + var count = _frameUpdateQueue.Count; + + while (count-- > 0) + { + var frameUpdateQueueStruct = _frameUpdateQueue.Dequeue(); + + if (!_frameUpdateSystem.TryGetValue(frameUpdateQueueStruct.Type, out var frameUpdateSystem)) + { + continue; + } + + var entity = Scene.GetEntity(frameUpdateQueueStruct.RunTimeId); + + if (entity == null || entity.IsDisposed) + { + continue; + } + + _frameUpdateQueue.Enqueue(frameUpdateQueueStruct); + + try + { + frameUpdateSystem.Invoke(entity); + } + catch (Exception e) + { + Log.Error($"{frameUpdateQueueStruct.Type.FullName} FrameUpdate Error {e}"); + } + } + } + + #endregion + + public long GetHashCode(Type type) + { + return _hashCodes[type]; + } + + /// + /// 释放实体系统管理器资源 + /// + public override void Dispose() + { + _updateQueue.Clear(); + _frameUpdateQueue.Clear(); + + _assemblyList.Clear(); + _awakeSystems.Clear(); + _updateSystems.Clear(); + _destroySystems.Clear(); + _deserializeSystems.Clear(); + _frameUpdateSystem.Clear(); + + AssemblySystem.UnRegister(this); + base.Dispose(); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EntityComponent/EntityComponent.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/EntityComponent.cs.meta similarity index 83% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EntityComponent/EntityComponent.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/EntityComponent.cs.meta index eeb2a4513..a8384983b 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EntityComponent/EntityComponent.cs.meta +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/EntityComponent.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 5c41a64a82499d045967d2a95ddb43e9 +guid: 41c0ffdbeaaf84d848105eb341414c4a MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EventComponent.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/EventComponent.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EventComponent.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/EventComponent.meta diff --git a/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/EventComponent/EventComponent.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/EventComponent/EventComponent.cs new file mode 100644 index 000000000..9ffed0b62 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/EventComponent/EventComponent.cs @@ -0,0 +1,255 @@ +using System; +using System.Reflection; +using NBC.Assembly; +using NBC.Async; +using NBC.DataStructure.Collection; +using NBC.Entitas; + +// ReSharper disable PossibleMultipleEnumeration +#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member +// ReSharper disable MethodOverloadWithOptionalParameter + +namespace NBC.Event +{ + internal sealed class EventCache + { + public readonly Type EnventType; + public readonly object Obj; + public EventCache(Type enventType, object obj) + { + EnventType = enventType; + Obj = obj; + } + } + + public sealed class EventComponent : Entity, IAssembly + { + private readonly OneToManyList _events = new(); + private readonly OneToManyList _asyncEvents = new(); + private readonly OneToManyList _assemblyEvents = new(); + private readonly OneToManyList _assemblyAsyncEvents = new(); + + internal async FTask Initialize() + { + await AssemblySystem.Register(this); + return this; + } + + #region Assembly + + public async FTask Load(long assemblyIdentity) + { + var tcs = FTask.Create(false); + Scene?.ThreadSynchronizationContext.Post(() => + { + LoadInner(assemblyIdentity); + tcs.SetResult(); + }); + await tcs; + } + + public async FTask ReLoad(long assemblyIdentity) + { + var tcs = FTask.Create(false); + Scene?.ThreadSynchronizationContext.Post(() => + { + OnUnLoadInner(assemblyIdentity); + LoadInner(assemblyIdentity); + tcs.SetResult(); + }); + await tcs; + } + + public async FTask OnUnLoad(long assemblyIdentity) + { + var tcs = FTask.Create(false); + Scene?.ThreadSynchronizationContext.Post(() => + { + OnUnLoadInner(assemblyIdentity); + tcs.SetResult(); + }); + await tcs; + } + + private void LoadInner(long assemblyIdentity) + { + + foreach (var type in AssemblySystem.ForEach(assemblyIdentity, typeof(IEvent))) + { + var @event = (IEvent)Activator.CreateInstance(type); + + if (@event == null) + { + continue; + } + + var eventType = @event.EventType(); + _events.Add(eventType, @event); + _assemblyEvents.Add(assemblyIdentity, new EventCache(eventType, @event)); + } + _events.SortAll(); + + foreach (var type in AssemblySystem.ForEach(assemblyIdentity, typeof(IAsyncEvent))) + { + var @event = (IAsyncEvent)Activator.CreateInstance(type); + + if (@event == null) + { + continue; + } + + var eventType = @event.EventType(); + _asyncEvents.Add(eventType, @event); + _assemblyAsyncEvents.Add(assemblyIdentity, new EventCache(eventType, @event)); + } + _asyncEvents.SortAll(); + } + + private void OnUnLoadInner(long assemblyIdentity) + { + if (_assemblyEvents.TryGetValue(assemblyIdentity, out var events)) + { + foreach (var @event in events) + { + _events.RemoveValue(@event.EnventType, (IEvent)@event.Obj); + } + + _assemblyEvents.RemoveByKey(assemblyIdentity); + } + + if (_assemblyAsyncEvents.TryGetValue(assemblyIdentity, out var asyncEvents)) + { + foreach (var @event in asyncEvents) + { + _asyncEvents.RemoveValue(@event.EnventType, (IAsyncEvent)@event.Obj); + } + + _assemblyAsyncEvents.RemoveByKey(assemblyIdentity); + } + } + + #endregion + + #region Publish + + /// + /// 发布一个值类型的事件数据。 + /// + /// 事件数据类型(值类型)。 + /// 事件数据实例。 + public void Publish(TEventData eventData) where TEventData : struct + { + if (!_events.TryGetValue(typeof(TEventData), out var list)) + { + return; + } + + foreach (var @event in list) + { + try + { + @event.Invoke(eventData); + } + catch (Exception e) + { + Log.Error(e); + } + } + } + + /// + /// 发布一个继承自 Entity 的事件数据。 + /// + /// 事件数据类型(继承自 Entity)。 + /// 事件数据实例。 + /// 是否释放事件数据。 + public void Publish(TEventData eventData, bool isDisposed = true) where TEventData : Entity + { + if (!_events.TryGetValue(typeof(TEventData), out var list)) + { + return; + } + + foreach (var @event in list) + { + try + { + @event.Invoke(eventData); + } + catch (Exception e) + { + Log.Error(e); + } + } + + if (isDisposed) + { + eventData.Dispose(); + } + } + + /// + /// 异步发布一个值类型的事件数据。 + /// + /// 事件数据类型(值类型)。 + /// 事件数据实例。 + /// 表示异步操作的任务。 + public async FTask PublishAsync(TEventData eventData) where TEventData : struct + { + if (!_asyncEvents.TryGetValue(typeof(TEventData), out var list)) + { + return; + } + + using var tasks = ListPool.Create(); + + foreach (var @event in list) + { + tasks.Add(@event.InvokeAsync(eventData)); + } + + await FTask.WaitAll(tasks); + } + + /// + /// 异步发布一个继承自 Entity 的事件数据。 + /// + /// 事件数据类型(继承自 Entity)。 + /// 事件数据实例。 + /// 是否释放事件数据。 + /// 表示异步操作的任务。 + public async FTask PublishAsync(TEventData eventData, bool isDisposed = true) where TEventData : Entity + { + if (!_asyncEvents.TryGetValue(eventData.GetType(), out var list)) + { + return; + } + + using var tasks = ListPool.Create(); + + foreach (var @event in list) + { + tasks.Add(@event.InvokeAsync(eventData)); + } + + await FTask.WaitAll(tasks); + + if (isDisposed) + { + eventData.Dispose(); + } + } + + #endregion + + public override void Dispose() + { + _events.Clear(); + _asyncEvents.Clear(); + _assemblyEvents.Clear(); + _assemblyAsyncEvents.Clear(); + base.Dispose(); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EventComponent/EventComponent.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/EventComponent/EventComponent.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EventComponent/EventComponent.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/EventComponent/EventComponent.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EventComponent/Interface.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/EventComponent/Interface.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EventComponent/Interface.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/EventComponent/Interface.meta diff --git a/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/EventComponent/Interface/IEvent.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/EventComponent/Interface/IEvent.cs new file mode 100644 index 000000000..9fa68a080 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/EventComponent/Interface/IEvent.cs @@ -0,0 +1,112 @@ +using System; +using NBC.Async; + +namespace NBC.Event +{ + /// + /// 事件的接口 + /// + public interface IEvent + { + /// + /// 用于指定事件的Type + /// + /// + Type EventType(); + /// + /// 时间内部使用的入口 + /// + /// + void Invoke(object self); + } + + /// + /// 异步事件的接口 + /// + public interface IAsyncEvent + { + /// + /// + /// + /// + Type EventType(); + /// + /// + /// + /// + FTask InvokeAsync(object self); + } + + /// + /// 事件的抽象类,要使用事件必须要继承这个抽象接口。 + /// + /// 要监听的事件泛型类型 + public abstract class EventSystem : IEvent + { + private readonly Type _selfType = typeof(T); + /// + /// + /// + /// + public Type EventType() + { + return _selfType; + } + /// + /// 事件调用的方法,要在这个方法里编写事件发生的逻辑 + /// + /// + protected abstract void Handler(T self); + /// + /// + /// + /// + public void Invoke(object self) + { + try + { + Handler((T) self); + } + catch (Exception e) + { + Log.Error($"{_selfType.Name} Error {e}"); + } + } + } + /// + /// 异步事件的抽象类,要使用事件必须要继承这个抽象接口。 + /// + /// 要监听的事件泛型类型 + public abstract class AsyncEventSystem : IAsyncEvent + { + private readonly Type _selfType = typeof(T); + /// + /// + /// + /// + public Type EventType() + { + return _selfType; + } + /// + /// 事件调用的方法,要在这个方法里编写事件发生的逻辑 + /// + /// + protected abstract FTask Handler(T self); + /// + /// + /// + /// + public async FTask InvokeAsync(object self) + { + try + { + await Handler((T) self); + } + catch (Exception e) + { + Log.Error($"{_selfType.Name} Error {e}"); + } + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EventComponent/Interface/IEvent.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/EventComponent/Interface/IEvent.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EventComponent/Interface/IEvent.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/EventComponent/Interface/IEvent.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/MessagePoolComponent.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/MessagePoolComponent.cs similarity index 78% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/MessagePoolComponent.cs rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/MessagePoolComponent.cs index 8227e06df..9da08e8c1 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/MessagePoolComponent.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/MessagePoolComponent.cs @@ -3,13 +3,12 @@ using System; using System.Collections.Generic; using System.Runtime.CompilerServices; -using Fantasy.DataStructure.Collection; -using Fantasy.Entitas; -using Fantasy.Network.Interface; -using Fantasy.Pool; -using Fantasy.Serialize; +using NBC.Entitas; +using NBC.DataStructure.Collection; +using NBC.Pool; +using NBC.Serialize; -namespace Fantasy.Entitas +namespace NBC.Entitas { /// /// 消息的对象池组件 @@ -18,8 +17,8 @@ namespace Fantasy.Entitas { private int _poolCount; private const int MaxCapacity = ushort.MaxValue; - private readonly OneToManyQueue _poolQueue = new OneToManyQueue(); - private readonly Dictionary> _typeCheckCache = new Dictionary>(); + private readonly OneToManyQueue _poolQueue = new OneToManyQueue(); + private readonly Dictionary> _typeCheckCache = new Dictionary>(); /// /// 销毁组件 /// @@ -37,7 +36,7 @@ namespace Fantasy.Entitas /// public T Rent() where T : AMessage, new() { - if (!_poolQueue.TryDequeue(typeof(T).TypeHandle, out var queue)) + if (!_poolQueue.TryDequeue(typeof(T), out var queue)) { var instance = new T(); instance.SetScene(Scene); @@ -59,10 +58,9 @@ namespace Fantasy.Entitas [MethodImpl(MethodImplOptions.AggressiveInlining)] public AMessage Rent(Type type) { - var runtimeTypeHandle = type.TypeHandle; - if (!_poolQueue.TryDequeue(runtimeTypeHandle, out var queue)) + if (!_poolQueue.TryDequeue(type, out var queue)) { - if (!_typeCheckCache.TryGetValue(runtimeTypeHandle, out var createInstance)) + if (!_typeCheckCache.TryGetValue(type, out var createInstance)) { if (!typeof(AMessage).IsAssignableFrom(type)) { @@ -71,7 +69,7 @@ namespace Fantasy.Entitas else { createInstance = CreateInstance.CreateMessage(type); - _typeCheckCache[runtimeTypeHandle] = createInstance; + _typeCheckCache[type] = createInstance; } } @@ -108,7 +106,7 @@ namespace Fantasy.Entitas _poolCount++; obj.SetIsPool(false); - _poolQueue.Enqueue(obj.GetType().TypeHandle, obj); + _poolQueue.Enqueue(obj.GetType(), obj); } /// @@ -135,7 +133,7 @@ namespace Fantasy.Entitas _poolCount++; obj.SetIsPool(false); - _poolQueue.Enqueue(typeof(T).TypeHandle, obj); + _poolQueue.Enqueue(typeof(T), obj); } } } \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/MessagePoolComponent.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/MessagePoolComponent.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/MessagePoolComponent.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/MessagePoolComponent.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/Interface.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/Interface.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/Interface.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/Interface.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/Interface/TimerHandler.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/Interface/TimerHandler.cs similarity index 85% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/Interface/TimerHandler.cs rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/Interface/TimerHandler.cs index 9e1f4c979..589dd6cea 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/Interface/TimerHandler.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/Interface/TimerHandler.cs @@ -1,6 +1,6 @@ -using Fantasy.Event; +using NBC.Event; -namespace Fantasy.Timer +namespace NBC { /// /// 计时器抽象类,提供了一个基础框架,用于创建处理计时器事件的具体类。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/Interface/TimerHandler.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/Interface/TimerHandler.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/Interface/TimerHandler.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/Interface/TimerHandler.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerAction.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerAction.cs similarity index 97% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerAction.cs rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerAction.cs index 2a836ab6b..00afa8ba0 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerAction.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerAction.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; #pragma warning disable CS8625 #pragma warning disable CS8618 -namespace Fantasy.Timer +namespace NBC { [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct TimerAction diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerAction.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerAction.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerAction.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerAction.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerComponent.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerComponent.cs similarity index 87% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerComponent.cs rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerComponent.cs index ffa7864f7..b41333e2d 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerComponent.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerComponent.cs @@ -1,14 +1,11 @@ // ReSharper disable ForCanBeConvertedToForeach -using Fantasy.Entitas; -using Fantasy.Entitas.Interface; - +using NBC.Entitas; +using NBC.Entitas.Interface; #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. -#if FANTASY_UNITY using UnityEngine; -#endif #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -namespace Fantasy.Timer +namespace NBC { public sealed class TimerComponentUpdateSystem : UpdateSystem { @@ -27,26 +24,22 @@ namespace Fantasy.Timer /// 使用系统时间创建的计时器核心。 /// public TimerSchedulerNet Net { get; private set; } -#if FANTASY_UNITY + /// /// 使用 Unity 时间创建的计时器核心。 /// public TimerSchedulerNetUnity Unity { get; private set; } -#endif + internal TimerComponent Initialize() { Net = new TimerSchedulerNet(Scene); -#if FANTASY_UNITY Unity = new TimerSchedulerNetUnity(Scene); -#endif return this; } public void Update() { Net.Update(); -#if FANTASY_UNITY Unity.Update(); -#endif } } } \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerComponent.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerComponent.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerComponent.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerComponent.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler/TimerSchedulerNet.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler/TimerSchedulerNet.cs similarity index 98% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler/TimerSchedulerNet.cs rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler/TimerSchedulerNet.cs index 26581f8e1..32fe00d1a 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler/TimerSchedulerNet.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler/TimerSchedulerNet.cs @@ -1,14 +1,15 @@ using System; using System.Collections.Generic; -using Fantasy.Async; -using Fantasy.DataStructure.Collection; -using Fantasy.Helper; +using NBC.Async; +using NBC.DataStructure.Collection; +using NBC.Helper; + // ReSharper disable UnusedParameter.Global #pragma warning disable CS8602 // Dereference of a possibly null reference. #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. -namespace Fantasy.Timer +namespace NBC { /// /// 基于系统事件的任务调度系统 @@ -232,11 +233,7 @@ namespace Fantasy.Timer /// 等待是否成功。 public async FTask WaitFrameAsync() { -#if FANTASY_NET - await WaitAsync(100); -#else await WaitAsync(1); -#endif } /// @@ -316,11 +313,7 @@ namespace Fantasy.Timer /// public long FrameTimer(Action action) { -#if FANTASY_NET - return RepeatedTimerInner(100, action); -#else return RepeatedTimerInner(0, action); -#endif } /// diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler/TimerSchedulerNet.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler/TimerSchedulerNet.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler/TimerSchedulerNet.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler/TimerSchedulerNet.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler/TimerSchedulerNetUnity.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler/TimerSchedulerNetUnity.cs similarity index 98% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler/TimerSchedulerNetUnity.cs rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler/TimerSchedulerNetUnity.cs index f00bfe455..d4f12c229 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler/TimerSchedulerNetUnity.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler/TimerSchedulerNetUnity.cs @@ -1,11 +1,10 @@ -#if FANTASY_UNITY using System; using System.Collections.Generic; -using Fantasy.Async; -using Fantasy.DataStructure.Collection; -using Fantasy.Helper; +using NBC.Helper; +using NBC.Async; +using NBC.DataStructure.Collection; using UnityEngine; -namespace Fantasy.Timer +namespace NBC { public sealed class TimerSchedulerNetUnity { @@ -368,5 +367,4 @@ namespace Fantasy.Timer } } } -#endif diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler/TimerSchedulerNetUnity.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler/TimerSchedulerNetUnity.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler/TimerSchedulerNetUnity.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerScheduler/TimerSchedulerNetUnity.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerType.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerType.cs similarity index 95% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerType.cs rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerType.cs index 6f16f8066..f369b8616 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerType.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerType.cs @@ -1,4 +1,4 @@ -namespace Fantasy.Timer +namespace NBC { /// /// 枚举对象TimerType diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerType.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerType.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimerType.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Component/TimerComponent/TimerType.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Entity.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Entity.cs similarity index 73% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Entity.cs rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Entity.cs index 258f59af1..c7f08860a 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Entity.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Entity.cs @@ -1,11 +1,9 @@ using System; using System.Collections.Generic; -using System.Runtime.CompilerServices; using System.Runtime.Serialization; -using Fantasy.Entitas.Interface; -using Fantasy.IdFactory; -using Fantasy.Pool; using MongoDB.Bson.Serialization.Attributes; +using NBC.Entitas.Interface; +using NBC.Pool; using Newtonsoft.Json; using ProtoBuf; // ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract @@ -19,7 +17,7 @@ using ProtoBuf; #pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. -namespace Fantasy.Entitas +namespace NBC.Entitas { /// /// 用来表示一个Entity @@ -32,7 +30,15 @@ namespace Fantasy.Entitas public abstract partial class Entity : IEntity { #region Members - + + /// + /// 获取一个值,表示实体是否支持对象池。 + /// + [BsonIgnore] + [JsonIgnore] + [ProtoIgnore] + [IgnoreDataMember] + private bool _isPool; /// /// 实体的Id /// @@ -80,18 +86,7 @@ namespace Fantasy.Entitas [IgnoreDataMember] [ProtoIgnore] public Type Type { get; protected set; } - /// - /// 实体的真实Type的HashCode - /// - [BsonIgnore] - [JsonIgnore] - [IgnoreDataMember] - [ProtoIgnore] - public long TypeHashCode { get; private set; } -#if FANTASY_NET - [BsonElement("t")] [BsonIgnoreIfNull] private EntityList _treeDb; - [BsonElement("m")] [BsonIgnoreIfNull] private EntityList _multiDb; -#endif + [BsonIgnore] [IgnoreDataMember] [ProtoIgnore] private EntitySortedDictionary _tree; [BsonIgnore] [IgnoreDataMember] [ProtoIgnore] private EntitySortedDictionary _multi; @@ -100,7 +95,6 @@ namespace Fantasy.Entitas /// /// 父实体的泛型类型 /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] public T GetParent() where T : Entity, new() { return Parent as T; @@ -141,11 +135,10 @@ namespace Fantasy.Entitas { if (!typeof(Entity).IsAssignableFrom(type)) { - throw new NotSupportedException($"Type:{type.FullName} must inherit from Entity"); + throw new NotSupportedException($"{type.FullName} Type:{type.FullName} must inherit from Entity"); } Entity entity = null; - var runtimeTypeHandle = type.TypeHandle; if (isPool) { @@ -153,10 +146,10 @@ namespace Fantasy.Entitas } else { - if (!scene.TypeInstance.TryGetValue(runtimeTypeHandle, out var createInstance)) + if (!scene.TypeInstance.TryGetValue(type, out var createInstance)) { createInstance = CreateInstance.CreateIPool(type); - scene.TypeInstance[runtimeTypeHandle] = createInstance; + scene.TypeInstance[type] = createInstance; } entity = (Entity)createInstance(); @@ -164,19 +157,15 @@ namespace Fantasy.Entitas entity.Scene = scene; entity.Type = type; - entity.TypeHashCode = TypeHashCache.GetHashCode(type); entity.SetIsPool(isPool); entity.Id = id; - entity.RuntimeId = scene.RuntimeIdFactory.Create(isPool); + entity.RuntimeId = scene.RuntimeIdFactory.Create; scene.AddEntity(entity); if (isRunEvent) { scene.EntityComponent.Awake(entity); - scene.EntityComponent.RegisterUpdate(entity); -#if FANTASY_UNITY - scene.EntityComponent.RegisterLateUpdate(entity); -#endif + scene.EntityComponent.StartUpdate(entity); } return entity; @@ -209,19 +198,15 @@ namespace Fantasy.Entitas var entity = isPool ? scene.EntityPool.Rent() : new T(); entity.Scene = scene; entity.Type = typeof(T); - entity.TypeHashCode = EntityTypeHashCache.HashCode; entity.SetIsPool(isPool); entity.Id = id; - entity.RuntimeId = scene.RuntimeIdFactory.Create(isPool); + entity.RuntimeId = scene.RuntimeIdFactory.Create; scene.AddEntity(entity); if (isRunEvent) { scene.EntityComponent.Awake(entity); - scene.EntityComponent.RegisterUpdate(entity); -#if FANTASY_UNITY - scene.EntityComponent.RegisterLateUpdate(entity); -#endif + scene.EntityComponent.StartUpdate(entity); } return entity; @@ -239,14 +224,11 @@ namespace Fantasy.Entitas /// 返回添加到实体上组件的实例 public T AddComponent(bool isPool = true) where T : Entity, new() { - var id = EntitySupportedChecker.IsMulti ? Scene.EntityIdFactory.Create : Id; + var id = SupportedMultiEntityChecker.IsSupported ? Scene.EntityIdFactory.Create : Id; var entity = Create(Scene, id, isPool, false); AddComponent(entity); Scene.EntityComponent.Awake(entity); - Scene.EntityComponent.RegisterUpdate(entity); -#if FANTASY_UNITY - Scene.EntityComponent.RegisterLateUpdate(entity); -#endif + Scene.EntityComponent.StartUpdate(entity); return entity; } @@ -262,10 +244,7 @@ namespace Fantasy.Entitas var entity = Create(Scene, id, isPool, false); AddComponent(entity); Scene.EntityComponent.Awake(entity); - Scene.EntityComponent.RegisterUpdate(entity); -#if FANTASY_UNITY - Scene.EntityComponent.RegisterLateUpdate(entity); -#endif + Scene.EntityComponent.StartUpdate(entity); return entity; } @@ -294,17 +273,10 @@ namespace Fantasy.Entitas { _multi ??= Scene.EntitySortedDictionaryPool.Rent(); _multi.Add(component.Id, component); -#if FANTASY_NET - if (component is ISupportedDataBase) - { - _multiDb ??= Scene.EntityListPool.Rent(); - _multiDb.Add(component); - } -#endif } else { - var typeHashCode = component.TypeHashCode; + var typeHashCode = Scene.EntityComponent.GetHashCode(type);; if (_tree == null) { @@ -317,13 +289,6 @@ namespace Fantasy.Entitas } _tree.Add(typeHashCode, component); -#if FANTASY_NET - if (component is ISupportedDataBase) - { - _treeDb ??= Scene.EntityListPool.Rent(); - _treeDb.Add(component); - } -#endif } component.Parent = this; @@ -337,6 +302,14 @@ namespace Fantasy.Entitas /// 要添加组件的泛型类型 public void AddComponent(T component) where T : Entity { + var type = typeof(T); + + if (type == typeof(Entity)) + { + Log.Error("Cannot add a generic Entity type as a component. Specify a more specific type."); + return; + } + if (this == component) { Log.Error("Cannot add oneself to one's own components"); @@ -345,27 +318,21 @@ namespace Fantasy.Entitas if (component.IsDisposed) { - Log.Error($"component is Disposed {typeof(T).FullName}"); + Log.Error($"component is Disposed {type.FullName}"); return; } component.Parent?.RemoveComponent(component, false); - if (EntitySupportedChecker.IsMulti) + if (SupportedMultiEntityChecker.IsSupported) { _multi ??= Scene.EntitySortedDictionaryPool.Rent(); _multi.Add(component.Id, component); -#if FANTASY_NET - if (EntitySupportedChecker.IsDataBase) - { - _multiDb ??= Scene.EntityListPool.Rent(); - _multiDb.Add(component); - } -#endif } else { - var typeHashCode = component.TypeHashCode; + + var typeHashCode = Scene.EntityComponent.GetHashCode(type); if (_tree == null) { @@ -373,18 +340,11 @@ namespace Fantasy.Entitas } else if (_tree.ContainsKey(typeHashCode)) { - Log.Error($"type:{typeof(T).FullName} If you want to add multiple components of the same type, please implement IMultiEntity"); + Log.Error($"type:{type.FullName} If you want to add multiple components of the same type, please implement IMultiEntity"); return; } _tree.Add(typeHashCode, component); -#if FANTASY_NET - if (EntitySupportedChecker.IsDataBase) - { - _treeDb ??= Scene.EntityListPool.Rent(); - _treeDb.Add(component); - } -#endif } component.Parent = this; @@ -392,7 +352,7 @@ namespace Fantasy.Entitas } /// - /// 添加一个组件到当前实体上 + /// 添加一个组件到当前实体上 /// /// 组件的类型 /// 是否在对象池创建 @@ -403,10 +363,7 @@ namespace Fantasy.Entitas var entity = Entity.Create(Scene, type, id, isPool, false); AddComponent(entity); Scene.EntityComponent.Awake(entity); - Scene.EntityComponent.RegisterUpdate(entity); -#if FANTASY_UNITY - Scene.EntityComponent.RegisterLateUpdate(entity); -#endif + Scene.EntityComponent.StartUpdate(entity); return entity; } @@ -419,15 +376,9 @@ namespace Fantasy.Entitas /// /// /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] public bool HasComponent() where T : Entity, new() { - if (_tree == null) - { - return false; - } - - return _tree.ContainsKey(EntityTypeHashCache.HashCode); + return HasComponent(typeof(T)); } /// @@ -435,15 +386,14 @@ namespace Fantasy.Entitas /// /// /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] public bool HasComponent(Type type) { if (_tree == null) { return false; } - - return _tree.ContainsKey(TypeHashCache.GetHashCode(type)); + + return _tree.ContainsKey(Scene.EntityComponent.GetHashCode(type)); } /// @@ -452,7 +402,6 @@ namespace Fantasy.Entitas /// /// /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] public bool HasComponent(long id) where T : Entity, ISupportedMultiEntity, new() { if (_multi == null) @@ -468,11 +417,10 @@ namespace Fantasy.Entitas #region GetComponent /// - /// 当前实体上查找一个子实体 + /// 当前实体上查找一个字实体 /// /// 要查找实体泛型类型 /// 查找的实体实例 - [MethodImpl(MethodImplOptions.AggressiveInlining)] public T GetComponent() where T : Entity, new() { if (_tree == null) @@ -480,15 +428,15 @@ namespace Fantasy.Entitas return null; } - return _tree.TryGetValue(EntityTypeHashCache.HashCode, out var component) ? (T)component : null; + var typeHashCode = Scene.EntityComponent.GetHashCode(typeof(T)); + return _tree.TryGetValue(typeHashCode, out var component) ? (T)component : null; } /// - /// 当前实体上查找一个子实体 + /// 当前实体上查找一个字实体 /// /// 要查找实体类型 /// 查找的实体实例 - [MethodImpl(MethodImplOptions.AggressiveInlining)] public Entity GetComponent(Type type) { if (_tree == null) @@ -496,28 +444,28 @@ namespace Fantasy.Entitas return null; } - return _tree.GetValueOrDefault(TypeHashCache.GetHashCode(type)); + var typeHashCode = Scene.EntityComponent.GetHashCode(type); + return _tree.TryGetValue(typeHashCode, out var component) ? component : null; } /// - /// 当前实体上查找一个子实体 + /// 当前实体上查找一个字实体 /// /// 要查找实体的Id /// 要查找实体泛型类型 /// 查找的实体实例 - [MethodImpl(MethodImplOptions.AggressiveInlining)] public T GetComponent(long id) where T : Entity, ISupportedMultiEntity, new() { if (_multi == null) { - return null; + return default; } - return _multi.TryGetValue(id, out var entity) ? (T)entity : null; + return _multi.TryGetValue(id, out var entity) ? (T)entity : default; } /// - /// 当前实体上查找一个子实体,如果没有就创建一个新的并添加到当前实体上 + /// 当前实体上查找一个字实体,如果没有就创建一个新的并添加到当前实体上 /// /// 是否从对象池创建 /// 要查找或添加实体泛型类型 @@ -539,7 +487,7 @@ namespace Fantasy.Entitas /// public void RemoveComponent(bool isDispose = true) where T : Entity, new() { - if (EntitySupportedChecker.IsMulti) + if (SupportedMultiEntityChecker.IsSupported) { throw new NotSupportedException($"{typeof(T).FullName} message:Cannot delete components that implement the ISupportedMultiEntity interface"); } @@ -549,23 +497,13 @@ namespace Fantasy.Entitas return; } - var typeHashCode = EntityTypeHashCache.HashCode; + var type = typeof(T); + var typeHashCode = Scene.EntityComponent.GetHashCode(type); if (!_tree.TryGetValue(typeHashCode, out var component)) { return; } -#if FANTASY_NET - if (_treeDb != null && EntitySupportedChecker.IsDataBase) - { - _treeDb.Remove(component); - if (_treeDb.Count == 0) - { - Scene.EntityListPool.Return(_treeDb); - _treeDb = null; - } - } -#endif _tree.Remove(typeHashCode); if (_tree.Count == 0) @@ -597,17 +535,7 @@ namespace Fantasy.Entitas { return; } -#if FANTASY_NET - if (_multiDb != null && EntitySupportedChecker.IsDataBase) - { - _multiDb.Remove(component); - if (_multiDb.Count == 0) - { - Scene.EntityListPool.Return(_multiDb); - _multiDb = null; - } - } -#endif + _multi.Remove(component.Id); if (_multi.Count == 0) { @@ -641,17 +569,7 @@ namespace Fantasy.Entitas { return; } -#if FANTASY_NET - if (component is ISupportedDataBase) - { - _multiDb.Remove(component); - if (_multiDb.Count == 0) - { - Scene.EntityListPool.Return(_multiDb); - _multiDb = null; - } - } -#endif + _multi.Remove(component.Id); if (_multi.Count == 0) { @@ -662,23 +580,12 @@ namespace Fantasy.Entitas } else if (_tree != null) { - var typeHashCode = component.TypeHashCode; + var typeHashCode = Scene.EntityComponent.GetHashCode(component.Type); if (!_tree.ContainsKey(typeHashCode)) { return; } -#if FANTASY_NET - if (_treeDb != null && component is ISupportedDataBase) - { - _treeDb.Remove(component); - if (_treeDb.Count == 0) - { - Scene.EntityListPool.Return(_treeDb); - _treeDb = null; - } - } -#endif _tree.Remove(typeHashCode); if (_tree.Count == 0) @@ -706,8 +613,14 @@ namespace Fantasy.Entitas { return; } - - if (EntitySupportedChecker.IsMulti) + + if (typeof(T) == typeof(Entity)) + { + Log.Error("Cannot remove a generic Entity type as a component. Specify a more specific type."); + return; + } + + if (SupportedMultiEntityChecker.IsSupported) { if (_multi != null) { @@ -715,17 +628,7 @@ namespace Fantasy.Entitas { return; } -#if FANTASY_NET - if (EntitySupportedChecker.IsDataBase) - { - _multiDb.Remove(component); - if (_multiDb.Count == 0) - { - Scene.EntityListPool.Return(_multiDb); - _multiDb = null; - } - } -#endif + _multi.Remove(component.Id); if (_multi.Count == 0) { @@ -736,23 +639,12 @@ namespace Fantasy.Entitas } else if (_tree != null) { - var typeHashCode = EntityTypeHashCache.HashCode; + var typeHashCode = Scene.EntityComponent.GetHashCode(typeof(T)); if (!_tree.ContainsKey(typeHashCode)) { return; } -#if FANTASY_NET - if (_treeDb != null && EntitySupportedChecker.IsDataBase) - { - _treeDb.Remove(component); - if (_treeDb.Count == 0) - { - Scene.EntityListPool.Return(_treeDb); - _treeDb = null; - } - } -#endif _tree.Remove(typeHashCode); if (_tree.Count == 0) @@ -789,35 +681,11 @@ namespace Fantasy.Entitas { Scene = scene; Type ??= GetType(); - RuntimeId = Scene.RuntimeIdFactory.Create(false); + RuntimeId = Scene.RuntimeIdFactory.Create; if (resetId) { Id = RuntimeId; } -#if FANTASY_NET - if (_treeDb != null && _treeDb.Count > 0) - { - _tree = Scene.EntitySortedDictionaryPool.Rent(); - foreach (var entity in _treeDb) - { - entity.Parent = this; - entity.Type = entity.GetType(); - _tree.Add(TypeHashCache.GetHashCode(entity.Type), entity); - entity.Deserialize(scene, resetId); - } - } - - if (_multiDb != null && _multiDb.Count > 0) - { - _multi = Scene.EntitySortedDictionaryPool.Rent(); - foreach (var entity in _multiDb) - { - entity.Parent = this; - entity.Deserialize(scene, resetId); - _multi.Add(entity.Id, entity); - } - } -#endif scene.AddEntity(this); scene.EntityComponent.Deserialize(this); } @@ -835,7 +703,7 @@ namespace Fantasy.Entitas #endregion #region ForEach - + /// /// 查询当前实体下的实现了ISupportedMultiEntity接口的实体 /// @@ -921,21 +789,6 @@ namespace Fantasy.Entitas scene.EntitySortedDictionaryPool.Return(_multi); _multi = null; } -#if FANTASY_NET - if (_treeDb != null) - { - _treeDb.Clear(); - scene.EntityListPool.Return(_treeDb); - _treeDb = null; - } - - if (_multiDb != null) - { - _multiDb.Clear(); - scene.EntityListPool.Return(_multiDb); - _multiDb = null; - } -#endif scene.EntityComponent.Destroy(this); if (Parent != null && Parent != this && !Parent.IsDisposed) @@ -948,7 +801,12 @@ namespace Fantasy.Entitas Scene = null; Parent = null; scene.RemoveEntity(runTimeId); - scene.EntityPool.Return(Type, this); + + if (IsPool()) + { + scene.EntityPool.Return(Type, this); + } + Type = null; } @@ -960,27 +818,20 @@ namespace Fantasy.Entitas /// 获取一个值,该值指示当前实例是否为对象池中的实例。 /// /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] public bool IsPool() { - return IdFactoryHelper.RuntimeIdTool.GetIsPool(RuntimeId); + return _isPool; } /// /// 设置一个值,该值指示当前实例是否为对象池中的实例。 /// /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public void SetIsPool(bool isPool) { } + public void SetIsPool(bool isPool) + { + _isPool = isPool; + } #endregion } - - /// - /// Entity的泛型抽象类,如果使用泛型Entity必须继承这个接口才可以使用 - /// - /// - public abstract partial class Entity : Entity - { - } } \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Entity.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Entity.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Entity.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Entity.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/EntityPool.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/EntityPool.cs similarity index 97% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/EntityPool.cs rename to Assets/Scripts/NBC/Runtime/Core/Entitas/EntityPool.cs index 9a6441c09..7751cbdc3 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/EntityPool.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/EntityPool.cs @@ -1,9 +1,9 @@ using System.Collections.Generic; -using Fantasy.Pool; +using NBC.Pool; #pragma warning disable CS8714 // The type cannot be used as type parameter in the generic type or method. Nullability of type argument doesn't match 'notnull' constraint. -namespace Fantasy.Entitas +namespace NBC.Entitas { internal sealed class EntityPool : PoolCore { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/EntityPool.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/EntityPool.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/EntityPool.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/EntityPool.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/EntityReference.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/EntityReference.cs similarity index 90% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/EntityReference.cs rename to Assets/Scripts/NBC/Runtime/Core/Entitas/EntityReference.cs index cc4571369..929bb684b 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/EntityReference.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/EntityReference.cs @@ -2,7 +2,7 @@ #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. #pragma warning disable CS8603 // Possible null reference return. -namespace Fantasy.Entitas +namespace NBC.Entitas { /// /// 实体引用检查组件 @@ -26,11 +26,6 @@ namespace Fantasy.Entitas _runTimeId = t.RuntimeId; } - /// - /// 获取实体引用 - /// - public T Value => _entity?.RuntimeId != _runTimeId ? null : _entity; - /// /// 将一个实体转换为EntityReference /// diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/EntityReference.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/EntityReference.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/EntityReference.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/EntityReference.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Interface.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/Supported.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/Supported.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported.meta diff --git a/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISingleCollectionRoot.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISingleCollectionRoot.cs new file mode 100644 index 000000000..0561a7a6c --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISingleCollectionRoot.cs @@ -0,0 +1,17 @@ +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member +namespace NBC.Entitas.Interface +{ + /// + /// Entity保存到数据库的时候会根据子组件设置分离存储特性分表存储在不同的集合表中 + /// + public interface ISingleCollectionRoot { } + public static class SingleCollectionRootChecker where T : Entity + { + public static bool IsSupported { get; } + + static SingleCollectionRootChecker() + { + IsSupported = typeof(ISingleCollectionRoot).IsAssignableFrom(typeof(T)); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IEntitySystemRegistrar.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISingleCollectionRoot.cs.meta similarity index 83% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IEntitySystemRegistrar.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISingleCollectionRoot.cs.meta index 192d01ecb..94cbb13bb 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IEntitySystemRegistrar.cs.meta +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISingleCollectionRoot.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 90f03af4cb2313c4e9891773de0ba9c8 +guid: 57298dd8265554d6087d79ef5a6e89cc MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedDataBase.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedDataBase.cs new file mode 100644 index 000000000..89eebcb49 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedDataBase.cs @@ -0,0 +1,19 @@ +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member +namespace NBC.Entitas.Interface +{ + /// + /// Entity支持数据库 + /// + // ReSharper disable once InconsistentNaming + public interface ISupportedDataBase { } + + public static class SupportedDataBaseChecker where T : Entity + { + public static bool IsSupported { get; } + + static SupportedDataBaseChecker() + { + IsSupported = typeof(ISupportedDataBase).IsAssignableFrom(typeof(T)); + } + } +} diff --git a/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedDataBase.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedDataBase.cs.meta new file mode 100644 index 000000000..4b72ec6ba --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedDataBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ae64989e8b146443e99c66290b20a3c8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedMultiEntity.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedMultiEntity.cs new file mode 100644 index 000000000..f2981266e --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedMultiEntity.cs @@ -0,0 +1,20 @@ +using System; +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member + +namespace NBC.Entitas.Interface +{ + /// + /// 支持再一个组件里添加多个同类型组件 + /// + public interface ISupportedMultiEntity : IDisposable { } + + public static class SupportedMultiEntityChecker where T : Entity + { + public static bool IsSupported { get; } + + static SupportedMultiEntityChecker() + { + IsSupported = typeof(ISupportedMultiEntity).IsAssignableFrom(typeof(T)); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedMultiEntity.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedMultiEntity.cs.meta new file mode 100644 index 000000000..4096fe8e0 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedMultiEntity.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 36105e7ed5c974fdabf37eead97ef95c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedSingleCollection.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedSingleCollection.cs new file mode 100644 index 000000000..ec972dc8d --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedSingleCollection.cs @@ -0,0 +1,47 @@ +using System; +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member +namespace NBC.Entitas.Interface +{ + // Entity是单一集合、保存到数据库的时候不会跟随父组件保存在一个集合里、会单独保存在一个集合里 + // 需要配合SingleCollectionAttribute一起使用、如在Entity类头部定义SingleCollectionAttribute(typeOf(Unit)) + // SingleCollectionAttribute用来定义这个Entity是属于哪个Entity的子集 + /// + /// 定义实体支持单一集合存储的接口。当实体需要单独存储在一个集合中,并且在保存到数据库时不会与父组件一起保存在同一个集合中时,应实现此接口。 + /// + public interface ISupportedSingleCollection { } + public static class SupportedSingleCollectionChecker where T : Entity + { + public static bool IsSupported { get; } + + static SupportedSingleCollectionChecker() + { + IsSupported = typeof(ISupportedSingleCollection).IsAssignableFrom(typeof(T)); + } + } + /// + /// 表示用于指定实体的单一集合存储属性。此属性用于配合 接口使用, + /// 用于定义实体属于哪个父实体的子集合,以及在数据库中使用的集合名称。 + /// + [AttributeUsage(AttributeTargets.Class, Inherited = true, AllowMultiple = false)] + public class SingleCollectionAttribute : Attribute + { + /// + /// 获取父实体的类型,指示此实体是属于哪个父实体的子集合。 + /// + public readonly Type RootType; + /// + /// 获取在数据库中使用的集合名称。 + /// + public readonly string CollectionName; + /// + /// 初始化 类的新实例,指定父实体类型和集合名称。 + /// + /// 父实体的类型。 + /// 在数据库中使用的集合名称。 + public SingleCollectionAttribute(Type rootType, string collectionName) + { + RootType = rootType; + CollectionName = collectionName; + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedSingleCollection.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedSingleCollection.cs.meta new file mode 100644 index 000000000..dc89d3b1b --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedSingleCollection.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: afd453d04ac254206a9bb83664a888a0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedTransfer.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedTransfer.cs new file mode 100644 index 000000000..1518d5298 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedTransfer.cs @@ -0,0 +1,16 @@ +namespace NBC.Entitas.Interface +{ + /// + /// Entity支持传送 + /// + public interface ISupportedTransfer { } + public static class SupportedTransferChecker where T : Entity + { + public static bool IsSupported { get; } + + static SupportedTransferChecker() + { + IsSupported = typeof(ISupportedTransfer).IsAssignableFrom(typeof(T)); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedTransfer.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedTransfer.cs.meta new file mode 100644 index 000000000..8f1493c9e --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/Supported/ISupportedTransfer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a127a7c6e345a42e3860b804457f0fe5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IAwakeSystem.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IAwakeSystem.cs similarity index 78% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IAwakeSystem.cs rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IAwakeSystem.cs index 76897b0e3..15b4bb625 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IAwakeSystem.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IAwakeSystem.cs @@ -1,12 +1,9 @@ using System; -using Fantasy.Async; +using NBC.Async; -namespace Fantasy.Entitas.Interface +namespace NBC.Entitas.Interface { - /// - /// 实体的Awake事件的接口 - /// - public interface IAwakeSystem : IEntitySystem { } + internal interface IAwakeSystem : IEntitiesSystem { } /// /// 实体的Awake事件的抽象接口 /// @@ -17,7 +14,7 @@ namespace Fantasy.Entitas.Interface /// 实体的类型 /// /// - public Type EntityType() => typeof(T); + public Type EntitiesType() => typeof(T); /// /// 事件的抽象方法,需要自己实现这个方法 /// diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IAwakeSystem.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IAwakeSystem.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IAwakeSystem.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IAwakeSystem.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/ICustomEntitySystem.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/ICustomEntitiesSystem.cs similarity index 87% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/ICustomEntitySystem.cs rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/ICustomEntitiesSystem.cs index d1a297952..7c0894d12 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/ICustomEntitySystem.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/ICustomEntitiesSystem.cs @@ -1,13 +1,13 @@ using System; -namespace Fantasy.Entitas.Interface +namespace NBC.Entitas.Interface { /// /// 自定义组件事件系统接口 /// 如果需要自定义组件事件系统,请继承此接口。 /// 这个接口内部使用。不对外开放。 /// - internal interface ICustomEntitySystem + internal interface ICustomEntitiesSystem { /// /// 事件类型 @@ -18,7 +18,7 @@ namespace Fantasy.Entitas.Interface /// 实体的类型 /// /// - Type EntityType(); + Type EntitiesType(); /// /// 框架内部调用的触发事件方法 /// @@ -31,7 +31,7 @@ namespace Fantasy.Entitas.Interface /// 如果需要自定义组件事件系统,请继承此抽象类。 /// /// - public abstract class CustomSystem : ICustomEntitySystem where T : Entity + public abstract class CustomSystem : ICustomEntitiesSystem where T : Entity { /// /// 这个1表示是一个自定义事件类型,执行这个事件是时候需要用到这个1. @@ -46,7 +46,7 @@ namespace Fantasy.Entitas.Interface /// 实体的类型 /// /// - public abstract Type EntityType(); + public abstract Type EntitiesType(); /// /// 框架内部调用的触发Awake的方法。 /// diff --git a/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/ICustomEntitiesSystem.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/ICustomEntitiesSystem.cs.meta new file mode 100644 index 000000000..2a4604f31 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/ICustomEntitiesSystem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8babd948f5d51430db4d8ac333b25d54 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IDeserializeSystem.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IDeserializeSystem.cs similarity index 77% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IDeserializeSystem.cs rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IDeserializeSystem.cs index cbadcef73..fc255cbcd 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IDeserializeSystem.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IDeserializeSystem.cs @@ -1,12 +1,9 @@ using System; -using Fantasy.Async; +using NBC.Async; -namespace Fantasy.Entitas.Interface +namespace NBC.Entitas.Interface { - /// - /// 实体的反序列化事件的接口 - /// - public interface IDeserializeSystem : IEntitySystem { } + internal interface IDeserializeSystem : IEntitiesSystem { } /// /// 实体的反序列化事件的抽象接口 /// @@ -17,7 +14,7 @@ namespace Fantasy.Entitas.Interface /// 实体的类型 /// /// - public Type EntityType() => typeof(T); + public Type EntitiesType() => typeof(T); /// /// 事件的抽象方法,需要自己实现这个方法 /// diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IDeserializeSystem.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IDeserializeSystem.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IDeserializeSystem.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IDeserializeSystem.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IDestroySystem.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IDestroySystem.cs similarity index 77% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IDestroySystem.cs rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IDestroySystem.cs index 9e0141045..6a2ac0fa9 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IDestroySystem.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IDestroySystem.cs @@ -1,12 +1,9 @@ using System; -using Fantasy.Async; +using NBC.Async; -namespace Fantasy.Entitas.Interface +namespace NBC.Entitas.Interface { - /// - /// 实体销毁事件的接口 - /// - public interface IDestroySystem : IEntitySystem { } + internal interface IDestroySystem : IEntitiesSystem { } /// /// 实体销毁事件的抽象接口 /// @@ -17,7 +14,7 @@ namespace Fantasy.Entitas.Interface /// 实体的类型 /// /// - public Type EntityType() => typeof(T); + public Type EntitiesType() => typeof(T); /// /// 事件的抽象方法,需要自己实现这个方法 /// diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IDestroySystem.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IDestroySystem.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IDestroySystem.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IDestroySystem.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IEntitySystem.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IEntitiesSystem.cs similarity index 78% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IEntitySystem.cs rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IEntitiesSystem.cs index 689fda75b..58beb6fd7 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IEntitySystem.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IEntitiesSystem.cs @@ -1,18 +1,18 @@ using System; -using Fantasy.Async; +using NBC.Async; -namespace Fantasy.Entitas.Interface +namespace NBC.Entitas.Interface { /// /// ECS事件系统的核心接口,任何事件都是要继承这个接口 /// - public interface IEntitySystem + public interface IEntitiesSystem { /// /// 实体的类型 /// /// - Type EntityType(); + Type EntitiesType(); /// /// 框架内部调用的触发事件方法 /// diff --git a/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IEntitiesSystem.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IEntitiesSystem.cs.meta new file mode 100644 index 000000000..d5370f106 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IEntitiesSystem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 287ae5e33ccda4c28946371bcad4755b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IFrameUpdateSystem.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IFrameUpdateSystem.cs new file mode 100644 index 000000000..cdfd0e36c --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IFrameUpdateSystem.cs @@ -0,0 +1,31 @@ +using System; + +namespace NBC.Entitas.Interface +{ + internal interface IFrameUpdateSystem : IEntitiesSystem { } + /// + /// 帧更新时间的抽象接口 + /// + /// + public abstract class FrameUpdateSystem : IFrameUpdateSystem where T : Entity + { + /// + /// 实体的类型 + /// + /// + public Type EntitiesType() => typeof(T); + /// + /// 事件的抽象方法,需要自己实现这个方法 + /// + /// 触发事件的实体实例 + protected abstract void FrameUpdate(T self); + /// + /// 框架内部调用的触发FrameUpdate的方法 + /// + /// + public void Invoke(Entity self) + { + FrameUpdate((T) self); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IFrameUpdateSystem.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IFrameUpdateSystem.cs.meta new file mode 100644 index 000000000..866ab9ae8 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IFrameUpdateSystem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b785fffadcd8c4461b1f1fcf397728b9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IUpdateSystem.cs b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IUpdateSystem.cs similarity index 79% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IUpdateSystem.cs rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IUpdateSystem.cs index cd61cb02c..3cab81e84 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IUpdateSystem.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IUpdateSystem.cs @@ -1,11 +1,8 @@ using System; -namespace Fantasy.Entitas.Interface +namespace NBC.Entitas.Interface { - /// - /// Update事件的接口 - /// - public interface IUpdateSystem : IEntitySystem { } + internal interface IUpdateSystem : IEntitiesSystem { } /// /// Update事件的抽象接口 /// @@ -16,7 +13,7 @@ namespace Fantasy.Entitas.Interface /// 实体的类型 /// /// - public Type EntityType() => typeof(T); + public Type EntitiesType() => typeof(T); /// /// 事件的抽象方法,需要自己实现这个方法 /// diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IUpdateSystem.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IUpdateSystem.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IUpdateSystem.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Entitas/Interface/System/IUpdateSystem.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/Event.meta b/Assets/Scripts/NBC/Runtime/Core/Event.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/Event.meta rename to Assets/Scripts/NBC/Runtime/Core/Event.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/Event/EventArgs.cs b/Assets/Scripts/NBC/Runtime/Core/Event/EventArgs.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/Event/EventArgs.cs rename to Assets/Scripts/NBC/Runtime/Core/Event/EventArgs.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/Event/EventArgs.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Event/EventArgs.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/Event/EventArgs.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Event/EventArgs.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/Event/EventDispatcher.cs b/Assets/Scripts/NBC/Runtime/Core/Event/EventDispatcher.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/Event/EventDispatcher.cs rename to Assets/Scripts/NBC/Runtime/Core/Event/EventDispatcher.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/Event/EventDispatcher.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Event/EventDispatcher.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/Event/EventDispatcher.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Event/EventDispatcher.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/Event/IEventDispatcher.cs b/Assets/Scripts/NBC/Runtime/Core/Event/IEventDispatcher.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/Event/IEventDispatcher.cs rename to Assets/Scripts/NBC/Runtime/Core/Event/IEventDispatcher.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/Event/IEventDispatcher.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Event/IEventDispatcher.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/Event/IEventDispatcher.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Event/IEventDispatcher.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/FSM.meta b/Assets/Scripts/NBC/Runtime/Core/FSM.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/FSM.meta rename to Assets/Scripts/NBC/Runtime/Core/FSM.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/FSM/Fsm.cs b/Assets/Scripts/NBC/Runtime/Core/FSM/Fsm.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/FSM/Fsm.cs rename to Assets/Scripts/NBC/Runtime/Core/FSM/Fsm.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/FSM/Fsm.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FSM/Fsm.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/FSM/Fsm.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FSM/Fsm.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/FSM/FsmBaseState.cs b/Assets/Scripts/NBC/Runtime/Core/FSM/FsmBaseState.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/FSM/FsmBaseState.cs rename to Assets/Scripts/NBC/Runtime/Core/FSM/FsmBaseState.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/FSM/FsmBaseState.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FSM/FsmBaseState.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/FSM/FsmBaseState.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FSM/FsmBaseState.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/FSM/FsmTransmit.cs b/Assets/Scripts/NBC/Runtime/Core/FSM/FsmTransmit.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/FSM/FsmTransmit.cs rename to Assets/Scripts/NBC/Runtime/Core/FSM/FsmTransmit.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/FSM/FsmTransmit.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FSM/FsmTransmit.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/FSM/FsmTransmit.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FSM/FsmTransmit.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask.meta b/Assets/Scripts/NBC/Runtime/Core/FTask.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Builder.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/Builder.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Builder.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/Builder.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Builder/AsyncFTaskCompletedMethodBuilder.cs b/Assets/Scripts/NBC/Runtime/Core/FTask/Builder/AsyncFTaskCompletedMethodBuilder.cs similarity index 98% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Builder/AsyncFTaskCompletedMethodBuilder.cs rename to Assets/Scripts/NBC/Runtime/Core/FTask/Builder/AsyncFTaskCompletedMethodBuilder.cs index 60b0d0870..3915e6c86 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Builder/AsyncFTaskCompletedMethodBuilder.cs +++ b/Assets/Scripts/NBC/Runtime/Core/FTask/Builder/AsyncFTaskCompletedMethodBuilder.cs @@ -5,7 +5,7 @@ using System.Runtime.ExceptionServices; using System.Runtime.InteropServices; #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -namespace Fantasy.Async +namespace NBC { [StructLayout(LayoutKind.Auto)] public struct AsyncFTaskCompletedMethodBuilder diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Builder/AsyncFTaskCompletedMethodBuilder.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/Builder/AsyncFTaskCompletedMethodBuilder.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Builder/AsyncFTaskCompletedMethodBuilder.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/Builder/AsyncFTaskCompletedMethodBuilder.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Builder/AsyncFTaskMethodBuilder.cs b/Assets/Scripts/NBC/Runtime/Core/FTask/Builder/AsyncFTaskMethodBuilder.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Builder/AsyncFTaskMethodBuilder.cs rename to Assets/Scripts/NBC/Runtime/Core/FTask/Builder/AsyncFTaskMethodBuilder.cs index 6c072cdd5..e63882e3a 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Builder/AsyncFTaskMethodBuilder.cs +++ b/Assets/Scripts/NBC/Runtime/Core/FTask/Builder/AsyncFTaskMethodBuilder.cs @@ -7,7 +7,7 @@ using System.Runtime.InteropServices; #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member #pragma warning disable CS8604 // Possible null reference argument. -namespace Fantasy.Async +namespace NBC { [StructLayout(LayoutKind.Auto)] public readonly struct AsyncFTaskMethodBuilder diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Builder/AsyncFTaskMethodBuilder.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/Builder/AsyncFTaskMethodBuilder.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Builder/AsyncFTaskMethodBuilder.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/Builder/AsyncFTaskMethodBuilder.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Builder/AsyncFVoidMethodBuilder.cs b/Assets/Scripts/NBC/Runtime/Core/FTask/Builder/AsyncFVoidMethodBuilder.cs similarity index 98% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Builder/AsyncFVoidMethodBuilder.cs rename to Assets/Scripts/NBC/Runtime/Core/FTask/Builder/AsyncFVoidMethodBuilder.cs index b9f7bc065..e62bd865e 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Builder/AsyncFVoidMethodBuilder.cs +++ b/Assets/Scripts/NBC/Runtime/Core/FTask/Builder/AsyncFVoidMethodBuilder.cs @@ -5,7 +5,7 @@ using System.Runtime.ExceptionServices; using System.Runtime.InteropServices; #pragma warning disable CS8603 // Possible null reference return. -namespace Fantasy.Async +namespace NBC { [StructLayout(LayoutKind.Auto)] internal struct AsyncFVoidMethodBuilder diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Builder/AsyncFVoidMethodBuilder.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/Builder/AsyncFVoidMethodBuilder.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Builder/AsyncFVoidMethodBuilder.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/Builder/AsyncFVoidMethodBuilder.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/FCancellationToken.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/FCancellationToken.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/FCancellationToken.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/FCancellationToken.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/FCancellationToken/FCancellationToken.cs b/Assets/Scripts/NBC/Runtime/Core/FTask/FCancellationToken/FCancellationToken.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/FCancellationToken/FCancellationToken.cs rename to Assets/Scripts/NBC/Runtime/Core/FTask/FCancellationToken/FCancellationToken.cs index 90913e34d..68e55d57f 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/FCancellationToken/FCancellationToken.cs +++ b/Assets/Scripts/NBC/Runtime/Core/FTask/FCancellationToken/FCancellationToken.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Concurrent; using System.Collections.Generic; -namespace Fantasy.Async +namespace NBC { /// /// 用于FTask取消的CancellationToken diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/FCancellationToken/FCancellationToken.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/FCancellationToken/FCancellationToken.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/FCancellationToken/FCancellationToken.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/FCancellationToken/FCancellationToken.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/FTask.Extension.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/FTask.Extension.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/FTask.Extension.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/FTask.Extension.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/FTask.Extension/FTask.Factory.cs b/Assets/Scripts/NBC/Runtime/Core/FTask/FTask.Extension/FTask.Factory.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/FTask.Extension/FTask.Factory.cs rename to Assets/Scripts/NBC/Runtime/Core/FTask/FTask.Extension/FTask.Factory.cs index 80c7fc83d..6b978559f 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/FTask.Extension/FTask.Factory.cs +++ b/Assets/Scripts/NBC/Runtime/Core/FTask/FTask.Extension/FTask.Factory.cs @@ -7,7 +7,7 @@ using System.Runtime.CompilerServices; #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. -namespace Fantasy.Async +namespace NBC { /// /// 一个异步任务 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/FTask.Extension/FTask.Factory.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/FTask.Extension/FTask.Factory.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/FTask.Extension/FTask.Factory.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/FTask.Extension/FTask.Factory.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/FTask.Extension/FTask.Tools.cs b/Assets/Scripts/NBC/Runtime/Core/FTask/FTask.Extension/FTask.Tools.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/FTask.Extension/FTask.Tools.cs rename to Assets/Scripts/NBC/Runtime/Core/FTask/FTask.Extension/FTask.Tools.cs index a42edecab..33afec25b 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/FTask.Extension/FTask.Tools.cs +++ b/Assets/Scripts/NBC/Runtime/Core/FTask/FTask.Extension/FTask.Tools.cs @@ -4,7 +4,7 @@ using System; using System.Collections.Generic; #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. -namespace Fantasy.Async +namespace NBC { public partial class FTask { @@ -133,8 +133,7 @@ namespace Fantasy.Async #endregion #region Unity - -#if FANTASY_UNITY + /// /// 异步等待指定时间。(使用Unity的Time时间) /// @@ -254,7 +253,7 @@ namespace Fantasy.Async { return scene.TimerComponent.Unity.Remove(ref timerId); } -#endif + #endregion diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/FTask.Extension/FTask.Tools.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/FTask.Extension/FTask.Tools.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/FTask.Extension/FTask.Tools.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/FTask.Extension/FTask.Tools.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Collection.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Collection.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Collection.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Collection.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Collection/ParallelTaskCollection.cs b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Collection/ParallelTaskCollection.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Collection/ParallelTaskCollection.cs rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Collection/ParallelTaskCollection.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Collection/ParallelTaskCollection.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Collection/ParallelTaskCollection.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Collection/ParallelTaskCollection.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Collection/ParallelTaskCollection.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Collection/SequenceTaskCollection.cs b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Collection/SequenceTaskCollection.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Collection/SequenceTaskCollection.cs rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Collection/SequenceTaskCollection.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Collection/SequenceTaskCollection.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Collection/SequenceTaskCollection.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Collection/SequenceTaskCollection.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Collection/SequenceTaskCollection.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Collection/TaskCollection.cs b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Collection/TaskCollection.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Collection/TaskCollection.cs rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Collection/TaskCollection.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Collection/TaskCollection.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Collection/TaskCollection.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Collection/TaskCollection.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Collection/TaskCollection.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Collection/TimelineTaskCollection.cs b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Collection/TimelineTaskCollection.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Collection/TimelineTaskCollection.cs rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Collection/TimelineTaskCollection.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Collection/TimelineTaskCollection.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Collection/TimelineTaskCollection.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Collection/TimelineTaskCollection.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Collection/TimelineTaskCollection.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Extensions.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Extensions.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Extensions.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Extensions.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Extensions/TaskChainExtension.cs b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Extensions/TaskChainExtension.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Extensions/TaskChainExtension.cs rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Extensions/TaskChainExtension.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Extensions/TaskChainExtension.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Extensions/TaskChainExtension.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Extensions/TaskChainExtension.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Extensions/TaskChainExtension.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Interface.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Interface.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Interface.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Interface.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Interface/IProcess.cs b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Interface/IProcess.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Interface/IProcess.cs rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Interface/IProcess.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Interface/IProcess.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Interface/IProcess.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Interface/IProcess.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Interface/IProcess.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Interface/IRunner.cs b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Interface/IRunner.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Interface/IRunner.cs rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Interface/IRunner.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Interface/IRunner.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Interface/IRunner.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Interface/IRunner.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Interface/IRunner.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Interface/ITask.cs b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Interface/ITask.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Interface/ITask.cs rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Interface/ITask.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Interface/ITask.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Interface/ITask.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Interface/ITask.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Interface/ITask.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Interface/ITaskCollection.cs b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Interface/ITaskCollection.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Interface/ITaskCollection.cs rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Interface/ITaskCollection.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Interface/ITaskCollection.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Interface/ITaskCollection.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Interface/ITaskCollection.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Interface/ITaskCollection.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Interface/ITaskRun.cs b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Interface/ITaskRun.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Interface/ITaskRun.cs rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Interface/ITaskRun.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Interface/ITaskRun.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Interface/ITaskRun.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Interface/ITaskRun.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Interface/ITaskRun.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/NTask.cs b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/NTask.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/NTask.cs rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/NTask.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/NTask.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/NTask.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/NTask.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/NTask.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/NTaskStatus.cs b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/NTaskStatus.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/NTaskStatus.cs rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/NTaskStatus.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/NTaskStatus.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/NTaskStatus.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/NTaskStatus.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/NTaskStatus.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Runner.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Runner.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Runner.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Runner.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Runner/FlushingOperation.cs b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Runner/FlushingOperation.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Runner/FlushingOperation.cs rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Runner/FlushingOperation.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Runner/FlushingOperation.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Runner/FlushingOperation.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Runner/FlushingOperation.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Runner/FlushingOperation.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Runner/Runner.cs b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Runner/Runner.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Runner/Runner.cs rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Runner/Runner.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Runner/Runner.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Runner/Runner.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Runner/Runner.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Runner/Runner.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Runner/RunnerProcess.cs b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Runner/RunnerProcess.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Runner/RunnerProcess.cs rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Runner/RunnerProcess.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Runner/RunnerProcess.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Runner/RunnerProcess.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Core/NTask/Runner/RunnerProcess.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/NTask/Runner/RunnerProcess.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Task.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/Task.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Task.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/Task.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Task/FTask.cs b/Assets/Scripts/NBC/Runtime/Core/FTask/Task/FTask.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Task/FTask.cs rename to Assets/Scripts/NBC/Runtime/Core/FTask/Task/FTask.cs index ce925f256..a823e7582 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Task/FTask.cs +++ b/Assets/Scripts/NBC/Runtime/Core/FTask/Task/FTask.cs @@ -11,7 +11,7 @@ using System.Runtime.ExceptionServices; #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. -namespace Fantasy.Async +namespace NBC { public enum STaskStatus : byte { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Task/FTask.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/Task/FTask.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Task/FTask.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/Task/FTask.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Task/FTaskCompleted.cs b/Assets/Scripts/NBC/Runtime/Core/FTask/Task/FTaskCompleted.cs similarity index 97% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Task/FTaskCompleted.cs rename to Assets/Scripts/NBC/Runtime/Core/FTask/Task/FTaskCompleted.cs index 48b9e3614..cedb73f7b 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Task/FTaskCompleted.cs +++ b/Assets/Scripts/NBC/Runtime/Core/FTask/Task/FTaskCompleted.cs @@ -4,7 +4,7 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -namespace Fantasy.Async +namespace NBC { [StructLayout(LayoutKind.Auto)] [AsyncMethodBuilder(typeof(AsyncFTaskCompletedMethodBuilder))] diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Task/FTaskCompleted.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/Task/FTaskCompleted.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Task/FTaskCompleted.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/Task/FTaskCompleted.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Task/FVoid.cs b/Assets/Scripts/NBC/Runtime/Core/FTask/Task/FVoid.cs similarity index 97% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Task/FVoid.cs rename to Assets/Scripts/NBC/Runtime/Core/FTask/Task/FVoid.cs index f10ca7ca0..032785ed9 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Task/FVoid.cs +++ b/Assets/Scripts/NBC/Runtime/Core/FTask/Task/FVoid.cs @@ -3,7 +3,7 @@ using System.Diagnostics; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -namespace Fantasy.Async +namespace NBC { [StructLayout(LayoutKind.Auto)] [AsyncMethodBuilder(typeof(AsyncFVoidMethodBuilder))] diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Task/FVoid.cs.meta b/Assets/Scripts/NBC/Runtime/Core/FTask/Task/FVoid.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/FTask/Task/FVoid.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/FTask/Task/FVoid.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper.meta b/Assets/Scripts/NBC/Runtime/Core/Helper.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper.meta diff --git a/Assets/Scripts/NBC/Runtime/Core/Helper/ByteHelper.cs b/Assets/Scripts/NBC/Runtime/Core/Helper/ByteHelper.cs new file mode 100644 index 000000000..24a859792 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Helper/ByteHelper.cs @@ -0,0 +1,344 @@ +using System; +using System.Buffers; +using System.IO; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Text; +using NBC.Async; + +namespace NBC.Helper +{ + /// + /// 提供字节操作辅助方法的静态类。 + /// + public static class ByteHelper + { + private static readonly string[] Suffix = { "Byte", "KB", "MB", "GB", "TB" }; + + /// + /// 从指定的文件流中读取一个 64 位整数。 + /// + public static long ReadInt64(FileStream stream) + { + var buffer = new byte[8]; + stream.Read(buffer, 0, 8); + return BitConverter.ToInt64(buffer, 0); + } + + /// + /// 从指定的文件流中读取一个 32 位整数。 + /// + public static int ReadInt32(FileStream stream) + { + var buffer = new byte[4]; + stream.Read(buffer, 0, 4); + return BitConverter.ToInt32(buffer, 0); + } + + /// + /// 从指定的内存流中读取一个 64 位整数。 + /// + public static long ReadInt64(MemoryStream stream) + { + var buffer = new byte[8]; + stream.Read(buffer, 0, 8); + return BitConverter.ToInt64(buffer, 0); + } + + /// + /// 从指定的内存流中读取一个 32 位整数。 + /// + public static int ReadInt32(MemoryStream stream) + { + var buffer = new byte[4]; + stream.Read(buffer, 0, 4); + return BitConverter.ToInt32(buffer, 0); + } + + /// + /// 将字节转换为十六进制字符串表示。 + /// + public static string ToHex(this byte b) + { + return b.ToString("X2"); + } + + /// + /// 将字节数组转换为十六进制字符串表示。 + /// + public static string ToHex(this byte[] bytes) + { + var stringBuilder = new StringBuilder(); + foreach (var b in bytes) + { + stringBuilder.Append(b.ToString("X2")); + } + + return stringBuilder.ToString(); + } + + /// + /// 将字节数组按指定格式转换为十六进制字符串表示。 + /// + public static string ToHex(this byte[] bytes, string format) + { + var stringBuilder = new StringBuilder(); + foreach (var b in bytes) + { + stringBuilder.Append(b.ToString(format)); + } + + return stringBuilder.ToString(); + } + + /// + /// 将字节数组的指定范围按十六进制格式转换为字符串表示。 + /// + public static string ToHex(this byte[] bytes, int offset, int count) + { + var stringBuilder = new StringBuilder(); + for (var i = offset; i < offset + count; ++i) + { + stringBuilder.Append(bytes[i].ToString("X2")); + } + + return stringBuilder.ToString(); + } + + /// + /// 将字节数组转换为默认编码的字符串表示。 + /// + public static string ToStr(this byte[] bytes) + { + return Encoding.Default.GetString(bytes); + } + + /// + /// 将字节数组的指定范围按默认编码转换为字符串表示。 + /// + public static string ToStr(this byte[] bytes, int index, int count) + { + return Encoding.Default.GetString(bytes, index, count); + } + + /// + /// 将字节数组转换为 UTF-8 编码的字符串表示。 + /// + public static string Utf8ToStr(this byte[] bytes) + { + return Encoding.UTF8.GetString(bytes); + } + + /// + /// 将字节数组的指定范围按 UTF-8 编码转换为字符串表示。 + /// + public static string Utf8ToStr(this byte[] bytes, int index, int count) + { + return Encoding.UTF8.GetString(bytes, index, count); + } + + /// + /// 将无符号整数写入字节数组的指定偏移位置。 + /// + public static void WriteTo(this byte[] bytes, int offset, uint num) + { + bytes[offset] = (byte)(num & 0xff); + bytes[offset + 1] = (byte)((num & 0xff00) >> 8); + bytes[offset + 2] = (byte)((num & 0xff0000) >> 16); + bytes[offset + 3] = (byte)((num & 0xff000000) >> 24); + } + + /// + /// 将有符号整数写入字节数组的指定偏移位置。 + /// + public static void WriteTo(this byte[] bytes, int offset, int num) + { + bytes[offset] = (byte)(num & 0xff); + bytes[offset + 1] = (byte)((num & 0xff00) >> 8); + bytes[offset + 2] = (byte)((num & 0xff0000) >> 16); + bytes[offset + 3] = (byte)((num & 0xff000000) >> 24); + } + + /// + /// 将字节写入字节数组的指定偏移位置。 + /// + public static void WriteTo(this byte[] bytes, int offset, byte num) + { + bytes[offset] = num; + } + + /// + /// 将有符号短整数写入字节数组的指定偏移位置。 + /// + public static void WriteTo(this byte[] bytes, int offset, short num) + { + bytes[offset] = (byte)(num & 0xff); + bytes[offset + 1] = (byte)((num & 0xff00) >> 8); + } + + /// + /// 将无符号短整数写入字节数组的指定偏移位置。 + /// + public static void WriteTo(this byte[] bytes, int offset, ushort num) + { + bytes[offset] = (byte)(num & 0xff); + bytes[offset + 1] = (byte)((num & 0xff00) >> 8); + } + + /// + /// 将字节数转换为可读的速度表示。 + /// + /// 字节数 + /// 可读的速度表示 + public static string ToReadableSpeed(this long byteCount) + { + var i = 0; + double dblSByte = byteCount; + if (byteCount <= 1024) + { + return $"{dblSByte:0.##}{Suffix[i]}"; + } + + for (i = 0; byteCount / 1024 > 0; i++, byteCount /= 1024) + { + dblSByte = byteCount / 1024.0; + } + + return $"{dblSByte:0.##}{Suffix[i]}"; + } + + /// + /// 将字节数转换为可读的速度表示。 + /// + /// 字节数 + /// 可读的速度表示 + public static string ToReadableSpeed(this ulong byteCount) + { + var i = 0; + double dblSByte = byteCount; + + if (byteCount <= 1024) + { + return $"{dblSByte:0.##}{Suffix[i]}"; + } + + for (i = 0; byteCount / 1024 > 0; i++, byteCount /= 1024) + { + dblSByte = byteCount / 1024.0; + } + + return $"{dblSByte:0.##}{Suffix[i]}"; + } + + /// + /// 合并两个字节数组。 + /// + /// 第一个字节数组 + /// 第二个字节数组 + /// 合并后的字节数组 + public static byte[] MergeBytes(byte[] bytes, byte[] otherBytes) + { + var result = new byte[bytes.Length + otherBytes.Length]; + bytes.CopyTo(result, 0); + otherBytes.CopyTo(result, bytes.Length); + return result; + } + + /// + /// 根据int值获取字节数组。 + /// + /// + /// + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static void GetBytes(this int value, byte[] buffer) + { + if (buffer.Length < 4) + { + throw new ArgumentException("Buffer too small."); + } + + MemoryMarshal.Write(buffer.AsSpan(), ref value); + } + + /// + /// 根据int值获取字节数组。 + /// + /// + /// + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static void WriteBytes(this MemoryStream memoryStream, int value) + { + using var memoryOwner = MemoryPool.Shared.Rent(4); + var memorySpan = memoryOwner.Memory.Span; + + MemoryMarshal.Write(memorySpan, ref value); + memoryStream.Write(memorySpan); + } + + /// + /// 根据uint值获取字节数组。 + /// + /// + /// + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static void GetBytes(ref this uint value, byte[] buffer) + { + if (buffer.Length < 4) + { + throw new ArgumentException("Buffer too small."); + } + + MemoryMarshal.Write(buffer.AsSpan(), ref value); + + } + + /// + /// 根据uint值获取字节数组。 + /// + /// + /// + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static void WriteBytes(this MemoryStream memoryStream, uint value) + { + using var memoryOwner = MemoryPool.Shared.Rent(4); + var memorySpan = memoryOwner.Memory.Span; + MemoryMarshal.Write(memorySpan, ref value); + memoryStream.Write(memorySpan); + } + + /// + /// 根据int值获取字节数组。 + /// + /// + /// + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static void GetBytes(this long value, byte[] buffer) + { + if (buffer.Length < 8) + { + throw new ArgumentException("Buffer too small."); + } + MemoryMarshal.Write(buffer.AsSpan(), ref value); + } + + /// + /// 根据uint值获取字节数组。 + /// + /// + /// + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static void WriteBytes(this MemoryStream memoryStream, long value) + { + using var memoryOwner = MemoryPool.Shared.Rent(8); + var memorySpan = memoryOwner.Memory.Span; + MemoryMarshal.Write(memorySpan, ref value); + memoryStream.Write(memorySpan); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/ByteHelper.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/ByteHelper.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/ByteHelper.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/ByteHelper.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/Download.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/Download.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/ADownload.cs b/Assets/Scripts/NBC/Runtime/Core/Helper/Download/ADownload.cs similarity index 94% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/ADownload.cs rename to Assets/Scripts/NBC/Runtime/Core/Helper/Download/ADownload.cs index 4846d51cf..e0d6a1afb 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/ADownload.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Helper/Download/ADownload.cs @@ -1,9 +1,8 @@ -#if FANTASY_UNITY using System; -using Fantasy.Async; +using NBC.Async; using UnityEngine.Networking; -namespace Fantasy.Unity.Download +namespace NBC.Unity.Download { public abstract class AUnityDownload : IDisposable { @@ -47,4 +46,3 @@ namespace Fantasy.Unity.Download } } } -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/ADownload.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/Download/ADownload.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/ADownload.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/Download/ADownload.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/Download.cs b/Assets/Scripts/NBC/Runtime/Core/Helper/Download/Download.cs similarity index 96% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/Download.cs rename to Assets/Scripts/NBC/Runtime/Core/Helper/Download/Download.cs index a53a42a43..5913d1f5f 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/Download.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Helper/Download/Download.cs @@ -1,10 +1,9 @@ -#if FANTASY_UNITY using System.Collections.Generic; using System.Linq; -using Fantasy.Async; +using NBC.Async; using UnityEngine; -namespace Fantasy.Unity.Download +namespace NBC.Unity.Download { public sealed class Download { @@ -69,4 +68,3 @@ namespace Fantasy.Unity.Download } } } -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/Download.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/Download/Download.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/Download.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/Download/Download.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadAssetBundle.cs b/Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadAssetBundle.cs similarity index 95% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadAssetBundle.cs rename to Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadAssetBundle.cs index 9d8f5a4d3..f6efce777 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadAssetBundle.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadAssetBundle.cs @@ -1,10 +1,9 @@ -#if FANTASY_UNITY using System; -using Fantasy.Async; +using NBC.Async; using UnityEngine; using UnityEngine.Networking; -namespace Fantasy.Unity.Download +namespace NBC.Unity.Download { public sealed class DownloadAssetBundle : AUnityDownload { @@ -51,4 +50,3 @@ namespace Fantasy.Unity.Download } } } -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadAssetBundle.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadAssetBundle.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadAssetBundle.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadAssetBundle.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadAudioClip.cs b/Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadAudioClip.cs similarity index 95% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadAudioClip.cs rename to Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadAudioClip.cs index 29b3dc5d5..b0e371258 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadAudioClip.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadAudioClip.cs @@ -1,10 +1,9 @@ -#if FANTASY_UNITY using System; -using Fantasy.Async; +using NBC.Async; using UnityEngine; using UnityEngine.Networking; -namespace Fantasy.Unity.Download +namespace NBC.Unity.Download { public sealed class DownloadAudioClip : AUnityDownload { @@ -51,4 +50,4 @@ namespace Fantasy.Unity.Download } } } -#endif + diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadAudioClip.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadAudioClip.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadAudioClip.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadAudioClip.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadByte.cs b/Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadByte.cs similarity index 94% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadByte.cs rename to Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadByte.cs index 6c934d92a..3a89d10aa 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadByte.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadByte.cs @@ -1,8 +1,7 @@ -#if FANTASY_UNITY -using Fantasy.Async; +using NBC.Async; using UnityEngine.Networking; -namespace Fantasy.Unity.Download +namespace NBC.Unity.Download { public sealed class DownloadByte : AUnityDownload { @@ -49,4 +48,3 @@ namespace Fantasy.Unity.Download } } } -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadByte.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadByte.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadByte.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadByte.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadSprite.cs b/Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadSprite.cs similarity index 95% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadSprite.cs rename to Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadSprite.cs index 802a967e7..7f7a80fbb 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadSprite.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadSprite.cs @@ -1,10 +1,9 @@ -#if FANTASY_UNITY using System; -using Fantasy.Async; +using NBC.Async; using UnityEngine; using UnityEngine.Networking; -namespace Fantasy.Unity.Download +namespace NBC.Unity.Download { public sealed class DownloadSprite : AUnityDownload { @@ -52,4 +51,3 @@ namespace Fantasy.Unity.Download } } } -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadSprite.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadSprite.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadSprite.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadSprite.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadText.cs b/Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadText.cs similarity index 94% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadText.cs rename to Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadText.cs index 50d832979..84c684c95 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadText.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadText.cs @@ -1,8 +1,7 @@ -#if FANTASY_UNITY -using Fantasy.Async; +using NBC.Async; using UnityEngine.Networking; -namespace Fantasy.Unity.Download +namespace NBC.Unity.Download { public sealed class DownloadText : AUnityDownload { @@ -48,5 +47,4 @@ namespace Fantasy.Unity.Download return task; } } -} -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadText.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadText.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadText.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadText.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadTexture.cs b/Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadTexture.cs similarity index 94% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadTexture.cs rename to Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadTexture.cs index f66533d74..6bbeaa140 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadTexture.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadTexture.cs @@ -1,10 +1,9 @@ -#if FANTASY_UNITY using System; -using Fantasy.Async; +using NBC.Async; using UnityEngine; using UnityEngine.Networking; -namespace Fantasy.Unity.Download +namespace NBC.Unity.Download { public sealed class DownloadTexture : AUnityDownload { @@ -50,5 +49,4 @@ namespace Fantasy.Unity.Download return task; } } -} -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadTexture.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadTexture.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/Download/DownloadTexture.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/Download/DownloadTexture.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/EncryptHelper.cs b/Assets/Scripts/NBC/Runtime/Core/Helper/EncryptHelper.cs similarity index 90% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/EncryptHelper.cs rename to Assets/Scripts/NBC/Runtime/Core/Helper/EncryptHelper.cs index 5cbe7c766..e5aff2c06 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/EncryptHelper.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Helper/EncryptHelper.cs @@ -2,7 +2,7 @@ using System.IO; using System.Security.Cryptography; using System.Text; -namespace Fantasy.Helper +namespace NBC.Helper { /// /// 提供计算 MD5 散列值的辅助方法。 @@ -18,12 +18,8 @@ namespace Fantasy.Helper /// public static byte[] ComputeSha256Hash(byte[] bytes) { -#if FANTASY_UNITY using var sha256Hash = SHA256.Create(); return sha256Hash.ComputeHash(bytes); -#else - return SHA256.HashData(bytes); -#endif } /// @@ -45,7 +41,7 @@ namespace Fantasy.Helper public static string FileMD5(FileStream fileStream) { var md5 = MD5.Create(); - return md5.ComputeHash(fileStream).ToHex(false); + return md5.ComputeHash(fileStream).ToHex("x2"); } /// @@ -57,7 +53,7 @@ namespace Fantasy.Helper { var md5 = MD5.Create(); bytes = md5.ComputeHash(bytes); - return bytes.ToHex(false); + return bytes.ToHex("x2"); } } } \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/EncryptHelper.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/EncryptHelper.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/EncryptHelper.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/EncryptHelper.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/FileHelper.cs b/Assets/Scripts/NBC/Runtime/Core/Helper/FileHelper.cs similarity index 98% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/FileHelper.cs rename to Assets/Scripts/NBC/Runtime/Core/Helper/FileHelper.cs index 00c18ecd2..259534f69 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/FileHelper.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Helper/FileHelper.cs @@ -1,10 +1,9 @@ -using System; using System.Collections.Generic; using System.IO; using System.Text; using System.Threading.Tasks; -namespace Fantasy.Helper +namespace NBC.Helper { /// /// 文件操作助手类,提供了各种文件操作方法。 @@ -18,7 +17,7 @@ namespace Fantasy.Helper /// 完整路径。 public static string GetFullPath(string relativePath) { - return Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, relativePath)); + return Path.GetFullPath(Path.Combine(Directory.GetCurrentDirectory(), relativePath)); } /// diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/FileHelper.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/FileHelper.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/FileHelper.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/FileHelper.cs.meta diff --git a/Assets/Scripts/NBC/Runtime/Core/Helper/HashCodeHelper.cs b/Assets/Scripts/NBC/Runtime/Core/Helper/HashCodeHelper.cs new file mode 100644 index 000000000..0babf0cab --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Helper/HashCodeHelper.cs @@ -0,0 +1,143 @@ +using System.Security.Cryptography; +using System.Text; +// ReSharper disable InconsistentNaming + +namespace NBC.Helper +{ + /// + /// HashCode算法帮助类 + /// + public static partial class HashCodeHelper + { + private static readonly SHA256 Sha256Hash = SHA256.Create(); + + /// + /// 计算两个字符串的HashCode + /// + /// + /// + /// + public static int GetHashCode(string a, string b) + { + var hash = 17; + hash = hash * 31 + a.GetHashCode(); + hash = hash * 31 + b.GetHashCode(); + return hash; + } + + /// + /// 使用bkdr算法生成一个long的值 + /// + /// + /// + public static unsafe long GetBKDRHashCode(string str) + { + ulong hash = 0; + // 如果要修改这个种子、建议选择一个质数来做种子 + const uint seed = 13131; // 31 131 1313 13131 131313 etc.. + fixed (char* p = str) + { + for (var i = 0; i < str.Length; i++) + { + var c = p[i]; + var high = (byte)(c >> 8); + var low = (byte)(c & byte.MaxValue); + hash = hash * seed + high; + hash = hash * seed + low; + } + } + return (long)hash; + } + + /// + /// 使用MurmurHash3算法生成一个uint的值 + /// + /// + /// + public static unsafe uint MurmurHash3(string str) + { + const uint seed = 0xc58f1a7b; + uint hash = seed; + uint c1 = 0xcc9e2d51; + uint c2 = 0x1b873593; + + fixed (char* p = str) + { + var current = p; + + for (var i = 0; i < str.Length; i++) + { + var k1 = (uint)(*current); + k1 *= c1; + k1 = (k1 << 15) | (k1 >> (32 - 15)); + k1 *= c2; + + hash ^= k1; + hash = (hash << 13) | (hash >> (32 - 13)); + hash = hash * 5 + 0xe6546b64; + + current++; + } + } + + hash ^= (uint)str.Length; + hash ^= hash >> 16; + hash *= 0x85ebca6b; + hash ^= hash >> 13; + hash *= 0xc2b2ae35; + hash ^= hash >> 16; + return hash; + } + + /// + /// 使用MurmurHash3算法生成一个long的值 + /// + /// + /// + public static unsafe long ComputeHash64(string str) + { + const ulong seed = 0xc58f1a7bc58f1a7bUL; // 64-bit seed + var hash = seed; + var c1 = 0x87c37b91114253d5UL; + var c2 = 0x4cf5ad432745937fUL; + + fixed (char* p = str) + { + var current = p; + + for (var i = 0; i < str.Length; i++) + { + var k1 = (ulong)(*current); + k1 *= c1; + k1 = (k1 << 31) | (k1 >> (64 - 31)); + k1 *= c2; + + hash ^= k1; + hash = (hash << 27) | (hash >> (64 - 27)); + hash = hash * 5 + 0x52dce729; + + current++; + } + } + + hash ^= (ulong)str.Length; + hash ^= hash >> 33; + hash *= 0xff51afd7ed558ccdUL; + hash ^= hash >> 33; + hash *= 0xc4ceb9fe1a85ec53UL; + hash ^= hash >> 33; + return (long)hash; + } + + /// + /// 根据字符串计算一个Hash值 + /// + /// + /// + public static int ComputeSha256HashAsInt(string rawData) + { + var bytes = Sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(rawData)); + return (bytes[0] << 24) | (bytes[1] << 16) | (bytes[2] << 8) | bytes[3]; + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/HashCodeHelper.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/HashCodeHelper.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/HashCodeHelper.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/HashCodeHelper.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/HttpClient.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/HttpClient.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/HttpClient.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/HttpClient.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/HttpClient/HttpClientHelper.cs b/Assets/Scripts/NBC/Runtime/Core/Helper/HttpClient/HttpClientHelper.cs similarity index 98% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/HttpClient/HttpClientHelper.cs rename to Assets/Scripts/NBC/Runtime/Core/Helper/HttpClient/HttpClientHelper.cs index 3954a8c84..33739cc3e 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/HttpClient/HttpClientHelper.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Helper/HttpClient/HttpClientHelper.cs @@ -4,12 +4,13 @@ using System.Net; using System.Net.Http; using System.Net.Http.Headers; using System.Text; -using Fantasy.Async; -using Fantasy.Helper; -using Fantasy.Pool; +using NBC.Helper; +using NBC.Async; +using NBC.Pool; + #pragma warning disable CS8603 // Possible null reference return. -namespace Fantasy.Http +namespace NBC.Http { /// /// HTTP帮助类 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/HttpClient/HttpClientHelper.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/HttpClient/HttpClientHelper.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/HttpClient/HttpClientHelper.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/HttpClient/HttpClientHelper.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/HttpClient/HttpClientPool.cs b/Assets/Scripts/NBC/Runtime/Core/Helper/HttpClient/HttpClientPool.cs similarity index 98% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/HttpClient/HttpClientPool.cs rename to Assets/Scripts/NBC/Runtime/Core/Helper/HttpClient/HttpClientPool.cs index de421ff93..e9c7d6bc1 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/HttpClient/HttpClientPool.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Helper/HttpClient/HttpClientPool.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; using System.Net.Http; #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. -namespace Fantasy.Http +namespace NBC.Http { internal class HttpClientPool : IDisposable { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/HttpClient/HttpClientPool.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/HttpClient/HttpClientPool.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/HttpClient/HttpClientPool.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/HttpClient/HttpClientPool.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/HttpClient/IJsonRpcRequest.cs b/Assets/Scripts/NBC/Runtime/Core/Helper/HttpClient/IJsonRpcRequest.cs similarity index 90% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/HttpClient/IJsonRpcRequest.cs rename to Assets/Scripts/NBC/Runtime/Core/Helper/HttpClient/IJsonRpcRequest.cs index ae756c5b3..558d5e66c 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/HttpClient/IJsonRpcRequest.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Helper/HttpClient/IJsonRpcRequest.cs @@ -1,7 +1,7 @@ -using Fantasy.Pool; +using NBC.Pool; #if !FANTASY_WEBGL -namespace Fantasy.Http +namespace NBC.Http { /// /// 一个JsonRPC的接口 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/HttpClient/IJsonRpcRequest.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/HttpClient/IJsonRpcRequest.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/HttpClient/IJsonRpcRequest.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/HttpClient/IJsonRpcRequest.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/JsonHelper.cs b/Assets/Scripts/NBC/Runtime/Core/Helper/JsonHelper.cs similarity index 98% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/JsonHelper.cs rename to Assets/Scripts/NBC/Runtime/Core/Helper/JsonHelper.cs index 2b10fab7c..4f38711b8 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/JsonHelper.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Helper/JsonHelper.cs @@ -2,7 +2,7 @@ using System; using Newtonsoft.Json; #pragma warning disable CS8603 -namespace Fantasy.Helper +namespace NBC.Helper { /// /// 提供操作 JSON 数据的辅助方法。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/JsonHelper.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/JsonHelper.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/JsonHelper.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/JsonHelper.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/NetworkHelper.cs b/Assets/Scripts/NBC/Runtime/Core/Helper/NetworkHelper.cs similarity index 77% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/NetworkHelper.cs rename to Assets/Scripts/NBC/Runtime/Core/Helper/NetworkHelper.cs index 867ba91e1..f84998d47 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/NetworkHelper.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Helper/NetworkHelper.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; // ReSharper disable InconsistentNaming -namespace Fantasy.Helper +namespace NBC.Helper { /// /// 提供网络操作相关的帮助方法。 @@ -54,7 +54,7 @@ namespace Fantasy.Helper return null; } } - + /// /// 克隆一个IPEndPoint /// @@ -66,7 +66,7 @@ namespace Fantasy.Helper var ip = (IPEndPoint)endPoint; return new IPEndPoint(ip.Address, ip.Port); } - + /// /// 比较两个IPEndPoint是否相等 /// @@ -79,7 +79,7 @@ namespace Fantasy.Helper var ip = (IPEndPoint)endPoint; return ip.Address.Equals(ipEndPoint.Address) && ip.Port == ipEndPoint.Port; } - + /// /// 比较两个IPEndPoint是否相等 /// @@ -91,6 +91,7 @@ namespace Fantasy.Helper { return endPoint.Address.Equals(ipEndPoint.Address) && endPoint.Port == ipEndPoint.Port; } + #if !FANTASY_WEBGL /// /// 将SocketAddress写入到Byte[]中 @@ -99,13 +100,13 @@ namespace Fantasy.Helper /// /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void SocketAddressToByte(this SocketAddress socketAddress, byte[] buffer, int offset) + public static unsafe void SocketAddressToByte(this SocketAddress socketAddress, byte[] buffer, int offset) { if (socketAddress == null) { throw new ArgumentNullException(nameof(socketAddress), "The SocketAddress cannot be null."); } - + if (buffer == null) { throw new ArgumentNullException(nameof(buffer), "The buffer cannot be null."); @@ -113,21 +114,20 @@ namespace Fantasy.Helper if (buffer.Length < socketAddress.Size + offset + 8) { - throw new ArgumentException( - "The buffer length is insufficient. It must be at least the size of the SocketAddress plus 8 bytes.", - nameof(buffer)); + throw new ArgumentException("The buffer length is insufficient. It must be at least the size of the SocketAddress plus 8 bytes.", nameof(buffer)); } - - var span = buffer.AsSpan(offset); - var addressFamilyValue = (int)socketAddress.Family; - var socketAddressSizeValue = socketAddress.Size; - - Unsafe.WriteUnaligned(ref MemoryMarshal.GetReference(span), addressFamilyValue); - Unsafe.WriteUnaligned(ref Unsafe.Add(ref MemoryMarshal.GetReference(span), 4), socketAddressSizeValue); - - for (var i = 0; i < socketAddress.Size - 2; i++) + + fixed (byte* pBuffer = buffer) { - Unsafe.Add(ref MemoryMarshal.GetReference(span), 8 + i) = socketAddress[i + 2]; + var pOffsetBuffer = pBuffer + offset; + var addressFamilyValue = (int)socketAddress.Family; + var socketAddressSizeValue = socketAddress.Size; + Buffer.MemoryCopy(&addressFamilyValue, pOffsetBuffer, buffer.Length - offset, sizeof(int)); + Buffer.MemoryCopy(&socketAddressSizeValue, pOffsetBuffer + 4, buffer.Length - offset -4, sizeof(int)); + for (var i = 0; i < socketAddress.Size - 2; i++) + { + pOffsetBuffer[8 + i] = socketAddress[i + 2]; + } } } @@ -141,41 +141,40 @@ namespace Fantasy.Helper /// /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static int ByteToSocketAddress(byte[] buffer, int offset, out SocketAddress socketAddress) + public static unsafe int ByteToSocketAddress(byte[] buffer, int offset, out SocketAddress socketAddress) { if (buffer == null) { throw new ArgumentNullException(nameof(buffer), "The buffer cannot be null."); } - + if (buffer.Length < 8) { - throw new ArgumentException("Buffer length is insufficient. It must be at least 8 bytes.", - nameof(buffer)); + throw new ArgumentException("Buffer length is insufficient. It must be at least 8 bytes.", nameof(buffer)); } - + try { - var span = buffer.AsSpan(offset); - ref var spanRef = ref MemoryMarshal.GetReference(span); - - var addressFamily = (AddressFamily)Unsafe.ReadUnaligned(ref spanRef); - var socketAddressSize = Unsafe.ReadUnaligned(ref Unsafe.Add(ref spanRef, 4)); - - if (buffer.Length < offset + 8 + socketAddressSize) + fixed (byte* pBuffer = buffer) { - throw new ArgumentException("Buffer length is insufficient for the given SocketAddress size.", - nameof(buffer)); + var pOffsetBuffer = pBuffer + offset; + var addressFamily = (AddressFamily)Marshal.ReadInt32((IntPtr)pOffsetBuffer); + var socketAddressSize = Marshal.ReadInt32((IntPtr)(pOffsetBuffer + 4)); + + if (buffer.Length < offset + 8 + socketAddressSize) + { + throw new ArgumentException("Buffer length is insufficient for the given SocketAddress size.", nameof(buffer)); + } + + socketAddress = new SocketAddress(addressFamily, socketAddressSize); + + for (var i = 0; i < socketAddressSize - 2; i++) + { + socketAddress[i + 2] = *(pOffsetBuffer + 8 + i); + } + + return 8 + offset + socketAddressSize; } - - socketAddress = new SocketAddress(addressFamily, socketAddressSize); - - for (var i = 0; i < socketAddressSize - 2; i++) - { - socketAddress[i + 2] = Unsafe.Add(ref spanRef, 8 + i); - } - - return 8 + offset + socketAddressSize; } catch (ArgumentNullException ex) { @@ -200,36 +199,35 @@ namespace Fantasy.Helper /// /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static int ByteToSocketAddress(ReadOnlyMemory buffer, int offset, out SocketAddress socketAddress) + public static unsafe int ByteToSocketAddress(ReadOnlyMemory buffer, int offset, out SocketAddress socketAddress) { if (buffer.Length < 8) { - throw new ArgumentException("Buffer length is insufficient. It must be at least 8 bytes.", - nameof(buffer)); + throw new ArgumentException("Buffer length is insufficient. It must be at least 8 bytes.", nameof(buffer)); } try { - var span = buffer.Span.Slice(offset); - ref var spanRef = ref MemoryMarshal.GetReference(span); - - var addressFamily = (AddressFamily)Unsafe.ReadUnaligned(ref spanRef); - var socketAddressSize = Unsafe.ReadUnaligned(ref Unsafe.Add(ref spanRef, 4)); - - if (buffer.Length < offset + 8 + socketAddressSize) + fixed (byte* pBuffer = buffer.Span) { - throw new ArgumentException("Buffer length is insufficient for the given SocketAddress size.", - nameof(buffer)); + var pOffsetBuffer = pBuffer + offset; + var addressFamily = (AddressFamily)Marshal.ReadInt32((IntPtr)pOffsetBuffer); + var socketAddressSize = Marshal.ReadInt32((IntPtr)(pOffsetBuffer + 4)); + + if (buffer.Length < offset + 8 + socketAddressSize) + { + throw new ArgumentException("Buffer length is insufficient for the given SocketAddress size.", nameof(buffer)); + } + + socketAddress = new SocketAddress(addressFamily, socketAddressSize); + + for (var i = 0; i < socketAddressSize - 2; i++) + { + socketAddress[i + 2] = *(pOffsetBuffer + 8 + i); + } + + return 8 + offset + socketAddressSize; } - - socketAddress = new SocketAddress(addressFamily, socketAddressSize); - - for (var i = 0; i < socketAddressSize - 2; i++) - { - socketAddress[i + 2] = Unsafe.Add(ref spanRef, 8 + i); - } - - return 8 + offset + socketAddressSize; } catch (ArgumentNullException ex) { @@ -251,7 +249,7 @@ namespace Fantasy.Helper /// /// /// - public static IPEndPoint GetIPEndPoint(this SocketAddress socketAddress) + public static unsafe IPEndPoint GetIPEndPoint(this SocketAddress socketAddress) { switch (socketAddress.Family) { @@ -262,7 +260,6 @@ namespace Fantasy.Helper { ipBytes[i] = socketAddress[4 + i]; } - var port = (socketAddress[2] << 8) + socketAddress[3]; var ip = new IPAddress(ipBytes); return new IPEndPoint(ip, port); @@ -271,23 +268,24 @@ namespace Fantasy.Helper { var ipBytes = new byte[16]; Span socketAddressSpan = stackalloc byte[28]; - + for (var i = 0; i < 28; i++) { socketAddressSpan[i] = socketAddress[i]; } - - ref var spanRef = ref MemoryMarshal.GetReference(socketAddressSpan); - - for (var i = 0; i < 16; i++) + + fixed (byte* pSocketAddress = socketAddressSpan) { - ipBytes[i] = Unsafe.Add(ref spanRef, 8 + i); + for (var i = 0; i < 16; i++) + { + ipBytes[i] = *(pSocketAddress + 8 + i); + } + + var port = (*(pSocketAddress + 2) << 8) + *(pSocketAddress + 3); + var scopeId = Marshal.ReadInt64((IntPtr)(pSocketAddress + 24)); + var ip = new IPAddress(ipBytes, scopeId); + return new IPEndPoint(ip, port); } - - var port = (Unsafe.Add(ref spanRef, 2) << 8) + Unsafe.Add(ref spanRef, 3); - var scopeId = Unsafe.ReadUnaligned(ref Unsafe.Add(ref spanRef, 24)); - var ip = new IPAddress(ipBytes, scopeId); - return new IPEndPoint(ip, port); } default: { @@ -310,13 +308,13 @@ namespace Fantasy.Helper { continue; } - + foreach (var add in networkInterface.GetIPProperties().UnicastAddresses) { list.Add(add.Address.ToString()); } } - + return list.ToArray(); } @@ -365,7 +363,7 @@ namespace Fantasy.Helper { return; } - + /* 目前这个问题只有Windows下才会出现。 服务器端在发送数据时捕获到了一个异常, @@ -376,11 +374,11 @@ namespace Fantasy.Helper 想详细了解看下https://blog.csdn.net/sunzhen6251/article/details/124168805*/ const uint IOC_IN = 0x80000000; const uint IOC_VENDOR = 0x18000000; - const int SIO_UDP_CONNRESET = unchecked((int)(IOC_IN | IOC_VENDOR | 12)); - - socket.IOControl(SIO_UDP_CONNRESET, new[] { Convert.ToByte(false) }, null); + const int SIO_UDP_CONNRESET = unchecked((int) (IOC_IN | IOC_VENDOR | 12)); + + socket.IOControl(SIO_UDP_CONNRESET, new[] {Convert.ToByte(false)}, null); } - + /// /// 将 Socket 缓冲区大小设置为操作系统限制。 /// @@ -442,4 +440,4 @@ namespace Fantasy.Helper } } } -#endif +#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/NetworkHelper.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/NetworkHelper.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/NetworkHelper.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/NetworkHelper.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/RandomHelper.cs b/Assets/Scripts/NBC/Runtime/Core/Helper/RandomHelper.cs similarity index 74% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/RandomHelper.cs rename to Assets/Scripts/NBC/Runtime/Core/Helper/RandomHelper.cs index b07ffb8b1..e048b641e 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/RandomHelper.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Helper/RandomHelper.cs @@ -1,14 +1,12 @@ -#if FANTASY_NET || !FANTASY_WEBGL using System; using System.Collections.Generic; using System.Linq; using System.Numerics; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member +using NBC.LowLevel; + #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring as nullable. -namespace Fantasy.Helper +namespace NBC.Helper { /// /// 随机数操作助手类,提供各种随机数生成和操作方法。 @@ -309,107 +307,4 @@ namespace Fantasy.Helper return num.ToString(); } } - - #region FixedBytes - - [StructLayout(LayoutKind.Sequential)] - public struct FixedBytes1 - { - private byte _e0; - - public Span AsSpan() => MemoryMarshal.CreateSpan(ref Unsafe.As(ref Unsafe.AsRef(in this)), Unsafe.SizeOf()); - } - - [StructLayout(LayoutKind.Sequential)] - public struct FixedBytes2 - { - private FixedBytes1 _e0; - private FixedBytes1 _e1; - - public Span AsSpan() => MemoryMarshal.CreateSpan(ref Unsafe.As(ref Unsafe.AsRef(in this)), Unsafe.SizeOf()); - } - - [StructLayout(LayoutKind.Sequential)] - public struct FixedBytes4 - { - private FixedBytes2 _e0; - private FixedBytes2 _e1; - - public Span AsSpan() => MemoryMarshal.CreateSpan(ref Unsafe.As(ref Unsafe.AsRef(in this)), Unsafe.SizeOf()); - } - - [StructLayout(LayoutKind.Sequential)] - public struct FixedBytes8 - { - private FixedBytes4 _e0; - private FixedBytes4 _e1; - - public Span AsSpan() => MemoryMarshal.CreateSpan(ref Unsafe.As(ref Unsafe.AsRef(in this)), Unsafe.SizeOf()); - } - - [StructLayout(LayoutKind.Sequential)] - public struct FixedBytes16 - { - private FixedBytes8 _e0; - private FixedBytes8 _e1; - - public Span AsSpan() => MemoryMarshal.CreateSpan(ref Unsafe.As(ref Unsafe.AsRef(in this)), Unsafe.SizeOf()); - } - - [StructLayout(LayoutKind.Sequential)] - public struct FixedBytes32 - { - private FixedBytes16 _e0; - private FixedBytes16 _e1; - - public Span AsSpan() => MemoryMarshal.CreateSpan(ref Unsafe.As(ref Unsafe.AsRef(in this)), Unsafe.SizeOf()); - } - - [StructLayout(LayoutKind.Sequential)] - public struct FixedBytes64 - { - private FixedBytes32 _e0; - private FixedBytes32 _e1; - - public Span AsSpan() => MemoryMarshal.CreateSpan(ref Unsafe.As(ref Unsafe.AsRef(in this)), Unsafe.SizeOf()); - } - - [StructLayout(LayoutKind.Sequential)] - public struct FixedBytes128 - { - private FixedBytes64 _e0; - private FixedBytes64 _e1; - - public Span AsSpan() => MemoryMarshal.CreateSpan(ref Unsafe.As(ref Unsafe.AsRef(in this)), Unsafe.SizeOf()); - } - - [StructLayout(LayoutKind.Sequential)] - public struct FixedBytes256 - { - private FixedBytes128 _e0; - private FixedBytes128 _e1; - - public Span AsSpan() => MemoryMarshal.CreateSpan(ref Unsafe.As(ref Unsafe.AsRef(in this)), Unsafe.SizeOf()); - } - - [StructLayout(LayoutKind.Sequential)] - public struct FixedBytes512 - { - private FixedBytes256 _e0; - private FixedBytes256 _e1; - - public Span AsSpan() => MemoryMarshal.CreateSpan(ref Unsafe.As(ref Unsafe.AsRef(in this)), Unsafe.SizeOf()); - } - - [StructLayout(LayoutKind.Sequential)] - public struct FixedBytes1024 - { - private FixedBytes512 _e0; - private FixedBytes512 _e1; - - public Span AsSpan() => MemoryMarshal.CreateSpan(ref Unsafe.As(ref Unsafe.AsRef(in this)), Unsafe.SizeOf()); - } - - #endregion } -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/RandomHelper.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/RandomHelper.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/RandomHelper.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/RandomHelper.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/RandomHelperWebgl.cs b/Assets/Scripts/NBC/Runtime/Core/Helper/RandomHelperWebgl.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/RandomHelperWebgl.cs rename to Assets/Scripts/NBC/Runtime/Core/Helper/RandomHelperWebgl.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/RandomHelperWebgl.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/RandomHelperWebgl.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/RandomHelperWebgl.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/RandomHelperWebgl.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/SocketHelper.cs b/Assets/Scripts/NBC/Runtime/Core/Helper/SocketHelper.cs similarity index 94% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/SocketHelper.cs rename to Assets/Scripts/NBC/Runtime/Core/Helper/SocketHelper.cs index 15027c552..92bb06c4d 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/SocketHelper.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Helper/SocketHelper.cs @@ -2,7 +2,7 @@ using System.Net; using System.Net.Sockets; #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -namespace Fantasy.Helper +namespace NBC.Helper { /// /// Socket帮助类 @@ -30,12 +30,8 @@ namespace Fantasy.Helper // need to wrap this in ReceiveFrom_NonAlloc because it's not // obvious that IPEndPointNonAlloc.Create does NOT create a new // IPEndPoint. it saves the result in IPEndPointNonAlloc.temp! -#if FANTASY_UNITY EndPoint casted = remoteEndPoint; return socket.ReceiveFrom(buffer, offset, size, socketFlags, ref casted); -#else - return socket.ReceiveFrom(buffer, offset, size, socketFlags, ref remoteEndPoint); -#endif } // same as above, different parameters diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/SocketHelper.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/SocketHelper.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/SocketHelper.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/SocketHelper.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/TimeHelper.cs b/Assets/Scripts/NBC/Runtime/Core/Helper/TimeHelper.cs similarity index 90% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/TimeHelper.cs rename to Assets/Scripts/NBC/Runtime/Core/Helper/TimeHelper.cs index ae4cbe56f..7c79bd530 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/TimeHelper.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Helper/TimeHelper.cs @@ -1,9 +1,7 @@ using System; -#if FANTASY_UNITY using UnityEngine; -#endif -namespace Fantasy.Helper +namespace NBC.Helper { /// /// 提供与时间相关的帮助方法。 @@ -28,7 +26,7 @@ namespace Fantasy.Helper /// 获取当前时间的毫秒数,从1970年1月1日开始计算。 /// public static long Now => (DateTime.UtcNow.Ticks - Epoch) / 10000; -#if FANTASY_UNITY || FANTASY_CONSOLE + /// /// 与服务器时间的偏差。 /// @@ -37,17 +35,16 @@ namespace Fantasy.Helper /// 获取当前服务器时间的毫秒数,加上与服务器时间的偏差。 /// public static long ServerNow => Now + TimeDiff; -#if FANTASY_UNITY + /// /// 获取当前Unity运行的总时间的毫秒数。 /// public static long UnityNow => (long) (Time.time * 1000); -#endif -#endif + /// /// 根据时间获取时间戳 /// - public static long Transition(this DateTime dateTime) + public static long Transition(DateTime dateTime) { return (dateTime.ToUniversalTime().Ticks - Epoch) / 10000; } @@ -55,7 +52,7 @@ namespace Fantasy.Helper /// /// 根据时间获取 时间戳 /// - public static long TransitionToSeconds(this DateTime dateTime) + public static long TransitionToSeconds(DateTime dateTime) { return (dateTime.ToUniversalTime().Ticks - Epoch) / 10000000; } diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/TimeHelper.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/TimeHelper.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/TimeHelper.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/TimeHelper.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/UnityWebRequest.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/UnityWebRequest.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/UnityWebRequest.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/UnityWebRequest.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/UnityWebRequest/UnityWebRequestHelper.cs b/Assets/Scripts/NBC/Runtime/Core/Helper/UnityWebRequest/UnityWebRequestHelper.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/UnityWebRequest/UnityWebRequestHelper.cs rename to Assets/Scripts/NBC/Runtime/Core/Helper/UnityWebRequest/UnityWebRequestHelper.cs index dbc03347c..a6c790af0 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/UnityWebRequest/UnityWebRequestHelper.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Helper/UnityWebRequest/UnityWebRequestHelper.cs @@ -1,10 +1,9 @@ -#if FANTASY_UNITY using System; -using Fantasy.Async; +using NBC.Async; using UnityEngine; using UnityEngine.Networking; -namespace Fantasy.Unity +namespace NBC.Unity { /// /// UnityWebRequest的帮助类 @@ -240,5 +239,4 @@ namespace Fantasy.Unity return task; } } -} -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/UnityWebRequest/UnityWebRequestHelper.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/UnityWebRequest/UnityWebRequestHelper.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/UnityWebRequest/UnityWebRequestHelper.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/UnityWebRequest/UnityWebRequestHelper.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/WebSocketHelper.cs b/Assets/Scripts/NBC/Runtime/Core/Helper/WebSocketHelper.cs similarity index 98% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/WebSocketHelper.cs rename to Assets/Scripts/NBC/Runtime/Core/Helper/WebSocketHelper.cs index 822db0641..1dd934e36 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/WebSocketHelper.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Helper/WebSocketHelper.cs @@ -1,7 +1,7 @@ using System; using System.Runtime.CompilerServices; -namespace Fantasy.Helper +namespace NBC.Helper { /// /// WebSocket帮助类 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/WebSocketHelper.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/WebSocketHelper.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/WebSocketHelper.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/WebSocketHelper.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/WinPeriod.cs b/Assets/Scripts/NBC/Runtime/Core/Helper/WinPeriod.cs similarity index 96% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/WinPeriod.cs rename to Assets/Scripts/NBC/Runtime/Core/Helper/WinPeriod.cs index a1a5aca6e..39f4a8662 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/WinPeriod.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Helper/WinPeriod.cs @@ -1,6 +1,6 @@ using System.Runtime.InteropServices; -namespace Fantasy.Helper +namespace NBC.Helper { /// /// 精度设置 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/WinPeriod.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Helper/WinPeriod.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/WinPeriod.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Helper/WinPeriod.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory.meta b/Assets/Scripts/NBC/Runtime/Core/IdFactory.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory.meta rename to Assets/Scripts/NBC/Runtime/Core/IdFactory.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/Default.meta b/Assets/Scripts/NBC/Runtime/Core/IdFactory/Default.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/Default.meta rename to Assets/Scripts/NBC/Runtime/Core/IdFactory/Default.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/Default/EntityIdStruct.cs b/Assets/Scripts/NBC/Runtime/Core/IdFactory/Default/EntityIdStruct.cs similarity index 84% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/Default/EntityIdStruct.cs rename to Assets/Scripts/NBC/Runtime/Core/IdFactory/Default/EntityIdStruct.cs index cee27b4a4..7c8c1421e 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/Default/EntityIdStruct.cs +++ b/Assets/Scripts/NBC/Runtime/Core/IdFactory/Default/EntityIdStruct.cs @@ -1,11 +1,11 @@ using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -using Fantasy.Helper; +using NBC.Helper; #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -namespace Fantasy.IdFactory +namespace NBC.IdFactory { /// /// 表示一个唯一实体的ID。 @@ -114,18 +114,6 @@ namespace Fantasy.IdFactory public sealed class EntityIdFactoryTool : IIdFactoryTool { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public bool GetIsPool(ref long entityId) - { - throw new NotImplementedException(); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public bool GetIsPool(long runtimeId) - { - throw new NotImplementedException(); - } - [MethodImpl(MethodImplOptions.AggressiveInlining)] public uint GetTime(ref long entityId) { @@ -133,12 +121,6 @@ namespace Fantasy.IdFactory return (uint)(result & EntityIdStruct.MaskTime); } - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public uint GetTime(long entityId) - { - return GetTime(ref entityId); - } - [MethodImpl(MethodImplOptions.AggressiveInlining)] public uint GetSceneId(ref long entityId) { @@ -146,20 +128,9 @@ namespace Fantasy.IdFactory return (uint)(result & EntityIdStruct.MaskSceneId); } - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public uint GetSceneId(long entityId) - { - return GetSceneId(ref entityId); - } - public byte GetWorldId(ref long entityId) { throw new NotImplementedException(); } - - public byte GetWorldId(long entityId) - { - throw new NotImplementedException(); - } } } \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/Default/EntityIdStruct.cs.meta b/Assets/Scripts/NBC/Runtime/Core/IdFactory/Default/EntityIdStruct.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/Default/EntityIdStruct.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/IdFactory/Default/EntityIdStruct.cs.meta diff --git a/Assets/Scripts/NBC/Runtime/Core/IdFactory/Default/RuntimeIdStruct.cs b/Assets/Scripts/NBC/Runtime/Core/IdFactory/Default/RuntimeIdStruct.cs new file mode 100644 index 000000000..fda56b1b3 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/IdFactory/Default/RuntimeIdStruct.cs @@ -0,0 +1,138 @@ +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using NBC.Helper; + +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member + +namespace NBC.IdFactory +{ + /// + /// 表示一个运行时的ID。 + /// + [StructLayout(LayoutKind.Sequential, Pack = 1)] + public struct RuntimeIdStruct + { + // RuntimeId:23 + 8 + 8 + 25 = 64 + // +-------------------+-----------------------------+--------------------------------------+ + // | time(23) 最大60天 | SceneId(16) 最多65535个Scene | sequence(25) 每秒每个进程能生产33554431个 + // +-------------------+-----------------------------+--------------------------------------+ + public uint Time { get; private set; } + public uint SceneId { get; private set; } + public uint Sequence { get; private set; } + + public const uint MaskSequence = 0x1FFFFFF; + public const uint MaskSceneId = 0xFFFF; + public const uint MaskTime = 0x7FFFFF; + + /// + /// RuntimeIdStruct(如果超过下面参数的设定该ID会失效)。 + /// + /// time不能超过8388607 + /// sceneId不能超过65535 + /// sequence不能超过33554431 + public RuntimeIdStruct(uint time, uint sceneId, uint sequence) + { + // 因为都是在配置表里拿到参数、所以这个不做边界判定、能节省一点点性能。 + Time = time; + SceneId = sceneId; + Sequence = sequence; + } + + public static implicit operator long(RuntimeIdStruct runtimeIdStruct) + { + ulong result = runtimeIdStruct.Sequence; + result |= (ulong)runtimeIdStruct.SceneId << 25; + result |= (ulong)runtimeIdStruct.Time << 41; + return (long)result; + } + + public static implicit operator RuntimeIdStruct(long runtimeId) + { + var result = (ulong)runtimeId; + var runtimeIdStruct = new RuntimeIdStruct + { + Sequence = (uint)(result & MaskSequence) + }; + result >>= 25; + runtimeIdStruct.SceneId = (byte)(result & MaskSceneId); + result >>= 16; + runtimeIdStruct.Time = (uint)(result & MaskTime); + return runtimeIdStruct; + } + } + + public sealed class RuntimeIdFactory : IRuntimeIdFactory + { + private readonly uint _sceneId; + + private uint _lastTime; + private uint _lastSequence; + private readonly long _epochNow; + private readonly long _epoch1970 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).Ticks / 10000; + + private RuntimeIdFactory() { } + + public RuntimeIdFactory(uint sceneId) : this(TimeHelper.Now, sceneId) { } + + public RuntimeIdFactory(long epochNow, uint sceneId) + { + switch (sceneId) + { + case > 65535: + { + throw new NotSupportedException($"sceneId:{sceneId} cannot be greater than 255255"); + } + default: + { + _sceneId = (ushort)sceneId; + _epochNow = epochNow - _epoch1970; + break; + } + } + } + + public long Create + { + get + { + var time = (uint)((TimeHelper.Now - _epochNow) / 1000); + + if (time > _lastTime) + { + _lastTime = time; + _lastSequence = 0; + } + else if (++_lastSequence > RuntimeIdStruct.MaskSequence - 1) + { + _lastTime++; + _lastSequence = 0; + } + + return new RuntimeIdStruct(time, _sceneId, _lastSequence); + } + } + } + + public sealed class RuntimeIdFactoryTool : IIdFactoryTool + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public uint GetTime(ref long runtimeId) + { + var result = (ulong)runtimeId >> 41; + return (uint)(result & RuntimeIdStruct.MaskTime); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public uint GetSceneId(ref long runtimeId) + { + var result = (ulong)runtimeId >> 25; + return (uint)(result & RuntimeIdStruct.MaskSceneId); + } + + public byte GetWorldId(ref long entityId) + { + throw new NotImplementedException(); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/Default/RuntimeIdStruct.cs.meta b/Assets/Scripts/NBC/Runtime/Core/IdFactory/Default/RuntimeIdStruct.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/Default/RuntimeIdStruct.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/IdFactory/Default/RuntimeIdStruct.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/IdFactoryHelper.cs b/Assets/Scripts/NBC/Runtime/Core/IdFactory/IdFactoryHelper.cs similarity index 87% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/IdFactoryHelper.cs rename to Assets/Scripts/NBC/Runtime/Core/IdFactory/IdFactoryHelper.cs index 1d6e1413f..bb51fea8f 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/IdFactoryHelper.cs +++ b/Assets/Scripts/NBC/Runtime/Core/IdFactory/IdFactoryHelper.cs @@ -1,9 +1,10 @@ using System; using System.Runtime.CompilerServices; -using Fantasy.Helper; +using NBC.Helper; + #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring as nullable. -namespace Fantasy.IdFactory +namespace NBC.IdFactory { /// /// Id生成器帮助类 @@ -47,15 +48,6 @@ namespace Fantasy.IdFactory } } - /// - /// 获得当前的IdFactoryType - /// - /// - public static IdFactoryType GetIdFactoryType() - { - return _idFactoryType; - } - internal static IEntityIdFactory EntityIdFactory(uint sceneId, byte worldId) { switch (_idFactoryType) @@ -118,17 +110,17 @@ namespace Fantasy.IdFactory } } - internal static long RuntimeId(bool isPool, uint time, uint sceneId, byte wordId, uint sequence) + internal static long RuntimeId(uint time, uint sceneId, byte wordId, uint sequence) { switch (_idFactoryType) { case IdFactoryType.Default: { - return new RuntimeIdStruct(isPool, time, sceneId, sequence); + return new RuntimeIdStruct(time, sceneId, sequence); } case IdFactoryType.World: { - return new WorldRuntimeIdStruct(isPool, time, sceneId, wordId, sequence); + return new WorldRuntimeIdStruct(time, sceneId, wordId, sequence); } default: { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/IdFactoryHelper.cs.meta b/Assets/Scripts/NBC/Runtime/Core/IdFactory/IdFactoryHelper.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/IdFactoryHelper.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/IdFactory/IdFactoryHelper.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/IdFactoryType.cs b/Assets/Scripts/NBC/Runtime/Core/IdFactory/IdFactoryType.cs similarity index 95% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/IdFactoryType.cs rename to Assets/Scripts/NBC/Runtime/Core/IdFactory/IdFactoryType.cs index d465b5b07..6409d6097 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/IdFactoryType.cs +++ b/Assets/Scripts/NBC/Runtime/Core/IdFactory/IdFactoryType.cs @@ -1,4 +1,4 @@ -namespace Fantasy.IdFactory +namespace NBC.IdFactory { /// /// ID生成器规则 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/IdFactoryType.cs.meta b/Assets/Scripts/NBC/Runtime/Core/IdFactory/IdFactoryType.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/IdFactoryType.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/IdFactory/IdFactoryType.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/Interface.meta b/Assets/Scripts/NBC/Runtime/Core/IdFactory/Interface.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/Interface.meta rename to Assets/Scripts/NBC/Runtime/Core/IdFactory/Interface.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/Interface/IIdFactory.cs b/Assets/Scripts/NBC/Runtime/Core/IdFactory/Interface/IIdFactory.cs similarity index 86% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/Interface/IIdFactory.cs rename to Assets/Scripts/NBC/Runtime/Core/IdFactory/Interface/IIdFactory.cs index 8a7af9309..f064b0c4a 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/Interface/IIdFactory.cs +++ b/Assets/Scripts/NBC/Runtime/Core/IdFactory/Interface/IIdFactory.cs @@ -1,4 +1,4 @@ -namespace Fantasy.IdFactory +namespace NBC.IdFactory { /// /// EntityId生成器接口类 @@ -19,6 +19,6 @@ namespace Fantasy.IdFactory /// /// 创建一个新的Id /// - public long Create(bool isPool); + public long Create { get; } } } \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/Interface/IIdFactory.cs.meta b/Assets/Scripts/NBC/Runtime/Core/IdFactory/Interface/IIdFactory.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/Interface/IIdFactory.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/IdFactory/Interface/IIdFactory.cs.meta diff --git a/Assets/Scripts/NBC/Runtime/Core/IdFactory/Interface/IIdFactoryTool.cs b/Assets/Scripts/NBC/Runtime/Core/IdFactory/Interface/IIdFactoryTool.cs new file mode 100644 index 000000000..e9d97a3a4 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/IdFactory/Interface/IIdFactoryTool.cs @@ -0,0 +1,27 @@ +namespace NBC.IdFactory +{ + /// + /// Id扩展工具接口 + /// + public interface IIdFactoryTool + { + /// + /// 获得创建时间 + /// + /// + /// + public uint GetTime(ref long entityId); + /// + /// 获得SceneId + /// + /// + /// + public uint GetSceneId(ref long entityId); + /// + /// 获得WorldId + /// + /// + /// + public byte GetWorldId(ref long entityId); + } +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/Interface/IIdFactoryTool.cs.meta b/Assets/Scripts/NBC/Runtime/Core/IdFactory/Interface/IIdFactoryTool.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/Interface/IIdFactoryTool.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/IdFactory/Interface/IIdFactoryTool.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/World.meta b/Assets/Scripts/NBC/Runtime/Core/IdFactory/World.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/World.meta rename to Assets/Scripts/NBC/Runtime/Core/IdFactory/World.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/World/WorldEntityIdFactory.cs b/Assets/Scripts/NBC/Runtime/Core/IdFactory/World/WorldEntityIdFactory.cs similarity index 86% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/World/WorldEntityIdFactory.cs rename to Assets/Scripts/NBC/Runtime/Core/IdFactory/World/WorldEntityIdFactory.cs index 97241b011..d6944932a 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/World/WorldEntityIdFactory.cs +++ b/Assets/Scripts/NBC/Runtime/Core/IdFactory/World/WorldEntityIdFactory.cs @@ -1,11 +1,11 @@ using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -using Fantasy.Helper; +using NBC.Helper; #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -namespace Fantasy.IdFactory +namespace NBC.IdFactory { /// /// 表示一个唯一实体的ID。 @@ -127,18 +127,6 @@ namespace Fantasy.IdFactory public sealed class WorldEntityIdFactoryTool : IIdFactoryTool { - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public bool GetIsPool(ref long runtimeId) - { - throw new NotImplementedException(); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public bool GetIsPool(long runtimeId) - { - throw new NotImplementedException(); - } - [MethodImpl(MethodImplOptions.AggressiveInlining)] public uint GetTime(ref long entityId) { @@ -146,12 +134,6 @@ namespace Fantasy.IdFactory return (uint)(result & WorldEntityIdStruct.MaskTime); } - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public uint GetTime(long entityId) - { - return GetTime(ref entityId); - } - [MethodImpl(MethodImplOptions.AggressiveInlining)] public uint GetSceneId(ref long entityId) { @@ -161,23 +143,11 @@ namespace Fantasy.IdFactory return (uint)(result & WorldEntityIdStruct.MaskSceneId) + worldId; } - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public uint GetSceneId(long entityId) - { - return GetSceneId(ref entityId); - } - [MethodImpl(MethodImplOptions.AggressiveInlining)] public byte GetWorldId(ref long entityId) { var result = (ulong)entityId >> 18; return (byte)(result & WorldEntityIdStruct.MaskWordId); } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public byte GetWorldId(long entityId) - { - return GetWorldId(ref entityId); - } } } \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/World/WorldEntityIdFactory.cs.meta b/Assets/Scripts/NBC/Runtime/Core/IdFactory/World/WorldEntityIdFactory.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/World/WorldEntityIdFactory.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/IdFactory/World/WorldEntityIdFactory.cs.meta diff --git a/Assets/Scripts/NBC/Runtime/Core/IdFactory/World/WorldRuntimeIdFactory.cs b/Assets/Scripts/NBC/Runtime/Core/IdFactory/World/WorldRuntimeIdFactory.cs new file mode 100644 index 000000000..7c3a14f65 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/IdFactory/World/WorldRuntimeIdFactory.cs @@ -0,0 +1,155 @@ +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using NBC.Helper; + +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member + +namespace NBC.IdFactory +{ + /// + /// 表示一个运行时的ID。 + /// + [StructLayout(LayoutKind.Sequential, Pack = 1)] + public struct WorldRuntimeIdStruct + { + // RuntimeId:23 + 8 + 8 + 25 = 64 + // +-------------------+--------------------------+-----------------------+--------------------------------------+ + // | time(23) 最大60天 | SceneId(8) 最多255个Scene | WordId(8) 最多255个世界 | sequence(25) 每秒每个进程能生产33554431个 + // +-------------------+--------------------------+-----------------------+--------------------------------------+ + public uint Time { get; private set; } + public uint SceneId { get; private set; } + public byte WordId { get; private set; } + public uint Sequence { get; private set; } + + public const uint MaskSequence = 0x1FFFFFF; + public const uint MaskSceneId = 0xFF; + public const uint MaskWordId = 0xFF; + public const uint MaskTime = 0x7FFFFF; + + /// + /// WorldRuntimeIdStruct(如果超过下面参数的设定该ID会失效)。 + /// + /// time不能超过8388607 + /// sceneId不能超过255 + /// wordId不能超过255 + /// sequence不能超过33554431 + public WorldRuntimeIdStruct(uint time, uint sceneId, byte wordId, uint sequence) + { + // 因为都是在配置表里拿到参数、所以这个不做边界判定、能节省一点点性能。 + Time = time; + SceneId = sceneId; + WordId = wordId; + Sequence = sequence; + } + + public static implicit operator long(WorldRuntimeIdStruct runtimeIdStruct) + { + ulong result = runtimeIdStruct.Sequence; + result |= (ulong)runtimeIdStruct.WordId << 25; + result |= (ulong)(runtimeIdStruct.SceneId % (runtimeIdStruct.WordId * 1000)) << 33; + result |= (ulong)runtimeIdStruct.Time << 41; + return (long)result; + } + + public static implicit operator WorldRuntimeIdStruct(long runtimeId) + { + var result = (ulong)runtimeId; + var runtimeIdStruct = new WorldRuntimeIdStruct + { + Sequence = (uint)(result & MaskSequence) + }; + result >>= 25; + runtimeIdStruct.WordId = (byte)(result & MaskWordId); + result >>= 8; + runtimeIdStruct.SceneId = (uint)(result & MaskSceneId) + (uint)runtimeIdStruct.WordId * 1000; + result >>= 8; + runtimeIdStruct.Time = (uint)(result & MaskTime); + return runtimeIdStruct; + } + } + + public sealed class WorldRuntimeIdFactory : IRuntimeIdFactory + { + private readonly uint _sceneId; + private readonly byte _worldId; + + private uint _lastTime; + private uint _lastSequence; + private readonly long _epochNow; + private readonly long _epoch1970 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).Ticks / 10000; + + private WorldRuntimeIdFactory() { } + + public WorldRuntimeIdFactory(uint sceneId, byte worldId) : this(TimeHelper.Now, sceneId, worldId) { } + + public WorldRuntimeIdFactory(long epochNow, uint sceneId, byte worldId) + { + switch (sceneId) + { + case > 255255: + { + throw new NotSupportedException($"sceneId:{sceneId} cannot be greater than 255255"); + } + case < 1001: + { + throw new NotSupportedException($"sceneId:{sceneId} cannot be less than 1001"); + } + default: + { + _sceneId = sceneId; + _worldId = worldId; + _epochNow = epochNow - _epoch1970; + break; + } + } + } + + public long Create + { + get + { + var time = (uint)((TimeHelper.Now - _epochNow) / 1000); + + if (time > _lastTime) + { + _lastTime = time; + _lastSequence = 0; + } + else if (++_lastSequence > WorldRuntimeIdStruct.MaskSequence - 1) + { + _lastTime++; + _lastSequence = 0; + } + + return new WorldRuntimeIdStruct(time, _sceneId, _worldId, _lastSequence); + } + } + } + + public sealed class WorldRuntimeIdFactoryTool : IIdFactoryTool + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public uint GetTime(ref long runtimeId) + { + var result = (ulong)runtimeId >> 41; + return (uint)(result & WorldRuntimeIdStruct.MaskTime); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public uint GetSceneId(ref long runtimeId) + { + var result = (ulong)runtimeId >> 25; + var worldId = (uint)(result & WorldRuntimeIdStruct.MaskWordId) * 1000; + result >>= 8; + return (uint)(result & WorldRuntimeIdStruct.MaskSceneId) + worldId; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public byte GetWorldId(ref long runtimeId) + { + var result = (ulong)runtimeId >> 25; + return (byte)(result & WorldRuntimeIdStruct.MaskWordId); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/World/WorldRuntimeIdFactory.cs.meta b/Assets/Scripts/NBC/Runtime/Core/IdFactory/World/WorldRuntimeIdFactory.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/World/WorldRuntimeIdFactory.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/IdFactory/World/WorldRuntimeIdFactory.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/InnerErrorCode.cs b/Assets/Scripts/NBC/Runtime/Core/InnerErrorCode.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/InnerErrorCode.cs rename to Assets/Scripts/NBC/Runtime/Core/InnerErrorCode.cs index e549a22dd..c7bf361d4 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/InnerErrorCode.cs +++ b/Assets/Scripts/NBC/Runtime/Core/InnerErrorCode.cs @@ -1,4 +1,4 @@ -namespace Fantasy.Network +namespace NBC.Network { /// /// 定义 Fantasy 框架中的内部错误代码。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/InnerErrorCode.cs.meta b/Assets/Scripts/NBC/Runtime/Core/InnerErrorCode.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/InnerErrorCode.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/InnerErrorCode.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Log.meta b/Assets/Scripts/NBC/Runtime/Core/Log.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Log.meta rename to Assets/Scripts/NBC/Runtime/Core/Log.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Log/ILog.cs b/Assets/Scripts/NBC/Runtime/Core/Log/ILog.cs similarity index 90% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Log/ILog.cs rename to Assets/Scripts/NBC/Runtime/Core/Log/ILog.cs index b01e8579a..9a06babf5 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Log/ILog.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Log/ILog.cs @@ -1,20 +1,10 @@ -#if FANTASY_NET -using Fantasy.Platform.Net; -#endif -namespace Fantasy +namespace NBC { /// /// 定义日志记录功能的接口。 /// public interface ILog { -#if FANTASY_NET - /// - /// 初始化 - /// - /// - void Initialize(ProcessMode processMode); -#endif /// /// 记录跟踪级别的日志消息。 /// diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Log/ILog.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Log/ILog.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Log/ILog.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Log/ILog.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Log/Log.cs b/Assets/Scripts/NBC/Runtime/Core/Log/Log.cs similarity index 89% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Log/Log.cs rename to Assets/Scripts/NBC/Runtime/Core/Log/Log.cs index f90557fe9..337115606 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Log/Log.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Log/Log.cs @@ -1,14 +1,10 @@ using System; using System.Diagnostics; -#if FANTASY_NET -using Fantasy.Platform.Net; -// ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract -#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. -#endif + #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. -namespace Fantasy +namespace NBC { /// /// 提供日志记录功能的静态类。 @@ -16,27 +12,20 @@ namespace Fantasy public static class Log { private static ILog _logCore; - + private static bool _isRegister; /// - /// 初始化Log系统 + /// 注册一个日志系统 /// - public static void Initialize(ILog log = null) + /// + public static void Register(ILog log) { - if (log == null) + if (_isRegister) { -#if FANTASY_NET - _logCore = new ConsoleLog(); -#endif -#if FANTASY_UNITY - _logCore = new UnityLog(); -#endif return; } _logCore = log; -#if FANTASY_NET - _logCore.Initialize(ProgramDefine.RuntimeMode); -#endif + _isRegister = true; } /// diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Log/Log.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Log/Log.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Log/Log.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Log/Log.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Log/UnityLog.cs b/Assets/Scripts/NBC/Runtime/Core/Log/UnityLog.cs similarity index 97% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Log/UnityLog.cs rename to Assets/Scripts/NBC/Runtime/Core/Log/UnityLog.cs index df9544472..60b427b81 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Log/UnityLog.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Log/UnityLog.cs @@ -10,8 +10,7 @@ using UnityEditorInternal; using System; #endif -#if FANTASY_UNITY -namespace Fantasy +namespace NBC { public class UnityLog : ILog { @@ -71,4 +70,3 @@ namespace Fantasy } } } -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Log/UnityLog.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Log/UnityLog.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Log/UnityLog.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Log/UnityLog.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime.meta b/Assets/Scripts/NBC/Runtime/Core/LowLevel.meta similarity index 77% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime.meta rename to Assets/Scripts/NBC/Runtime/Core/LowLevel.meta index f32afc154..4d44e6fc3 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime.meta +++ b/Assets/Scripts/NBC/Runtime/Core/LowLevel.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 78c51fb0052fac049a29ae6289cda649 +guid: 5e43a71d0da8b419eb7cbef21c8c5f33 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Scripts/NBC/Runtime/Core/LowLevel/FixedBytes.cs b/Assets/Scripts/NBC/Runtime/Core/LowLevel/FixedBytes.cs new file mode 100644 index 000000000..72d4fe2c9 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/LowLevel/FixedBytes.cs @@ -0,0 +1,105 @@ +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member + +namespace NBC.LowLevel +{ + [StructLayout(LayoutKind.Sequential)] + public struct FixedBytes1 + { + private byte _e0; + + public Span AsSpan() => MemoryMarshal.CreateSpan(ref Unsafe.As(ref Unsafe.AsRef(in this)), Unsafe.SizeOf()); + } + + [StructLayout(LayoutKind.Sequential)] + public struct FixedBytes2 + { + private FixedBytes1 _e0; + private FixedBytes1 _e1; + + public Span AsSpan() => MemoryMarshal.CreateSpan(ref Unsafe.As(ref Unsafe.AsRef(in this)), Unsafe.SizeOf()); + } + + [StructLayout(LayoutKind.Sequential)] + public struct FixedBytes4 + { + private FixedBytes2 _e0; + private FixedBytes2 _e1; + + public Span AsSpan() => MemoryMarshal.CreateSpan(ref Unsafe.As(ref Unsafe.AsRef(in this)), Unsafe.SizeOf()); + } + + [StructLayout(LayoutKind.Sequential)] + public struct FixedBytes8 + { + private FixedBytes4 _e0; + private FixedBytes4 _e1; + + public Span AsSpan() => MemoryMarshal.CreateSpan(ref Unsafe.As(ref Unsafe.AsRef(in this)), Unsafe.SizeOf()); + } + + [StructLayout(LayoutKind.Sequential)] + public struct FixedBytes16 + { + private FixedBytes8 _e0; + private FixedBytes8 _e1; + + public Span AsSpan() => MemoryMarshal.CreateSpan(ref Unsafe.As(ref Unsafe.AsRef(in this)), Unsafe.SizeOf()); + } + + [StructLayout(LayoutKind.Sequential)] + public struct FixedBytes32 + { + private FixedBytes16 _e0; + private FixedBytes16 _e1; + + public Span AsSpan() => MemoryMarshal.CreateSpan(ref Unsafe.As(ref Unsafe.AsRef(in this)), Unsafe.SizeOf()); + } + + [StructLayout(LayoutKind.Sequential)] + public struct FixedBytes64 + { + private FixedBytes32 _e0; + private FixedBytes32 _e1; + + public Span AsSpan() => MemoryMarshal.CreateSpan(ref Unsafe.As(ref Unsafe.AsRef(in this)), Unsafe.SizeOf()); + } + + [StructLayout(LayoutKind.Sequential)] + public struct FixedBytes128 + { + private FixedBytes64 _e0; + private FixedBytes64 _e1; + + public Span AsSpan() => MemoryMarshal.CreateSpan(ref Unsafe.As(ref Unsafe.AsRef(in this)), Unsafe.SizeOf()); + } + + [StructLayout(LayoutKind.Sequential)] + public struct FixedBytes256 + { + private FixedBytes128 _e0; + private FixedBytes128 _e1; + + public Span AsSpan() => MemoryMarshal.CreateSpan(ref Unsafe.As(ref Unsafe.AsRef(in this)), Unsafe.SizeOf()); + } + + [StructLayout(LayoutKind.Sequential)] + public struct FixedBytes512 + { + private FixedBytes256 _e0; + private FixedBytes256 _e1; + + public Span AsSpan() => MemoryMarshal.CreateSpan(ref Unsafe.As(ref Unsafe.AsRef(in this)), Unsafe.SizeOf()); + } + + [StructLayout(LayoutKind.Sequential)] + public struct FixedBytes1024 + { + private FixedBytes512 _e0; + private FixedBytes512 _e1; + + public Span AsSpan() => MemoryMarshal.CreateSpan(ref Unsafe.As(ref Unsafe.AsRef(in this)), Unsafe.SizeOf()); + } +} diff --git a/Assets/Scripts/NBC/Runtime/Core/LowLevel/FixedBytes.cs.meta b/Assets/Scripts/NBC/Runtime/Core/LowLevel/FixedBytes.cs.meta new file mode 100644 index 000000000..3cd894142 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/LowLevel/FixedBytes.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 47dc46c1900aa42ae940be683ce35ccf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/NBC/Runtime/Core/LowLevel/XxHash.cs b/Assets/Scripts/NBC/Runtime/Core/LowLevel/XxHash.cs new file mode 100644 index 000000000..cef02bcd9 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/LowLevel/XxHash.cs @@ -0,0 +1,171 @@ +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +#pragma warning disable CS1591 + +namespace NBC.LowLevel +{ + public static class XxHash + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static int Hash32(string obj, uint seed = 0) => Hash32(obj.AsSpan(), seed); + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static int Hash32(in T obj, uint seed = 0) where T : unmanaged => Hash32(MemoryMarshal.CreateReadOnlySpan(ref Unsafe.As(ref Unsafe.AsRef(in obj)), Unsafe.SizeOf()), seed); + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static int Hash32(ReadOnlySpan buffer, uint seed = 0) where T : unmanaged => Hash32(MemoryMarshal.Cast(buffer), seed); + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static int Hash32(ReadOnlySpan buffer, uint seed = 0) + { + int length = buffer.Length; + ref byte local1 = ref MemoryMarshal.GetReference(buffer); + uint num1; + if (buffer.Length >= 16) + { + uint num2 = seed + 606290984U; + uint num3 = seed + 2246822519U; + uint num4 = seed; + uint num5 = seed - 2654435761U; + for (; length >= 16; length -= 16) + { + const nint elementOffset1 = 4; + const nint elementOffset2 = 8; + const nint elementOffset3 = 12; + nint byteOffset = buffer.Length - length; + ref byte local2 = ref Unsafe.AddByteOffset(ref local1, byteOffset); + uint num6 = num2 + Unsafe.ReadUnaligned(ref local2) * 2246822519U; + num2 = (uint)((((int)num6 << 13) | (int)(num6 >> 19)) * -1640531535); + uint num7 = num3 + Unsafe.ReadUnaligned(ref Unsafe.AddByteOffset(ref local2, elementOffset1)) * 2246822519U; + num3 = (uint)((((int)num7 << 13) | (int)(num7 >> 19)) * -1640531535); + uint num8 = num4 + Unsafe.ReadUnaligned(ref Unsafe.AddByteOffset(ref local2, elementOffset2)) * 2246822519U; + num4 = (uint)((((int)num8 << 13) | (int)(num8 >> 19)) * -1640531535); + uint num9 = num5 + Unsafe.ReadUnaligned(ref Unsafe.AddByteOffset(ref local2, elementOffset3)) * 2246822519U; + num5 = (uint)((((int)num9 << 13) | (int)(num9 >> 19)) * -1640531535); + } + + num1 = (uint)((((int)num2 << 1) | (int)(num2 >> 31)) + (((int)num3 << 7) | (int)(num3 >> 25)) + (((int)num4 << 12) | (int)(num4 >> 20)) + (((int)num5 << 18) | (int)(num5 >> 14)) + buffer.Length); + } + else + num1 = (uint)((int)seed + 374761393 + buffer.Length); + + for (; length >= 4; length -= 4) + { + nint byteOffset = buffer.Length - length; + uint num10 = Unsafe.ReadUnaligned(ref Unsafe.AddByteOffset(ref local1, byteOffset)); + uint num11 = num1 + num10 * 3266489917U; + num1 = (uint)((((int)num11 << 17) | (int)(num11 >> 15)) * 668265263); + } + + nint byteOffset1 = buffer.Length - length; + ref byte local3 = ref Unsafe.AddByteOffset(ref local1, byteOffset1); + for (int index = 0; index < length; ++index) + { + nint byteOffset2 = index; + uint num12 = Unsafe.AddByteOffset(ref local3, byteOffset2); + uint num13 = num1 + num12 * 374761393U; + num1 = (uint)((((int)num13 << 11) | (int)(num13 >> 21)) * -1640531535); + } + +#if NET7_0_OR_GREATER + int num14 = ((int)num1 ^ (int)(num1 >> 15)) * -2048144777; + int num15 = (num14 ^ (num14 >>> 13)) * -1028477379; + return num15 ^ (num15 >>> 16); +#else + int num14 = ((int)num1 ^ (int)(num1 >> 15)) * -2048144777; + int num15 = (num14 ^ (int)((uint)num14 >> 13)) * -1028477379; + return num15 ^ (int)((uint)num15 >> 16); +#endif + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static long Hash64(string obj, ulong seed = 0) => Hash64(obj.AsSpan(), seed); + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static long Hash64(in T obj, ulong seed = 0) where T : unmanaged => Hash64(MemoryMarshal.CreateReadOnlySpan(ref Unsafe.As(ref Unsafe.AsRef(in obj)), Unsafe.SizeOf()), seed); + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static long Hash64(ReadOnlySpan buffer, ulong seed = 0) where T : unmanaged => Hash64(MemoryMarshal.Cast(buffer), seed); + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static long Hash64(ReadOnlySpan buffer, ulong seed = 0) + { + ref var local1 = ref MemoryMarshal.GetReference(buffer); + var length = buffer.Length; + ulong num1; + if (buffer.Length >= 32) + { + var num2 = seed + 6983438078262162902UL; + var num3 = seed + 14029467366897019727UL; + var num4 = seed; + var num5 = seed - 11400714785074694791UL; + for (; length >= 32; length -= 32) + { + ref var local2 = ref Unsafe.AddByteOffset(ref local1, (IntPtr)(buffer.Length - length)); + var num6 = num2 + Unsafe.ReadUnaligned(ref local2) * 14029467366897019727UL; + num2 = (ulong)((((long)num6 << 31) | (long)(num6 >> 33)) * -7046029288634856825L); + var num7 = num3 + Unsafe.ReadUnaligned(ref Unsafe.AddByteOffset(ref local2, new UIntPtr(8U))) * 14029467366897019727UL; + num3 = (ulong)((((long)num7 << 31) | (long)(num7 >> 33)) * -7046029288634856825L); + var num8 = num4 + Unsafe.ReadUnaligned(ref Unsafe.AddByteOffset(ref local2, new UIntPtr(16U))) * 14029467366897019727UL; + num4 = (ulong)((((long)num8 << 31) | (long)(num8 >> 33)) * -7046029288634856825L); + var num9 = num5 + Unsafe.ReadUnaligned(ref Unsafe.AddByteOffset(ref local2, new UIntPtr(24U))) * 14029467366897019727UL; + num5 = (ulong)((((long)num9 << 31) | (long)(num9 >> 33)) * -7046029288634856825L); + } + + var num10 = (((long)num2 << 1) | (long)(num2 >> 63)) + (((long)num3 << 7) | (long)(num3 >> 57)) + (((long)num4 << 12) | (long)(num4 >> 52)) + (((long)num5 << 18) | (long)(num5 >> 46)); + var num11 = num2 * 14029467366897019727UL; + var num12 = (((long)num11 << 31) | (long)(num11 >> 33)) * -7046029288634856825L; + var num13 = (num10 ^ num12) * -7046029288634856825L + -8796714831421723037L; + var num14 = num3 * 14029467366897019727UL; + var num15 = (((long)num14 << 31) | (long)(num14 >> 33)) * -7046029288634856825L; + var num16 = (num13 ^ num15) * -7046029288634856825L + -8796714831421723037L; + var num17 = num4 * 14029467366897019727UL; + var num18 = (((long)num17 << 31) | (long)(num17 >> 33)) * -7046029288634856825L; + var num19 = (num16 ^ num18) * -7046029288634856825L + -8796714831421723037L; + var num20 = num5 * 14029467366897019727UL; + var num21 = (((long)num20 << 31) | (long)(num20 >> 33)) * -7046029288634856825L; + num1 = (ulong)((num19 ^ num21) * -7046029288634856825L + -8796714831421723037L); + } + else + num1 = seed + 2870177450012600261UL; + + var num22 = num1 + (ulong)buffer.Length; + for (; length >= 8; length -= 8) + { + var num23 = Unsafe.ReadUnaligned(ref Unsafe.AddByteOffset(ref local1, (IntPtr)(buffer.Length - length))) * 14029467366897019727UL; + var num24 = (ulong)((((long)num23 << 31) | (long)(num23 >> 33)) * -7046029288634856825L); + var num25 = num22 ^ num24; + num22 = (ulong)((((long)num25 << 27) | (long)(num25 >> 37)) * -7046029288634856825L + -8796714831421723037L); + } + + if (length >= 4) + { + ulong num26 = Unsafe.ReadUnaligned(ref Unsafe.AddByteOffset(ref local1, (IntPtr)(buffer.Length - length))); + var num27 = num22 ^ (num26 * 11400714785074694791UL); + num22 = (ulong)((((long)num27 << 23) | (long)(num27 >> 41)) * -4417276706812531889L + 1609587929392839161L); + length -= 4; + } + + for (var byteOffset = 0; byteOffset < length; ++byteOffset) + { + ulong num28 = Unsafe.AddByteOffset(ref Unsafe.AddByteOffset(ref local1, (IntPtr)(buffer.Length - length)), (IntPtr)byteOffset); + var num29 = num22 ^ (num28 * 2870177450012600261UL); + num22 = (ulong)((((long)num29 << 11) | (long)(num29 >> 53)) * -7046029288634856825L); + } + +#if NET7_0_OR_GREATER + var num30 = (long)num22; + var num31 = (num30 ^ (num30 >>> 33)) * -4417276706812531889L; + var num32 = (num31 ^ (num31 >>> 29)) * 1609587929392839161L; + return num32 ^ (num32 >>> 32); +#else + var num30 = (long)num22; + var num31 = (num30 ^ (long)((ulong)num30 >> 33)) * -4417276706812531889L; + var num32 = (num31 ^ (long)((ulong)num31 >> 29)) * 1609587929392839161L; + return num32 ^ (long)((ulong)num32 >> 32); +#endif + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/NBC/Runtime/Core/LowLevel/XxHash.cs.meta b/Assets/Scripts/NBC/Runtime/Core/LowLevel/XxHash.cs.meta new file mode 100644 index 000000000..822ee33b8 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/LowLevel/XxHash.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c48425f83e5934ed89216dd6ccc52288 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network.meta b/Assets/Scripts/NBC/Runtime/Core/Network.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network.meta rename to Assets/Scripts/NBC/Runtime/Core/Network.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/MemoryStreamBufferPool.cs b/Assets/Scripts/NBC/Runtime/Core/Network/MemoryStreamBufferPool.cs similarity index 98% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/MemoryStreamBufferPool.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/MemoryStreamBufferPool.cs index 6e6d4f7a8..53da81b73 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/MemoryStreamBufferPool.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/MemoryStreamBufferPool.cs @@ -1,9 +1,10 @@ using System; using System.Collections.Generic; -using Fantasy.Serialize; +using NBC.Serialize; + #pragma warning disable CS8603 // Possible null reference return. -namespace Fantasy.Network +namespace NBC.Network { /// /// MemoryStreamBuffer对象池类 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/MemoryStreamBufferPool.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/MemoryStreamBufferPool.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/MemoryStreamBufferPool.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/MemoryStreamBufferPool.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Dispatcher.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Dispatcher.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Dispatcher.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/Dispatcher.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Dispatcher/Interface.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Dispatcher/Interface.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Dispatcher/Interface.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/Dispatcher/Interface.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Dispatcher/Interface/IMessageHandler.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Dispatcher/Interface/IMessageHandler.cs similarity index 98% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Dispatcher/Interface/IMessageHandler.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/Dispatcher/Interface/IMessageHandler.cs index d8f928e10..047660f05 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Dispatcher/Interface/IMessageHandler.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Dispatcher/Interface/IMessageHandler.cs @@ -2,11 +2,11 @@ using System; using System.Collections.Generic; -using Fantasy.Async; -using Fantasy.Network; -using Fantasy.Serialize; +using NBC.Network; +using NBC.Async; +using NBC.Serialize; -namespace Fantasy.Network.Interface +namespace NBC.Network.Interface { /// /// 表示消息处理器的接口,处理特定类型的消息。 @@ -55,6 +55,7 @@ namespace Fantasy.Network.Interface { try { + await Run(session, (T) message); } catch (Exception e) @@ -147,7 +148,7 @@ namespace Fantasy.Network.Interface /// 异步任务。 protected abstract FTask Run(Session session, TRequest request, TResponse response, Action reply); } -#if FANTASY_UNITY + public interface IMessageDelegateHandler { /// @@ -216,5 +217,4 @@ namespace Fantasy.Network.Interface _delegates.Clear(); } } -#endif } \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Dispatcher/Interface/IMessageHandler.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Dispatcher/Interface/IMessageHandler.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Dispatcher/Interface/IMessageHandler.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/Dispatcher/Interface/IMessageHandler.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Dispatcher/Interface/IRouteMessageHandler.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Dispatcher/Interface/IRouteMessageHandler.cs similarity index 94% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Dispatcher/Interface/IRouteMessageHandler.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/Dispatcher/Interface/IRouteMessageHandler.cs index dac96934d..3bef46525 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Dispatcher/Interface/IRouteMessageHandler.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Dispatcher/Interface/IRouteMessageHandler.cs @@ -1,8 +1,8 @@ -using Fantasy.Async; -using Fantasy.Entitas; -using Fantasy.InnerMessage; -using Fantasy.Network; -using Fantasy.Serialize; +using NBC.Async; +using NBC.Entitas; +using NBC.InnerMessage; +using NBC.Network; +using NBC.Serialize; #if FANTASY_NET // ReSharper disable InconsistentNaming @@ -65,7 +65,7 @@ namespace Fantasy.Network.Interface if (entity is not TEntity tEntity) { - Log.Error($"{this.GetType().Name} Route type conversion error: {entity.GetType().Name} to {typeof(TEntity).Name}"); + Log.Error($"Route type conversion error: {entity.GetType().Name} to {nameof(TEntity)}"); return; } @@ -128,7 +128,7 @@ namespace Fantasy.Network.Interface if (entity is not TEntity tEntity) { - Log.Error($"{this.GetType().Name} Route type conversion error: {entity.GetType().Name} to {typeof(TEntity).Name}"); + Log.Error($"Route type conversion error: {entity.GetType().Name} to {nameof(TEntity)}"); return; } @@ -216,7 +216,7 @@ namespace Fantasy.Network.Interface if (entity is not TEntity tEntity) { - Log.Error($"{this.GetType().Name} Route type conversion error: {entity.GetType().Name} to {typeof(TEntity).Name}"); + Log.Error($"Route type conversion error: {entity.GetType().Name} to {nameof(TEntity)}"); return; } @@ -235,7 +235,7 @@ namespace Fantasy.Network.Interface } finally { - session.Send(new RouteResponse(), typeof(RouteResponse), rpcId); + session.Send(new RouteResponse(), rpcId); } } @@ -281,7 +281,7 @@ namespace Fantasy.Network.Interface if (entity is not TEntity tEntity) { - Log.Error($"{this.GetType().Name} Route type conversion error: {entity.GetType().Name} to {typeof(TEntity).Name}"); + Log.Error($"Route type conversion error: {entity.GetType().Name} to {nameof(TEntity)}"); return; } @@ -368,7 +368,7 @@ namespace Fantasy.Network.Interface if (entity is not TEntity tEntity) { - Log.Error($"{this.GetType().Name} Route type conversion error: {entity.GetType().Name} to {typeof(TEntity).Name}"); + Log.Error($"Route type conversion error: {entity.GetType().Name} to {nameof(TEntity)}"); return; } @@ -433,7 +433,7 @@ namespace Fantasy.Network.Interface if (entity is not TEntity tEntity) { - Log.Error($"{this.GetType().Name} Route type conversion error: {entity.GetType().Name} to {typeof(TEntity).Name}"); + Log.Error($"Route type conversion error: {entity.GetType().Name} to {nameof(TEntity)}"); return; } diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Dispatcher/Interface/IRouteMessageHandler.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Dispatcher/Interface/IRouteMessageHandler.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Dispatcher/Interface/IRouteMessageHandler.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/Dispatcher/Interface/IRouteMessageHandler.cs.meta diff --git a/Assets/Scripts/NBC/Runtime/Core/Network/Message/Dispatcher/MessageDispatcherComponent.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Dispatcher/MessageDispatcherComponent.cs new file mode 100644 index 000000000..2ae6d013f --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Dispatcher/MessageDispatcherComponent.cs @@ -0,0 +1,337 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using NBC.Network; +using NBC.Assembly; +using NBC.Async; +using NBC.DataStructure.Collection; +using NBC.DataStructure.Dictionary; +using NBC.Entitas; +using NBC.InnerMessage; + +#pragma warning disable CS8604 // Possible null reference argument. + +#pragma warning disable CS8602 // Dereference of a possibly null reference. +#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. +#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. + +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member +namespace NBC.Network.Interface +{ + /// + /// 用于存储消息处理器的信息,包括类型和对象实例。 + /// + /// 消息处理器的类型 + internal sealed class HandlerInfo + { + /// + /// 获取或设置消息处理器对象。 + /// + public T Obj; + /// + /// 获取或设置消息处理器的类型。 + /// + public Type Type; + } + + /// + /// 网络消息分发组件。 + /// + public sealed class MessageDispatcherComponent : Entity, IAssembly + { + public long AssemblyIdentity { get; set; } + private readonly Dictionary _responseTypes = new Dictionary(); + private readonly DoubleMapDictionary _networkProtocols = new DoubleMapDictionary(); + private readonly Dictionary _messageHandlers = new Dictionary(); + private readonly OneToManyList _assemblyResponseTypes = new OneToManyList(); + private readonly OneToManyList _assemblyNetworkProtocols = new OneToManyList(); + private readonly OneToManyList> _assemblyMessageHandlers = new OneToManyList>(); + private readonly Dictionary _messageDelegateHandlers = new Dictionary(); + + private CoroutineLock _receiveRouteMessageLock; + + #region Initialize + + internal async FTask Initialize() + { + _receiveRouteMessageLock = Scene.CoroutineLockComponent.Create(GetType().TypeHandle.Value.ToInt64()); + await AssemblySystem.Register(this); + return this; + } + + public async FTask Load(long assemblyIdentity) + { + var tcs = FTask.Create(false); + Scene?.ThreadSynchronizationContext.Post(() => + { + LoadInner(assemblyIdentity); + tcs.SetResult(); + }); + await tcs; + } + + private void LoadInner(long assemblyIdentity) + { + var nmsl = AssemblySystem.ForEach(assemblyIdentity, typeof(IMessage)); + // 遍历所有实现了IMessage接口的类型,获取OpCode并添加到_networkProtocols字典中 + foreach (var type in nmsl) + { + var obj = (IMessage) Activator.CreateInstance(type); + var opCode = obj.OpCode(); + + _networkProtocols.Add(opCode, type); + + var responseType = type.GetProperty("ResponseType"); + + // 如果类型具有ResponseType属性,将其添加到_responseTypes字典中 + if (responseType != null) + { + _responseTypes.Add(type, responseType.PropertyType); + _assemblyResponseTypes.Add(assemblyIdentity, type); + } + + _assemblyNetworkProtocols.Add(assemblyIdentity, opCode); + } + + // 遍历所有实现了IMessageHandler接口的类型,创建实例并添加到_messageHandlers字典中 + foreach (var type in AssemblySystem.ForEach(assemblyIdentity, typeof(IMessageHandler))) + { + var obj = (IMessageHandler) Activator.CreateInstance(type); + + if (obj == null) + { + throw new Exception($"message handle {type.Name} is null"); + } + + var key = obj.Type(); + _messageHandlers.Add(key, obj); + _assemblyMessageHandlers.Add(assemblyIdentity, new HandlerInfo() + { + Obj = obj, Type = key + }); + } + + // 如果编译符号FANTASY_NET存在,遍历所有实现了IRouteMessageHandler接口的类型,创建实例并添加到_routeMessageHandlers字典中 +#if FANTASY_NET + foreach (var type in AssemblySystem.ForEach(assemblyIdentity, typeof(IRouteMessageHandler))) + { + var obj = (IRouteMessageHandler) Activator.CreateInstance(type); + + if (obj == null) + { + throw new Exception($"message handle {type.Name} is null"); + } + + var key = obj.Type(); + _routeMessageHandlers.Add(key, obj); + _assemblyRouteMessageHandlers.Add(assemblyIdentity, new HandlerInfo() + { + Obj = obj, Type = key + }); + } + + foreach (var type in AssemblySystem.ForEach(assemblyIdentity, typeof(ICustomRoute))) + { + var obj = (ICustomRoute) Activator.CreateInstance(type); + + if (obj == null) + { + throw new Exception($"message handle {type.Name} is null"); + } + + var opCode = obj.OpCode(); + _customRouteMap[opCode] = obj.RouteType; + _assemblyCustomRouteMap.Add(assemblyIdentity, opCode); + } +#endif + } + + public async FTask ReLoad(long assemblyIdentity) + { + var tcs = FTask.Create(false); + Scene?.ThreadSynchronizationContext.Post(() => + { + OnUnLoadInner(assemblyIdentity); + LoadInner(assemblyIdentity); + tcs.SetResult(); + }); + await tcs; + } + + public async FTask OnUnLoad(long assemblyIdentity) + { + var tcs = FTask.Create(false); + Scene?.ThreadSynchronizationContext.Post(() => + { + OnUnLoadInner(assemblyIdentity); + tcs.SetResult(); + }); + await tcs; + } + + private void OnUnLoadInner(long assemblyIdentity) + { + // 移除程序集对应的ResponseType类型和OpCode信息 + if (_assemblyResponseTypes.TryGetValue(assemblyIdentity, out var removeResponseTypes)) + { + foreach (var removeResponseType in removeResponseTypes) + { + _responseTypes.Remove(removeResponseType); + } + + _assemblyResponseTypes.RemoveByKey(assemblyIdentity); + } + + if (_assemblyNetworkProtocols.TryGetValue(assemblyIdentity, out var removeNetworkProtocols)) + { + foreach (var removeNetworkProtocol in removeNetworkProtocols) + { + _networkProtocols.RemoveByKey(removeNetworkProtocol); + } + + _assemblyNetworkProtocols.RemoveByKey(assemblyIdentity); + } + + // 移除程序集对应的消息处理器信息 + if (_assemblyMessageHandlers.TryGetValue(assemblyIdentity, out var removeMessageHandlers)) + { + foreach (var removeMessageHandler in removeMessageHandlers) + { + _messageHandlers.Remove(removeMessageHandler.Type); + } + + _assemblyMessageHandlers.RemoveByKey(assemblyIdentity); + } + + + } + + /// + /// 手动注册一个消息处理器。 + /// + /// + /// + public void RegisterHandler(MessageDelegate @delegate) where T : IMessage + { + var type = typeof(T); + + if (!_messageDelegateHandlers.TryGetValue(type, out var messageDelegate)) + { + messageDelegate = new MessageDelegateHandler(); + _messageDelegateHandlers.Add(type,messageDelegate); + } + + messageDelegate.Register(@delegate); + } + + /// + /// 手动卸载一个消息处理器,必须是通过RegisterHandler方法注册的消息处理器。 + /// + /// + /// + public void UnRegisterHandler(MessageDelegate @delegate) where T : IMessage + { + var type = typeof(T); + + if (!_messageDelegateHandlers.TryGetValue(type, out var messageDelegate)) + { + return; + } + + if (messageDelegate.UnRegister(@delegate) != 0) + { + return; + } + + _messageDelegateHandlers.Remove(type); + } + + #endregion + + /// + /// 处理普通消息,将消息分发给相应的消息处理器。 + /// + /// 会话对象 + /// 消息类型 + /// 消息对象 + /// RPC标识 + /// 协议码 + public void MessageHandler(Session session, Type type, object message, uint rpcId, uint protocolCode) + { + if(_messageDelegateHandlers.TryGetValue(type,out var messageDelegateHandler)) + { + messageDelegateHandler.Handle(session, message); + return; + } + + if (!_messageHandlers.TryGetValue(type, out var messageHandler)) + { + Log.Warning($"Scene:{session.Scene.Id} Found Unhandled Message: {message.GetType()}"); + return; + } + + // 调用消息处理器的Handle方法并启动协程执行处理逻辑 + messageHandler.Handle(session, rpcId, protocolCode, message).Coroutine(); + } + + internal void FailRouteResponse(Session session, Type requestType, uint error, uint rpcId) + { + var response = CreateRouteResponse(requestType, error); + session.Send(response, rpcId); + } + + internal IResponse CreateResponse(Type requestType, uint error) + { + IResponse response; + + if (_responseTypes.TryGetValue(requestType, out var responseType)) + { + response = (IResponse) Activator.CreateInstance(responseType); + } + else + { + response = new Response(); + } + + response.ErrorCode = error; + return response; + } + + internal IRouteResponse CreateRouteResponse(Type requestType, uint error) + { + IRouteResponse response; + + if (_responseTypes.TryGetValue(requestType, out var responseType)) + { + response = (IRouteResponse) Activator.CreateInstance(responseType); + } + else + { + response = new RouteResponse(); + } + + response.ErrorCode = error; + return response; + } + + /// + /// 根据消息类型获取对应的OpCode。 + /// + /// 消息类型 + /// 消息对应的OpCode + public uint GetOpCode(Type type) + { + return _networkProtocols.GetKeyByValue(type); + } + + /// + /// 根据OpCode获取对应的消息类型。 + /// + /// OpCode + /// OpCode对应的消息类型 + public Type GetOpCodeType(uint code) + { + return _networkProtocols.GetValueByKey(code); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Dispatcher/MessageDispatcherComponent.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Dispatcher/MessageDispatcherComponent.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Dispatcher/MessageDispatcherComponent.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/Dispatcher/MessageDispatcherComponent.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/IMessage.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Message/IMessage.cs similarity index 74% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/IMessage.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/IMessage.cs index 67c22cc70..07f9ec6b1 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/IMessage.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Message/IMessage.cs @@ -1,53 +1,8 @@ using System; -using System.Runtime.Serialization; -using Fantasy.Async; -using Fantasy.Pool; -using Fantasy.Serialize; -using MongoDB.Bson.Serialization.Attributes; -using Newtonsoft.Json; -using ProtoBuf; -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring as nullable. - #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -namespace Fantasy.Network.Interface +namespace NBC.Network.Interface { - public abstract class AMessage : ASerialize, IPool - { -#if FANTASY_NET || FANTASY_UNITY || FANTASY_CONSOLE - [BsonIgnore] - [JsonIgnore] - [IgnoreDataMember] - [ProtoIgnore] - private Scene _scene; - protected Scene GetScene() - { - return _scene; - } - - public void SetScene(Scene scene) - { - _scene = scene; - } -#endif -#if FANTASY_NET - [BsonIgnore] -#endif - [JsonIgnore] - [IgnoreDataMember] - [ProtoIgnore] - private bool _isPool; - - public bool IsPool() - { - return _isPool; - } - - public void SetIsPool(bool isPool) - { - _isPool = isPool; - } - } /// /// 表示通用消息接口。 /// diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/IMessage.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/IMessage.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/IMessage.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/IMessage.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/InnerMessage.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Message/InnerMessage.cs similarity index 87% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/InnerMessage.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/InnerMessage.cs index f621bcce6..ea6460eb9 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/InnerMessage.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Message/InnerMessage.cs @@ -1,6 +1,6 @@ -using Fantasy.Network.Interface; -using Fantasy.Serialize; using MongoDB.Bson.Serialization.Attributes; +using NBC.Network.Interface; +using NBC.Serialize; using ProtoBuf; #if FANTASY_NET using Fantasy.Network.Roaming; @@ -11,23 +11,22 @@ using Fantasy.Network.Roaming; #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -namespace Fantasy.InnerMessage +namespace NBC.InnerMessage { [ProtoContract] public sealed partial class BenchmarkMessage : AMessage, IMessage { public uint OpCode() { - return Fantasy.Network.OpCode.BenchmarkMessage; + return Network.OpCode.BenchmarkMessage; } } - [ProtoContract] public partial class BenchmarkRequest : AMessage, IRequest { public uint OpCode() { - return Fantasy.Network.OpCode.BenchmarkRequest; + return Network.OpCode.BenchmarkRequest; } [ProtoIgnore] public BenchmarkResponse ResponseType { get; set; } @@ -40,7 +39,7 @@ namespace Fantasy.InnerMessage { public uint OpCode() { - return Fantasy.Network.OpCode.BenchmarkResponse; + return Network.OpCode.BenchmarkResponse; } [ProtoMember(1)] public long RpcId { get; set; } @@ -51,7 +50,7 @@ namespace Fantasy.InnerMessage { public uint OpCode() { - return Fantasy.Network.OpCode.DefaultResponse; + return Network.OpCode.DefaultResponse; } [ProtoMember(1)] public long RpcId { get; set; } @@ -63,7 +62,7 @@ namespace Fantasy.InnerMessage { public uint OpCode() { - return Fantasy.Network.OpCode.DefaultRouteResponse; + return Network.OpCode.DefaultRouteResponse; } [ProtoMember(1)] public long RpcId { get; set; } @@ -75,7 +74,7 @@ namespace Fantasy.InnerMessage { public uint OpCode() { - return Fantasy.Network.OpCode.PingRequest; + return Network.OpCode.PingRequest; } [ProtoIgnore] public PingResponse ResponseType { get; set; } @@ -88,7 +87,7 @@ namespace Fantasy.InnerMessage { public uint OpCode() { - return Fantasy.Network.OpCode.PingResponse; + return Network.OpCode.PingResponse; } [ProtoMember(1)] public long RpcId { get; set; } @@ -102,7 +101,7 @@ namespace Fantasy.InnerMessage { [ProtoIgnore] public I_AddressableAdd_Response ResponseType { get; set; } - public uint OpCode() { return Fantasy.Network.OpCode.AddressableAddRequest; } + public uint OpCode() { return Network.OpCode.AddressableAddRequest; } public long RouteTypeOpCode() { return 1; } [ProtoMember(1)] public long AddressableId { get; set; } @@ -114,7 +113,7 @@ namespace Fantasy.InnerMessage [ProtoContract] public partial class I_AddressableAdd_Response : AMessage, IRouteResponse { - public uint OpCode() { return Fantasy.Network.OpCode.AddressableAddResponse; } + public uint OpCode() { return Network.OpCode.AddressableAddResponse; } [ProtoMember(1)] public uint ErrorCode { get; set; } } @@ -123,7 +122,7 @@ namespace Fantasy.InnerMessage { [ProtoIgnore] public I_AddressableGet_Response ResponseType { get; set; } - public uint OpCode() { return Fantasy.Network.OpCode.AddressableGetRequest; } + public uint OpCode() { return Network.OpCode.AddressableGetRequest; } public long RouteTypeOpCode() { return 1; } [ProtoMember(1)] public long AddressableId { get; set; } @@ -131,7 +130,7 @@ namespace Fantasy.InnerMessage [ProtoContract] public partial class I_AddressableGet_Response : AMessage, IRouteResponse { - public uint OpCode() { return Fantasy.Network.OpCode.AddressableGetResponse; } + public uint OpCode() { return Network.OpCode.AddressableGetResponse; } [ProtoMember(2)] public uint ErrorCode { get; set; } [ProtoMember(1)] @@ -142,7 +141,7 @@ namespace Fantasy.InnerMessage { [ProtoIgnore] public I_AddressableRemove_Response ResponseType { get; set; } - public uint OpCode() { return Fantasy.Network.OpCode.AddressableRemoveRequest; } + public uint OpCode() { return Network.OpCode.AddressableRemoveRequest; } public long RouteTypeOpCode() { return 1; } [ProtoMember(1)] public long AddressableId { get; set; } @@ -150,7 +149,7 @@ namespace Fantasy.InnerMessage [ProtoContract] public partial class I_AddressableRemove_Response : AMessage, IRouteResponse { - public uint OpCode() { return Fantasy.Network.OpCode.AddressableRemoveResponse; } + public uint OpCode() { return Network.OpCode.AddressableRemoveResponse; } [ProtoMember(1)] public uint ErrorCode { get; set; } } @@ -159,7 +158,7 @@ namespace Fantasy.InnerMessage { [ProtoIgnore] public I_AddressableLock_Response ResponseType { get; set; } - public uint OpCode() { return Fantasy.Network.OpCode.AddressableLockRequest; } + public uint OpCode() { return Network.OpCode.AddressableLockRequest; } public long RouteTypeOpCode() { return 1; } [ProtoMember(1)] public long AddressableId { get; set; } @@ -167,7 +166,7 @@ namespace Fantasy.InnerMessage [ProtoContract] public partial class I_AddressableLock_Response : AMessage, IRouteResponse { - public uint OpCode() { return Fantasy.Network.OpCode.AddressableLockResponse; } + public uint OpCode() { return Network.OpCode.AddressableLockResponse; } [ProtoMember(1)] public uint ErrorCode { get; set; } } @@ -176,7 +175,7 @@ namespace Fantasy.InnerMessage { [ProtoIgnore] public I_AddressableUnLock_Response ResponseType { get; set; } - public uint OpCode() { return Fantasy.Network.OpCode.AddressableUnLockRequest; } + public uint OpCode() { return Network.OpCode.AddressableUnLockRequest; } public long RouteTypeOpCode() { return 1; } [ProtoMember(1)] public long AddressableId { get; set; } @@ -188,7 +187,7 @@ namespace Fantasy.InnerMessage [ProtoContract] public partial class I_AddressableUnLock_Response : AMessage, IRouteResponse { - public uint OpCode() { return Fantasy.Network.OpCode.AddressableUnLockResponse; } + public uint OpCode() { return Network.OpCode.AddressableUnLockResponse; } [ProtoMember(1)] public uint ErrorCode { get; set; } } diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/InnerMessage.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/InnerMessage.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/InnerMessage.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/InnerMessage.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Handler.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Handler.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Handler.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Handler.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Handler/BufferPacketParser.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Handler/BufferPacketParser.cs similarity index 66% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Handler/BufferPacketParser.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Handler/BufferPacketParser.cs index 427fe97bb..7ff8e8b8f 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Handler/BufferPacketParser.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Handler/BufferPacketParser.cs @@ -3,17 +3,17 @@ using System.Buffers; using System.IO; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -using Fantasy.Helper; -using Fantasy.Network; -using Fantasy.Network.Interface; -using Fantasy.PacketParser.Interface; -using Fantasy.Serialize; +using NBC.Helper; +using NBC.Network; +using NBC.Network.Interface; +using NBC.PacketParser.Interface; +using NBC.Serialize; // ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. -namespace Fantasy.PacketParser +namespace NBC.PacketParser { /// /// BufferPacketParser消息格式化器抽象类 @@ -73,21 +73,21 @@ namespace Fantasy.PacketParser return false; } - var span = buffer.AsSpan(); - ref var bufferRef = ref MemoryMarshal.GetReference(span); - - MessagePacketLength = Unsafe.ReadUnaligned(ref bufferRef); - - if (MessagePacketLength > ProgramDefine.MaxMessageSize || count < MessagePacketLength) + fixed (byte* bufferPtr = buffer) { - // 检查消息体长度是否超出限制 - throw new ScanException($"The received information exceeds the maximum limit = {MessagePacketLength}"); + MessagePacketLength = *(int*)bufferPtr; + + if (MessagePacketLength > Packet.PacketBodyMaxLength || count < MessagePacketLength) + { + // 检查消息体长度是否超出限制 + throw new ScanException($"The received information exceeds the maximum limit = {MessagePacketLength}"); + } + + ProtocolCode = *(uint*)(bufferPtr + Packet.PacketLength); + RpcId = *(uint*)(bufferPtr + Packet.InnerPacketRpcIdLocation); + RouteId = *(long*)(bufferPtr + Packet.InnerPacketRouteRouteIdLocation); } - ProtocolCode = Unsafe.ReadUnaligned(ref Unsafe.Add(ref bufferRef, Packet.PacketLength)); - RpcId = Unsafe.ReadUnaligned(ref Unsafe.Add(ref bufferRef, Packet.InnerPacketRpcIdLocation)); - RouteId = Unsafe.ReadUnaligned(ref Unsafe.Add(ref bufferRef, Packet.InnerPacketRouteRouteIdLocation)); - packInfo = InnerPackInfo.Create(Network); packInfo.RpcId = RpcId; packInfo.RouteId = RouteId; @@ -96,30 +96,30 @@ namespace Fantasy.PacketParser return true; } - public override MemoryStreamBuffer Pack(ref uint rpcId, ref long routeId, MemoryStreamBuffer memoryStream, IMessage message, Type messageType) + public override MemoryStreamBuffer Pack(ref uint rpcId, ref long routeId, MemoryStreamBuffer memoryStream, IMessage message) { - return memoryStream == null ? Pack(ref rpcId, ref routeId, message, messageType) : Pack(ref rpcId, ref routeId, memoryStream); + return memoryStream == null ? Pack(ref rpcId, ref routeId, message) : Pack(ref rpcId, ref routeId, memoryStream); } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private MemoryStreamBuffer Pack(ref uint rpcId, ref long routeId, MemoryStreamBuffer memoryStream) + private unsafe MemoryStreamBuffer Pack(ref uint rpcId, ref long routeId, MemoryStreamBuffer memoryStream) { - var buffer = memoryStream.GetBuffer(); - ref var bufferRef = ref MemoryMarshal.GetArrayDataReference(buffer); - - Unsafe.WriteUnaligned(ref Unsafe.Add(ref bufferRef, Packet.InnerPacketRpcIdLocation), rpcId); - Unsafe.WriteUnaligned(ref Unsafe.Add(ref bufferRef, Packet.InnerPacketRouteRouteIdLocation), routeId); + fixed (byte* bufferPtr = memoryStream.GetBuffer()) + { + *(uint*)(bufferPtr + Packet.InnerPacketRpcIdLocation) = rpcId; + *(long*)(bufferPtr + Packet.InnerPacketRouteRouteIdLocation) = routeId; + } return memoryStream; } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private MemoryStreamBuffer Pack(ref uint rpcId, ref long routeId, IMessage message, Type messageType) + private unsafe MemoryStreamBuffer Pack(ref uint rpcId, ref long routeId, IMessage message) { var memoryStreamLength = 0; + var messageType = message.GetType(); var memoryStream = Network.MemoryStreamBufferPool.RentMemoryStream(MemoryStreamBufferSource.Pack); - var opCode = message.OpCode(); - OpCodeIdStruct opCodeIdStruct = opCode; + OpCodeIdStruct opCodeIdStruct = message.OpCode(); memoryStream.Seek(Packet.InnerPacketHeadLength, SeekOrigin.Begin); if (SerializerManager.TryGetSerializer(opCodeIdStruct.OpCodeProtocolType, out var serializer)) @@ -131,7 +131,8 @@ namespace Fantasy.PacketParser { Log.Error($"type:{messageType} Does not support processing protocol"); } - + + var opCode = Scene.MessageDispatcherComponent.GetOpCode(messageType); var packetBodyCount = memoryStreamLength - Packet.InnerPacketHeadLength; if (packetBodyCount == 0) @@ -141,19 +142,19 @@ namespace Fantasy.PacketParser packetBodyCount = -1; } - if (packetBodyCount > ProgramDefine.MaxMessageSize) + if (packetBodyCount > Packet.PacketBodyMaxLength) { // 检查消息体长度是否超出限制 - throw new Exception($"Message content exceeds {ProgramDefine.MaxMessageSize} bytes"); + throw new Exception($"Message content exceeds {Packet.PacketBodyMaxLength} bytes"); } - var buffer = memoryStream.GetBuffer(); - ref var bufferRef = ref MemoryMarshal.GetArrayDataReference(buffer); - - Unsafe.WriteUnaligned(ref bufferRef, packetBodyCount); - Unsafe.WriteUnaligned(ref Unsafe.Add(ref bufferRef, Packet.PacketLength), opCode); - Unsafe.WriteUnaligned(ref Unsafe.Add(ref bufferRef, Packet.InnerPacketRpcIdLocation), rpcId); - Unsafe.WriteUnaligned(ref Unsafe.Add(ref bufferRef, Packet.InnerPacketRouteRouteIdLocation), routeId); + fixed (byte* bufferPtr = memoryStream.GetBuffer()) + { + *(int*)bufferPtr = packetBodyCount; + *(uint*)(bufferPtr + Packet.PacketLength) = opCode; + *(uint*)(bufferPtr + Packet.InnerPacketRpcIdLocation) = rpcId; + *(long*)(bufferPtr + Packet.InnerPacketRouteRouteIdLocation) = routeId; + } return memoryStream; } @@ -172,7 +173,7 @@ namespace Fantasy.PacketParser /// /// /// - public override bool UnPack(byte[] buffer, ref int count, out APackInfo packInfo) + public override unsafe bool UnPack(byte[] buffer, ref int count, out APackInfo packInfo) { packInfo = null; @@ -187,19 +188,19 @@ namespace Fantasy.PacketParser return false; } - var span = buffer.AsSpan(); - ref var bufferRef = ref MemoryMarshal.GetReference(span); - - MessagePacketLength = Unsafe.ReadUnaligned(ref bufferRef); - - if (MessagePacketLength > ProgramDefine.MaxMessageSize || count < MessagePacketLength) + fixed (byte* bufferPtr = buffer) { - // 检查消息体长度是否超出限制 - throw new ScanException($"The received information exceeds the maximum limit = {MessagePacketLength}"); - } + MessagePacketLength = *(int*)bufferPtr; - ProtocolCode = Unsafe.ReadUnaligned(ref Unsafe.Add(ref bufferRef, Packet.PacketLength)); - RpcId = Unsafe.ReadUnaligned(ref Unsafe.Add(ref bufferRef, Packet.OuterPacketRpcIdLocation)); + if (MessagePacketLength > Packet.PacketBodyMaxLength || count < MessagePacketLength) + { + // 检查消息体长度是否超出限制 + throw new ScanException($"The received information exceeds the maximum limit = {MessagePacketLength}"); + } + + ProtocolCode = *(uint*)(bufferPtr + Packet.PacketLength); + RpcId = *(uint*)(bufferPtr + Packet.OuterPacketRpcIdLocation); + } packInfo = OuterPackInfo.Create(Network); packInfo.RpcId = RpcId; @@ -208,31 +209,30 @@ namespace Fantasy.PacketParser return true; } - public override MemoryStreamBuffer Pack(ref uint rpcId, ref long routeId, MemoryStreamBuffer memoryStream, IMessage message, Type messageType) + public override MemoryStreamBuffer Pack(ref uint rpcId, ref long routeId, MemoryStreamBuffer memoryStream, IMessage message) { - return memoryStream == null ? Pack(ref rpcId, message, messageType) : Pack(ref rpcId, memoryStream); + return memoryStream == null ? Pack(ref rpcId, message) : Pack(ref rpcId, memoryStream); } - + [MethodImpl(MethodImplOptions.AggressiveInlining)] - private MemoryStreamBuffer Pack(ref uint rpcId, MemoryStreamBuffer memoryStream) + private unsafe MemoryStreamBuffer Pack(ref uint rpcId, MemoryStreamBuffer memoryStream) { - var buffer = memoryStream.GetBuffer(); -#if FANTASY_UNITY - ref var bufferRef = ref MemoryMarshal.GetReference(buffer.AsSpan()); -#else - ref var bufferRef = ref MemoryMarshal.GetArrayDataReference(buffer); -#endif - Unsafe.WriteUnaligned(ref Unsafe.Add(ref bufferRef, Packet.InnerPacketRpcIdLocation), rpcId); + fixed (byte* bufferPtr = memoryStream.GetBuffer()) + { + *(uint*)(bufferPtr + Packet.InnerPacketRpcIdLocation) = rpcId; + } + return memoryStream; } - + [MethodImpl(MethodImplOptions.AggressiveInlining)] - private MemoryStreamBuffer Pack(ref uint rpcId, IMessage message, Type messageType) + private unsafe MemoryStreamBuffer Pack(ref uint rpcId, IMessage message) { var memoryStreamLength = 0; + var messageType = message.GetType(); var memoryStream = Network.MemoryStreamBufferPool.RentMemoryStream(MemoryStreamBufferSource.Pack); - var opCode = message.OpCode(); - OpCodeIdStruct opCodeIdStruct = opCode; + var nmsl = message.OpCode(); + OpCodeIdStruct opCodeIdStruct = message.OpCode(); memoryStream.Seek(Packet.OuterPacketHeadLength, SeekOrigin.Begin); if (SerializerManager.TryGetSerializer(opCodeIdStruct.OpCodeProtocolType, out var serializer)) @@ -245,8 +245,7 @@ namespace Fantasy.PacketParser Log.Error($"type:{messageType} Does not support processing protocol"); } - - // var opCode = Scene.MessageDispatcherComponent.GetOpCode(messageType); + var opCode = Scene.MessageDispatcherComponent.GetOpCode(messageType); var packetBodyCount = memoryStreamLength - Packet.OuterPacketHeadLength; if (packetBodyCount == 0) @@ -256,21 +255,18 @@ namespace Fantasy.PacketParser packetBodyCount = -1; } - if (packetBodyCount > ProgramDefine.MaxMessageSize) + if (packetBodyCount > Packet.PacketBodyMaxLength) { // 检查消息体长度是否超出限制 - throw new Exception($"Message content exceeds {ProgramDefine.MaxMessageSize} bytes"); + throw new Exception($"Message content exceeds {Packet.PacketBodyMaxLength} bytes"); } - var buffer = memoryStream.GetBuffer(); -#if FANTASY_UNITY - ref var bufferRef = ref MemoryMarshal.GetReference(buffer.AsSpan()); -#else - ref var bufferRef = ref MemoryMarshal.GetArrayDataReference(buffer); -#endif - Unsafe.WriteUnaligned(ref bufferRef, packetBodyCount); - Unsafe.WriteUnaligned(ref Unsafe.Add(ref bufferRef, Packet.PacketLength), opCode); - Unsafe.WriteUnaligned(ref Unsafe.Add(ref bufferRef, Packet.OuterPacketRpcIdLocation), rpcId); + fixed (byte* bufferPtr = memoryStream.GetBuffer()) + { + *(int*)bufferPtr = packetBodyCount; + *(uint*)(bufferPtr + Packet.PacketLength) = opCode; + *(uint*)(bufferPtr + Packet.OuterPacketRpcIdLocation) = rpcId; + } return memoryStream; } @@ -303,19 +299,16 @@ namespace Fantasy.PacketParser return false; } - var span = buffer.AsSpan(); - ref var bufferRef = ref MemoryMarshal.GetReference(span); + MessagePacketLength = BitConverter.ToInt32(buffer, 0); - MessagePacketLength = Unsafe.ReadUnaligned(ref bufferRef); - - if (MessagePacketLength > ProgramDefine.MaxMessageSize || count < MessagePacketLength) + if (MessagePacketLength > Packet.PacketBodyMaxLength || count < MessagePacketLength) { // 检查消息体长度是否超出限制 throw new ScanException($"The received information exceeds the maximum limit = {MessagePacketLength}"); } - ProtocolCode = Unsafe.ReadUnaligned(ref Unsafe.Add(ref bufferRef, Packet.PacketLength)); - RpcId = Unsafe.ReadUnaligned(ref Unsafe.Add(ref bufferRef, Packet.OuterPacketRpcIdLocation)); + ProtocolCode = BitConverter.ToUInt32(buffer, Packet.PacketLength); + RpcId = BitConverter.ToUInt32(buffer, Packet.OuterPacketRpcIdLocation); packInfo = OuterPackInfo.Create(Network); packInfo.RpcId = RpcId; @@ -324,31 +317,26 @@ namespace Fantasy.PacketParser return true; } - public override MemoryStreamBuffer Pack(ref uint rpcId, ref long routeId, MemoryStreamBuffer memoryStream, IMessage message, Type messageType) + public override MemoryStreamBuffer Pack(ref uint rpcId, ref long routeId, MemoryStreamBuffer memoryStream, IMessage message) { - return memoryStream == null ? Pack(ref rpcId, message, messageType) : Pack(ref rpcId, memoryStream); + return memoryStream == null ? Pack(ref rpcId, message) : Pack(ref rpcId, memoryStream); } [MethodImpl(MethodImplOptions.AggressiveInlining)] private MemoryStreamBuffer Pack(ref uint rpcId, MemoryStreamBuffer memoryStream) { var buffer = memoryStream.GetBuffer().AsSpan(); -#if FANTASY_NET - MemoryMarshal.Write(buffer.Slice(Packet.OuterPacketRpcIdLocation, sizeof(uint)), in rpcId); -#endif -#if FANTASY_UNITY MemoryMarshal.Write(buffer.Slice(Packet.OuterPacketRpcIdLocation, sizeof(uint)), ref rpcId); -#endif return memoryStream; } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private MemoryStreamBuffer Pack(ref uint rpcId, IMessage message, Type messageType) + private MemoryStreamBuffer Pack(ref uint rpcId, IMessage message) { var memoryStreamLength = 0; + var messageType = message.GetType(); var memoryStream = Network.MemoryStreamBufferPool.RentMemoryStream(MemoryStreamBufferSource.UnPack); - var opCode = message.OpCode(); - OpCodeIdStruct opCodeIdStruct = opCode; + OpCodeIdStruct opCodeIdStruct = message.OpCode(); memoryStream.Seek(Packet.OuterPacketHeadLength, SeekOrigin.Begin); if (SerializerManager.TryGetSerializer(opCodeIdStruct.OpCodeProtocolType, out var serializer)) @@ -361,6 +349,7 @@ namespace Fantasy.PacketParser Log.Error($"type:{messageType} Does not support processing protocol"); } + var opCode = Scene.MessageDispatcherComponent.GetOpCode(messageType); var packetBodyCount = memoryStreamLength - Packet.OuterPacketHeadLength; if (packetBodyCount == 0) @@ -370,21 +359,17 @@ namespace Fantasy.PacketParser packetBodyCount = -1; } - if (packetBodyCount > ProgramDefine.MaxMessageSize) + if (packetBodyCount > Packet.PacketBodyMaxLength) { // 检查消息体长度是否超出限制 - throw new Exception($"Message content exceeds {ProgramDefine.MaxMessageSize} bytes"); + throw new Exception($"Message content exceeds {Packet.PacketBodyMaxLength} bytes"); } - var buffer = memoryStream.GetBuffer(); -#if FANTASY_UNITY - ref var bufferRef = ref MemoryMarshal.GetReference(buffer.AsSpan()); -#else - ref var bufferRef = ref MemoryMarshal.GetArrayDataReference(buffer); -#endif - Unsafe.WriteUnaligned(ref bufferRef, packetBodyCount); - Unsafe.WriteUnaligned(ref Unsafe.Add(ref bufferRef, Packet.PacketLength), opCode); - Unsafe.WriteUnaligned(ref Unsafe.Add(ref bufferRef, Packet.OuterPacketRpcIdLocation), rpcId); + var buffer = memoryStream.GetBuffer().AsSpan(); + MemoryMarshal.Write(buffer, ref packetBodyCount); + MemoryMarshal.Write(buffer.Slice(Packet.PacketLength, sizeof(uint)), ref opCode); + MemoryMarshal.Write(buffer.Slice(Packet.OuterPacketRpcIdLocation, sizeof(uint)), ref rpcId); + return memoryStream; } } diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Handler/BufferPacketParser.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Handler/BufferPacketParser.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Handler/BufferPacketParser.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Handler/BufferPacketParser.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Handler/CircularBufferPacketParser.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Handler/CircularBufferPacketParser.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Handler/CircularBufferPacketParser.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Handler/CircularBufferPacketParser.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Handler/CircularBufferPacketParser.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Handler/CircularBufferPacketParser.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Handler/CircularBufferPacketParser.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Handler/CircularBufferPacketParser.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Handler/OuterBufferPacketParserHelper.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Handler/OuterBufferPacketParserHelper.cs similarity index 72% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Handler/OuterBufferPacketParserHelper.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Handler/OuterBufferPacketParserHelper.cs index 49b418664..a6e66ca33 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Handler/OuterBufferPacketParserHelper.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Handler/OuterBufferPacketParserHelper.cs @@ -1,6 +1,5 @@ #if FANTASY_NET using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; using Fantasy.Helper; using Fantasy.Network; using Fantasy.Network.Interface; @@ -19,18 +18,17 @@ namespace Fantasy.PacketParser /// scene /// 如果是RPC消息需要传递一个rpcId /// 打包的网络消息 - /// 打包的网络消息类型 /// 序列化后流的长度 /// 打包完成会返回一个MemoryStreamBuffer /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static MemoryStreamBuffer Pack(Scene scene, uint rpcId, IMessage message, Type messageType, out int memoryStreamLength) + public static unsafe MemoryStreamBuffer Pack(Scene scene, uint rpcId, IMessage message, out int memoryStreamLength) { memoryStreamLength = 0; + var messageType = message.GetType(); var memoryStream = new MemoryStreamBuffer(); memoryStream.MemoryStreamBufferSource = MemoryStreamBufferSource.Pack; - var opCode = message.OpCode(); - OpCodeIdStruct opCodeIdStruct = opCode; + OpCodeIdStruct opCodeIdStruct = message.OpCode(); memoryStream.Seek(Packet.OuterPacketHeadLength, SeekOrigin.Begin); if (SerializerManager.TryGetSerializer(opCodeIdStruct.OpCodeProtocolType, out var serializer)) @@ -42,7 +40,8 @@ namespace Fantasy.PacketParser { Log.Error($"type:{messageType} Does not support processing protocol"); } - ; + + var opCode = scene.MessageDispatcherComponent.GetOpCode(messageType); var packetBodyCount = memoryStreamLength - Packet.OuterPacketHeadLength; if (packetBodyCount == 0) @@ -52,18 +51,18 @@ namespace Fantasy.PacketParser packetBodyCount = -1; } - if (packetBodyCount > ProgramDefine.MaxMessageSize) + if (packetBodyCount > Packet.PacketBodyMaxLength) { // 检查消息体长度是否超出限制 - throw new Exception($"Message content exceeds {ProgramDefine.MaxMessageSize} bytes"); + throw new Exception($"Message content exceeds {Packet.PacketBodyMaxLength} bytes"); } - var buffer = memoryStream.GetBuffer(); - ref var bufferRef = ref MemoryMarshal.GetArrayDataReference(buffer); - - Unsafe.WriteUnaligned(ref bufferRef, packetBodyCount); - Unsafe.WriteUnaligned(ref Unsafe.Add(ref bufferRef, Packet.PacketLength), opCode); - Unsafe.WriteUnaligned(ref Unsafe.Add(ref bufferRef, Packet.OuterPacketRpcIdLocation), rpcId); + fixed (byte* bufferPtr = memoryStream.GetBuffer()) + { + *(int*)bufferPtr = packetBodyCount; + *(uint*)(bufferPtr + Packet.PacketLength) = opCode; + *(uint*)(bufferPtr + Packet.OuterPacketRpcIdLocation) = rpcId; + } return memoryStream; } diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Handler/OuterBufferPacketParserHelper.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Handler/OuterBufferPacketParserHelper.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Handler/OuterBufferPacketParserHelper.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Handler/OuterBufferPacketParserHelper.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Handler/ReadOnlyMemoryPacketParser.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Handler/ReadOnlyMemoryPacketParser.cs similarity index 56% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Handler/ReadOnlyMemoryPacketParser.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Handler/ReadOnlyMemoryPacketParser.cs index 34e491b1c..e722e748d 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Handler/ReadOnlyMemoryPacketParser.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Handler/ReadOnlyMemoryPacketParser.cs @@ -2,17 +2,17 @@ using System; using System.IO; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -using Fantasy.Helper; -using Fantasy.Network; -using Fantasy.Network.Interface; -using Fantasy.PacketParser.Interface; -using Fantasy.Serialize; +using NBC.Helper; +using NBC.Network; +using NBC.Network.Interface; +using NBC.PacketParser.Interface; +using NBC.Serialize; // ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. -namespace Fantasy.PacketParser +namespace NBC.PacketParser { internal abstract class ReadOnlyMemoryPacketParser : APacketParser { @@ -47,61 +47,56 @@ namespace Fantasy.PacketParser #if FANTASY_NET internal sealed class InnerReadOnlyMemoryPacketParser : ReadOnlyMemoryPacketParser { - public override bool UnPack(ref ReadOnlyMemory buffer, out APackInfo packInfo) + public override unsafe bool UnPack(ref ReadOnlyMemory buffer, out APackInfo packInfo) { packInfo = null; var readOnlySpan = buffer.Span; var bufferLength = buffer.Length - Offset; - + if (bufferLength == 0) { // 没有剩余的数据需要处理、等待下一个包再处理。 Offset = 0; return false; } - + if (IsUnPackHead) { - // 在当前buffer中拿到包头的数据 - var innerPacketHeadLength = Packet.InnerPacketHeadLength - MessageHeadOffset; - var copyLength = Math.Min(bufferLength, innerPacketHeadLength); - - readOnlySpan.Slice(Offset, copyLength).CopyTo(MessageHead.AsSpan(MessageHeadOffset, copyLength)); - - Offset += copyLength; - MessageHeadOffset += copyLength; - // 检查是否有完整包头 - if (MessageHeadOffset == Packet.InnerPacketHeadLength) + fixed (byte* bufferPtr = readOnlySpan) + fixed (byte* messagePtr = MessageHead) { - // 通过现代API直接读取协议编号、messagePacketLength protocolCode rpcId routeId - ref var messageRef = ref MemoryMarshal.GetArrayDataReference(MessageHead); - MessagePacketLength = Unsafe.ReadUnaligned(ref messageRef); - // 检查消息体长度是否超出限制 - if (MessagePacketLength > ProgramDefine.MaxMessageSize) + // 在当前buffer中拿到包头的数据 + var innerPacketHeadLength = Packet.InnerPacketHeadLength - MessageHeadOffset; + var copyLength = Math.Min(bufferLength, innerPacketHeadLength); + Buffer.MemoryCopy(bufferPtr + Offset, messagePtr + MessageHeadOffset, innerPacketHeadLength, copyLength); + Offset += copyLength; + MessageHeadOffset += copyLength; + // 检查是否有完整包头 + if (MessageHeadOffset == Packet.InnerPacketHeadLength) { - throw new ScanException( - $"The received information exceeds the maximum limit = {MessagePacketLength}"); - } + // 通过指针直接读取协议编号、messagePacketLength protocolCode rpcId routeId + MessagePacketLength = *(int*)messagePtr; + // 检查消息体长度是否超出限制 + if (MessagePacketLength > Packet.PacketBodyMaxLength) + { + throw new ScanException($"The received information exceeds the maximum limit = {MessagePacketLength}"); + } - PackInfo = InnerPackInfo.Create(Network); - var memoryStream = PackInfo.RentMemoryStream(MemoryStreamBufferSource.UnPack, - Packet.InnerPacketHeadLength + MessagePacketLength); - PackInfo.RpcId = - Unsafe.ReadUnaligned(ref Unsafe.Add(ref messageRef, Packet.InnerPacketRpcIdLocation)); - PackInfo.ProtocolCode = - Unsafe.ReadUnaligned(ref Unsafe.Add(ref messageRef, Packet.PacketLength)); - PackInfo.RouteId = - Unsafe.ReadUnaligned(ref Unsafe.Add(ref messageRef, - Packet.InnerPacketRouteRouteIdLocation)); - memoryStream.Write(MessageHead); - IsUnPackHead = false; - bufferLength -= copyLength; - MessageHeadOffset = 0; - } - else - { - Offset = 0; - return false; + PackInfo = InnerPackInfo.Create(Network); + var memoryStream = PackInfo.RentMemoryStream(MemoryStreamBufferSource.UnPack, Packet.InnerPacketHeadLength + MessagePacketLength); + PackInfo.RpcId = *(uint*)(messagePtr + Packet.InnerPacketRpcIdLocation); + PackInfo.ProtocolCode = *(uint*)(messagePtr + Packet.PacketLength); + PackInfo.RouteId = *(long*)(messagePtr + Packet.InnerPacketRouteRouteIdLocation); + memoryStream.Write(MessageHead); + IsUnPackHead = false; + bufferLength -= copyLength; + MessageHeadOffset = 0; + } + else + { + Offset = 0; + return false; + } } } @@ -138,35 +133,34 @@ namespace Fantasy.PacketParser MessageBodyOffset = 0; return true; } - Offset = 0; return false; } - public override MemoryStreamBuffer Pack(ref uint rpcId, ref long routeId, MemoryStreamBuffer memoryStream, IMessage message, Type messageType) + public override MemoryStreamBuffer Pack(ref uint rpcId, ref long routeId, MemoryStreamBuffer memoryStream, IMessage message) { - return memoryStream == null ? Pack(ref rpcId, ref routeId, message, messageType) : Pack(ref rpcId, ref routeId, memoryStream); + return memoryStream == null ? Pack(ref rpcId, ref routeId, message) : Pack(ref rpcId, ref routeId, memoryStream); } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private MemoryStreamBuffer Pack(ref uint rpcId, ref long routeId, MemoryStreamBuffer memoryStream) + private unsafe MemoryStreamBuffer Pack(ref uint rpcId, ref long routeId, MemoryStreamBuffer memoryStream) { - var buffer = memoryStream.GetBuffer(); - ref var bufferRef = ref MemoryMarshal.GetArrayDataReference(buffer); - - Unsafe.WriteUnaligned(ref Unsafe.Add(ref bufferRef, Packet.InnerPacketRpcIdLocation), rpcId); - Unsafe.WriteUnaligned(ref Unsafe.Add(ref bufferRef, Packet.InnerPacketRouteRouteIdLocation), routeId); + fixed (byte* bufferPtr = memoryStream.GetBuffer()) + { + *(uint*)(bufferPtr + Packet.InnerPacketRpcIdLocation) = rpcId; + *(long*)(bufferPtr + Packet.InnerPacketRouteRouteIdLocation) = routeId; + } return memoryStream; } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private MemoryStreamBuffer Pack(ref uint rpcId, ref long routeId, IMessage message, Type messageType) + private unsafe MemoryStreamBuffer Pack(ref uint rpcId, ref long routeId, IMessage message) { var memoryStreamLength = 0; + var messageType = message.GetType(); var memoryStream = Network.MemoryStreamBufferPool.RentMemoryStream(MemoryStreamBufferSource.Pack); - var opCode = message.OpCode(); - OpCodeIdStruct opCodeIdStruct = opCode; + OpCodeIdStruct opCodeIdStruct = message.OpCode(); memoryStream.Seek(Packet.InnerPacketHeadLength, SeekOrigin.Begin); if (SerializerManager.TryGetSerializer(opCodeIdStruct.OpCodeProtocolType, out var serializer)) @@ -179,7 +173,7 @@ namespace Fantasy.PacketParser Log.Error($"type:{messageType} Does not support processing protocol"); } - + var opCode = Scene.MessageDispatcherComponent.GetOpCode(messageType); var packetBodyCount = memoryStreamLength - Packet.InnerPacketHeadLength; if (packetBodyCount == 0) @@ -190,19 +184,19 @@ namespace Fantasy.PacketParser packetBodyCount = -1; } - if (packetBodyCount > ProgramDefine.MaxMessageSize) + if (packetBodyCount > Packet.PacketBodyMaxLength) { // 检查消息体长度是否超出限制 - throw new Exception($"Message content exceeds {ProgramDefine.MaxMessageSize} bytes"); + throw new Exception($"Message content exceeds {Packet.PacketBodyMaxLength} bytes"); } - var buffer = memoryStream.GetBuffer(); - ref var bufferRef = ref MemoryMarshal.GetArrayDataReference(buffer); - - Unsafe.WriteUnaligned(ref bufferRef, packetBodyCount); - Unsafe.WriteUnaligned(ref Unsafe.Add(ref bufferRef, Packet.PacketLength), opCode); - Unsafe.WriteUnaligned(ref Unsafe.Add(ref bufferRef, Packet.InnerPacketRpcIdLocation), rpcId); - Unsafe.WriteUnaligned(ref Unsafe.Add(ref bufferRef, Packet.InnerPacketRouteRouteIdLocation), routeId); + fixed (byte* bufferPtr = memoryStream.GetBuffer()) + { + *(int*)bufferPtr = packetBodyCount; + *(uint*)(bufferPtr + Packet.PacketLength) = opCode; + *(uint*)(bufferPtr + Packet.InnerPacketRpcIdLocation) = rpcId; + *(long*)(bufferPtr + Packet.InnerPacketRouteRouteIdLocation) = routeId; + } return memoryStream; } @@ -210,7 +204,7 @@ namespace Fantasy.PacketParser #endif internal sealed class OuterReadOnlyMemoryPacketParser : ReadOnlyMemoryPacketParser { - public override bool UnPack(ref ReadOnlyMemory buffer, out APackInfo packInfo) + public override unsafe bool UnPack(ref ReadOnlyMemory buffer, out APackInfo packInfo) { packInfo = null; var readOnlySpan = buffer.Span; @@ -222,53 +216,46 @@ namespace Fantasy.PacketParser Offset = 0; return false; } - + if (IsUnPackHead) { - // 在当前buffer中拿到包头的数据 - var outerPacketHeadLength = Packet.OuterPacketHeadLength - MessageHeadOffset; - var copyLength = Math.Min(bufferLength, outerPacketHeadLength); - - readOnlySpan.Slice(Offset, copyLength).CopyTo(MessageHead.AsSpan(MessageHeadOffset, copyLength)); - - Offset += copyLength; - MessageHeadOffset += copyLength; - // 检查是否有完整包头 - if (MessageHeadOffset == Packet.OuterPacketHeadLength) + fixed (byte* bufferPtr = readOnlySpan) + fixed (byte* messagePtr = MessageHead) { - // 通过现代API直接读取协议编号、messagePacketLength protocolCode rpcId routeId -#if FANTASY_UNITY - ref var messageRef = ref MemoryMarshal.GetReference(buffer.Span); -#else - ref var messageRef = ref MemoryMarshal.GetArrayDataReference(MessageHead); -#endif - MessagePacketLength = Unsafe.ReadUnaligned(ref messageRef); - // 检查消息体长度是否超出限制 - if (MessagePacketLength > ProgramDefine.MaxMessageSize) + // 在当前buffer中拿到包头的数据 + var outerPacketHeadLength = Packet.OuterPacketHeadLength - MessageHeadOffset; + var copyLength = Math.Min(bufferLength, outerPacketHeadLength); + Buffer.MemoryCopy(bufferPtr + Offset, messagePtr + MessageHeadOffset, outerPacketHeadLength, copyLength); + Offset += copyLength; + MessageHeadOffset += copyLength; + // 检查是否有完整包头 + if (MessageHeadOffset == Packet.OuterPacketHeadLength) { - throw new ScanException( - $"The received information exceeds the maximum limit = {MessagePacketLength}"); - } + // 通过指针直接读取协议编号、messagePacketLength protocolCode rpcId routeId + MessagePacketLength = *(int*)messagePtr; + // 检查消息体长度是否超出限制 + if (MessagePacketLength > Packet.PacketBodyMaxLength) + { + throw new ScanException($"The received information exceeds the maximum limit = {MessagePacketLength}"); + } - PackInfo = OuterPackInfo.Create(Network); - PackInfo.ProtocolCode = - Unsafe.ReadUnaligned(ref Unsafe.Add(ref messageRef, Packet.PacketLength)); - PackInfo.RpcId = - Unsafe.ReadUnaligned(ref Unsafe.Add(ref messageRef, Packet.OuterPacketRpcIdLocation)); - var memoryStream = PackInfo.RentMemoryStream(MemoryStreamBufferSource.UnPack, - Packet.OuterPacketHeadLength + MessagePacketLength); - memoryStream.Write(MessageHead); - IsUnPackHead = false; - bufferLength -= copyLength; - MessageHeadOffset = 0; - } - else - { - Offset = 0; - return false; + PackInfo = OuterPackInfo.Create(Network); + PackInfo.ProtocolCode = *(uint*)(messagePtr + Packet.PacketLength); + PackInfo.RpcId = *(uint*)(messagePtr + Packet.OuterPacketRpcIdLocation); + var memoryStream = PackInfo.RentMemoryStream(MemoryStreamBufferSource.UnPack, Packet.OuterPacketHeadLength + MessagePacketLength); + memoryStream.Write(MessageHead); + IsUnPackHead = false; + bufferLength -= copyLength; + MessageHeadOffset = 0; + } + else + { + Offset = 0; + return false; + } } } - + if (MessagePacketLength == -1) { // protoBuf做了一个优化、就是当序列化的对象里的属性和字段都为默认值的时候就不会序列化任何东西。 @@ -306,32 +293,29 @@ namespace Fantasy.PacketParser return false; } - public override MemoryStreamBuffer Pack(ref uint rpcId, ref long routeId, MemoryStreamBuffer memoryStream, IMessage message, Type messageType) + public override MemoryStreamBuffer Pack(ref uint rpcId, ref long routeId, MemoryStreamBuffer memoryStream, IMessage message) { - return memoryStream == null ? Pack(ref rpcId, message, messageType) : Pack(ref rpcId, memoryStream); + return memoryStream == null ? Pack(ref rpcId, message) : Pack(ref rpcId, memoryStream); } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private MemoryStreamBuffer Pack(ref uint rpcId, MemoryStreamBuffer memoryStream) + private unsafe MemoryStreamBuffer Pack(ref uint rpcId, MemoryStreamBuffer memoryStream) { - var buffer = memoryStream.GetBuffer(); -#if FANTASY_UNITY - ref var bufferRef = ref MemoryMarshal.GetReference(buffer.AsSpan()); -#else - ref var bufferRef = ref MemoryMarshal.GetArrayDataReference(buffer); -#endif - Unsafe.WriteUnaligned(ref Unsafe.Add(ref bufferRef, Packet.OuterPacketRpcIdLocation), rpcId); + fixed (byte* bufferPtr = memoryStream.GetBuffer()) + { + *(uint*)(bufferPtr + Packet.OuterPacketRpcIdLocation) = rpcId; + } return memoryStream; } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private unsafe MemoryStreamBuffer Pack(ref uint rpcId, IMessage message, Type messageType) + private unsafe MemoryStreamBuffer Pack(ref uint rpcId, IMessage message) { var memoryStreamLength = 0; + var messageType = message.GetType(); var memoryStream = Network.MemoryStreamBufferPool.RentMemoryStream(MemoryStreamBufferSource.Pack); - var opCode = message.OpCode(); - OpCodeIdStruct opCodeIdStruct = opCode; + OpCodeIdStruct opCodeIdStruct = message.OpCode(); memoryStream.Seek(Packet.OuterPacketHeadLength, SeekOrigin.Begin); if (SerializerManager.TryGetSerializer(opCodeIdStruct.OpCodeProtocolType, out var serializer)) @@ -344,7 +328,7 @@ namespace Fantasy.PacketParser Log.Error($"type:{messageType} Does not support processing protocol"); } - + var opCode = Scene.MessageDispatcherComponent.GetOpCode(messageType); var packetBodyCount = memoryStreamLength - Packet.OuterPacketHeadLength; if (packetBodyCount == 0) @@ -354,21 +338,18 @@ namespace Fantasy.PacketParser packetBodyCount = -1; } - if (packetBodyCount > ProgramDefine.MaxMessageSize) + if (packetBodyCount > Packet.PacketBodyMaxLength) { // 检查消息体长度是否超出限制 - throw new Exception($"Message content exceeds {ProgramDefine.MaxMessageSize} bytes"); + throw new Exception($"Message content exceeds {Packet.PacketBodyMaxLength} bytes"); } - var buffer = memoryStream.GetBuffer(); -#if FANTASY_UNITY - ref var bufferRef = ref MemoryMarshal.GetReference(buffer.AsSpan()); -#else - ref var bufferRef = ref MemoryMarshal.GetArrayDataReference(buffer); -#endif - Unsafe.WriteUnaligned(ref bufferRef, packetBodyCount); - Unsafe.WriteUnaligned(ref Unsafe.Add(ref bufferRef, Packet.PacketLength), opCode); - Unsafe.WriteUnaligned(ref Unsafe.Add(ref bufferRef, Packet.OuterPacketRpcIdLocation), rpcId); + fixed (byte* bufferPtr = memoryStream.GetBuffer()) + { + *(int*)bufferPtr = packetBodyCount; + *(uint*)(bufferPtr + Packet.PacketLength) = opCode; + *(uint*)(bufferPtr + Packet.OuterPacketRpcIdLocation) = rpcId; + } return memoryStream; } diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Handler/ReadOnlyMemoryPacketParser.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Handler/ReadOnlyMemoryPacketParser.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Handler/ReadOnlyMemoryPacketParser.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Handler/ReadOnlyMemoryPacketParser.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Interface.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Interface.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Interface.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Interface.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Interface/APackInfo.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Interface/APackInfo.cs similarity index 93% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Interface/APackInfo.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Interface/APackInfo.cs index 1ea6d6b5b..c4163b610 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Interface/APackInfo.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Interface/APackInfo.cs @@ -1,15 +1,15 @@ using System; using System.IO; -using Fantasy.Network; -using Fantasy.Network.Interface; -using Fantasy.Serialize; +using NBC.Network; +using NBC.Network.Interface; +using NBC.Serialize; // ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -namespace Fantasy.PacketParser.Interface +namespace NBC.PacketParser.Interface { public abstract class APackInfo : IDisposable { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Interface/APackInfo.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Interface/APackInfo.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Interface/APackInfo.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Interface/APackInfo.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Interface/APacketParser.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Interface/APacketParser.cs similarity index 89% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Interface/APacketParser.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Interface/APacketParser.cs index 132689b9e..29aba31bb 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Interface/APacketParser.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Interface/APacketParser.cs @@ -1,14 +1,14 @@ using System; using System.Buffers; using System.IO; -using Fantasy.Network.Interface; -using Fantasy.Serialize; +using NBC.Network.Interface; +using NBC.Serialize; #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -namespace Fantasy.PacketParser.Interface +namespace NBC.PacketParser.Interface { /// /// 抽象的包解析器基类,用于解析网络通信数据包。 @@ -19,7 +19,7 @@ namespace Fantasy.PacketParser.Interface internal ANetwork Network; internal MessageDispatcherComponent MessageDispatcherComponent; protected bool IsDisposed { get; private set; } - public abstract MemoryStreamBuffer Pack(ref uint rpcId, ref long routeId, MemoryStreamBuffer memoryStream, IMessage message, Type messageType); + public abstract MemoryStreamBuffer Pack(ref uint rpcId, ref long routeId, MemoryStreamBuffer memoryStream, IMessage message); public virtual void Dispose() { IsDisposed = true; diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Interface/APacketParser.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Interface/APacketParser.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Interface/APacketParser.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Interface/APacketParser.cs.meta diff --git a/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/OpCode.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/OpCode.cs new file mode 100644 index 000000000..b84589155 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/OpCode.cs @@ -0,0 +1,125 @@ +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member +namespace NBC.Network +{ + public struct OpCodeIdStruct + { + // OpCodeIdStruct:5 + 4 + 23 = 32 + // +-------------------------+-------------------------------------------+-----------------------------+ + // | protocol(5) 最多31种类型 | OpCodeProtocolType(4) 最多15种不同的网络协议 | Index(23) 最多8388607个协议 | + // +-------------------------+-------------------------------------------+-----------------------------+ + public uint OpCodeProtocolType { get; private set; } + public uint Protocol { get; private set; } + public uint Index { get; private set; } + + public OpCodeIdStruct(uint opCodeProtocolType, uint protocol, uint index) + { + OpCodeProtocolType = opCodeProtocolType; + Protocol = protocol; + Index = index; + } + + public static implicit operator uint(OpCodeIdStruct opCodeIdStruct) + { + var result = opCodeIdStruct.Index; + result |= opCodeIdStruct.OpCodeProtocolType << 23; + result |= opCodeIdStruct.Protocol << 27; + return result; + } + + public static implicit operator OpCodeIdStruct(uint opCodeId) + { + var opCodeIdStruct = new OpCodeIdStruct() + { + Index = opCodeId & 0x7FFFFF + }; + opCodeId >>= 23; + opCodeIdStruct.OpCodeProtocolType = opCodeId & 0xF; + opCodeId >>= 4; + opCodeIdStruct.Protocol = opCodeId & 0x1F; + return opCodeIdStruct; + } + } + + public static class OpCodeProtocolType + { + public const uint Bson = 1; + public const uint ProtoBuf = 0; + } + + public static class OpCodeType + { + public const uint OuterMessage = 1; + public const uint OuterRequest = 2; + public const uint OuterResponse = 3; + + public const uint InnerMessage = 4; + public const uint InnerRequest = 5; + public const uint InnerResponse = 6; + + public const uint InnerRouteMessage = 7; + public const uint InnerRouteRequest = 8; + public const uint InnerRouteResponse = 9; + + public const uint OuterAddressableMessage = 10; + public const uint OuterAddressableRequest = 11; + public const uint OuterAddressableResponse = 12; + + public const uint InnerAddressableMessage = 13; + public const uint InnerAddressableRequest = 14; + public const uint InnerAddressableResponse = 15; + + public const uint OuterCustomRouteMessage = 16; + public const uint OuterCustomRouteRequest = 17; + public const uint OuterCustomRouteResponse = 18; + + public const uint OuterRoamingMessage = 19; + public const uint OuterRoamingRequest = 20; + public const uint OuterRoamingResponse = 21; + + public const uint InnerRoamingMessage = 22; + public const uint InnerRoamingRequest = 23; + public const uint InnerRoamingResponse = 24; + + public const uint OuterPingRequest = 30; + public const uint OuterPingResponse = 31; + } + + public static class OpCode + { + public static readonly uint BenchmarkMessage = Create(OpCodeProtocolType.ProtoBuf, OpCodeType.OuterMessage, 8388607); + public static readonly uint BenchmarkRequest = Create(OpCodeProtocolType.ProtoBuf, OpCodeType.OuterRequest, 8388607); + public static readonly uint BenchmarkResponse = Create(OpCodeProtocolType.ProtoBuf, OpCodeType.OuterResponse, 8388607); + public static readonly uint PingRequest = Create(OpCodeProtocolType.ProtoBuf, OpCodeType.OuterPingRequest, 1); + public static readonly uint PingResponse = Create(OpCodeProtocolType.ProtoBuf, OpCodeType.OuterPingResponse, 1); + public static readonly uint DefaultResponse = Create(OpCodeProtocolType.ProtoBuf, OpCodeType.InnerResponse, 1); + public static readonly uint DefaultRouteResponse = Create(OpCodeProtocolType.ProtoBuf, OpCodeType.InnerRouteResponse, 7); + public static readonly uint AddressableAddRequest = Create(OpCodeProtocolType.ProtoBuf, OpCodeType.InnerRouteRequest, 1); + public static readonly uint AddressableAddResponse = Create(OpCodeProtocolType.ProtoBuf, OpCodeType.InnerRouteResponse, 1); + public static readonly uint AddressableGetRequest = Create(OpCodeProtocolType.ProtoBuf, OpCodeType.InnerRouteRequest, 2); + public static readonly uint AddressableGetResponse = Create(OpCodeProtocolType.ProtoBuf,OpCodeType.InnerRouteResponse,2); + public static readonly uint AddressableRemoveRequest = Create(OpCodeProtocolType.ProtoBuf, OpCodeType.InnerRouteRequest, 3); + public static readonly uint AddressableRemoveResponse = Create(OpCodeProtocolType.ProtoBuf, OpCodeType.InnerRouteResponse, 3); + public static readonly uint AddressableLockRequest = Create(OpCodeProtocolType.ProtoBuf, OpCodeType.InnerRouteRequest, 4); + public static readonly uint AddressableLockResponse = Create(OpCodeProtocolType.ProtoBuf, OpCodeType.InnerRouteResponse, 4); + public static readonly uint AddressableUnLockRequest = Create(OpCodeProtocolType.ProtoBuf, OpCodeType.InnerRouteRequest, 5); + public static readonly uint AddressableUnLockResponse = Create(OpCodeProtocolType.ProtoBuf, OpCodeType.InnerRouteResponse, 5); + public static readonly uint LinkRoamingRequest = Create(OpCodeProtocolType.ProtoBuf, OpCodeType.InnerRouteRequest, 6); + public static readonly uint LinkRoamingResponse = Create(OpCodeProtocolType.ProtoBuf, OpCodeType.InnerRouteResponse, 6); + public static readonly uint UnLinkRoamingRequest = Create(OpCodeProtocolType.ProtoBuf, OpCodeType.InnerRouteRequest, 8); + public static readonly uint UnLinkRoamingResponse = Create(OpCodeProtocolType.ProtoBuf, OpCodeType.InnerRouteResponse, 8); + public static readonly uint LockTerminusIdRequest = Create(OpCodeProtocolType.ProtoBuf, OpCodeType.InnerRouteRequest, 9); + public static readonly uint LockTerminusIdResponse = Create(OpCodeProtocolType.ProtoBuf, OpCodeType.InnerRouteResponse, 9); + public static readonly uint UnLockTerminusIdRequest = Create(OpCodeProtocolType.ProtoBuf, OpCodeType.InnerRouteRequest, 10); + public static readonly uint UnLockTerminusIdResponse = Create(OpCodeProtocolType.ProtoBuf, OpCodeType.InnerRouteResponse, 10); + public static readonly uint GetTerminusIdRequest = Create(OpCodeProtocolType.ProtoBuf, OpCodeType.InnerRouteRequest, 11); + public static readonly uint GetTerminusIdResponse = Create(OpCodeProtocolType.ProtoBuf, OpCodeType.InnerRouteResponse, 11); + + public static readonly uint TransferTerminusRequest = Create(OpCodeProtocolType.Bson, OpCodeType.InnerRouteRequest, 1); + public static readonly uint TransferTerminusResponse = Create(OpCodeProtocolType.Bson, OpCodeType.InnerRouteResponse, 1); + + public static uint Create(uint opCodeProtocolType, uint protocol, uint index) + { + return new OpCodeIdStruct(opCodeProtocolType, protocol, index); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/OpCode.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/OpCode.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/OpCode.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/OpCode.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Pack.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Pack.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Pack.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Pack.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Pack/InnerPackInfo.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Pack/InnerPackInfo.cs similarity index 83% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Pack/InnerPackInfo.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Pack/InnerPackInfo.cs index d01538f33..eae90337a 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Pack/InnerPackInfo.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Pack/InnerPackInfo.cs @@ -1,10 +1,10 @@ // ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract -using Fantasy.Network; -using Fantasy.Network.Interface; -using Fantasy.PacketParser.Interface; -using Fantasy.Pool; -using Fantasy.Serialize; +using NBC.Network; +using NBC.Network.Interface; +using NBC.PacketParser.Interface; +using NBC.Pool; +using NBC.Serialize; #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member #pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. @@ -14,7 +14,7 @@ namespace Fantasy.PacketParser { public sealed class InnerPackInfo : APackInfo { - private readonly Dictionary> _createInstances = new Dictionary>(); + private readonly Dictionary> _createInstances = new Dictionary>(); public override void Dispose() { @@ -53,13 +53,13 @@ namespace Fantasy.PacketParser if (MemoryStream.Length == 0) { - if (_createInstances.TryGetValue(messageType.TypeHandle, out var createInstance)) + if (_createInstances.TryGetValue(messageType, out var createInstance)) { return createInstance(); } createInstance = CreateInstance.CreateObject(messageType); - _createInstances.Add(messageType.TypeHandle, createInstance); + _createInstances.Add(messageType, createInstance); return createInstance(); } diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Pack/InnerPackInfo.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Pack/InnerPackInfo.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Pack/InnerPackInfo.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Pack/InnerPackInfo.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Pack/OuterPackInfo.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Pack/OuterPackInfo.cs similarity index 94% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Pack/OuterPackInfo.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Pack/OuterPackInfo.cs index 8ce08b7c7..636704a39 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Pack/OuterPackInfo.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Pack/OuterPackInfo.cs @@ -1,16 +1,16 @@ // ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract using System; using System.IO; -using Fantasy.Network; -using Fantasy.Network.Interface; -using Fantasy.PacketParser.Interface; -using Fantasy.Serialize; +using NBC.Network; +using NBC.Network.Interface; +using NBC.PacketParser.Interface; +using NBC.Serialize; #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member #pragma warning disable CS8603 // Possible null reference return. #pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. #pragma warning disable CS8602 // Dereference of a possibly null reference. -namespace Fantasy.PacketParser +namespace NBC.PacketParser { public sealed class OuterPackInfo : APackInfo { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Pack/OuterPackInfo.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Pack/OuterPackInfo.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Pack/OuterPackInfo.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Pack/OuterPackInfo.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Pack/ProcessPackInfo.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Pack/ProcessPackInfo.cs similarity index 88% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Pack/ProcessPackInfo.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Pack/ProcessPackInfo.cs index adf062a41..f01085857 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Pack/ProcessPackInfo.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Pack/ProcessPackInfo.cs @@ -19,7 +19,7 @@ namespace Fantasy.PacketParser private int _disposeCount; public Type MessageType { get; private set; } private static readonly ConcurrentQueue Caches = new ConcurrentQueue(); - private readonly ConcurrentDictionary> _createInstances = new ConcurrentDictionary>(); + private readonly ConcurrentDictionary> _createInstances = new ConcurrentDictionary>(); public override void Dispose() { @@ -54,8 +54,7 @@ namespace Fantasy.PacketParser packInfo.IsDisposed = false; var memoryStream = new MemoryStreamBuffer(); memoryStream.MemoryStreamBufferSource = MemoryStreamBufferSource.Pack; - var opCode = message.OpCode(); - OpCodeIdStruct opCodeIdStruct = opCode; + OpCodeIdStruct opCodeIdStruct = message.OpCode(); memoryStream.Seek(Packet.InnerPacketHeadLength, SeekOrigin.Begin); if (SerializerManager.TryGetSerializer(opCodeIdStruct.OpCodeProtocolType, out var serializer)) @@ -67,7 +66,8 @@ namespace Fantasy.PacketParser { Log.Error($"type:{type} Does not support processing protocol"); } - + + var opCode = scene.MessageDispatcherComponent.GetOpCode(packInfo.MessageType); var packetBodyCount = memoryStreamLength - Packet.InnerPacketHeadLength; if (packetBodyCount == 0) @@ -77,10 +77,10 @@ namespace Fantasy.PacketParser packetBodyCount = -1; } - if (packetBodyCount > ProgramDefine.MaxMessageSize) + if (packetBodyCount > Packet.PacketBodyMaxLength) { // 检查消息体长度是否超出限制 - throw new Exception($"Message content exceeds {ProgramDefine.MaxMessageSize} bytes"); + throw new Exception($"Message content exceeds {Packet.PacketBodyMaxLength} bytes"); } var buffer = memoryStream.GetBuffer(); @@ -128,24 +128,25 @@ namespace Fantasy.PacketParser Log.Debug("Deserialize MemoryStream is null"); return null; } - - var messageTypeTypeHandle = messageType.TypeHandle; + + object obj = null; MemoryStream.Seek(Packet.InnerPacketHeadLength, SeekOrigin.Begin); + if (MemoryStream.Length == 0) { - if (_createInstances.TryGetValue(messageTypeTypeHandle, out var createInstance)) + if (_createInstances.TryGetValue(messageType, out var createInstance)) { return createInstance(); } createInstance = CreateInstance.CreateObject(messageType); - _createInstances.TryAdd(messageTypeTypeHandle, createInstance); + _createInstances.TryAdd(messageType, createInstance); return createInstance(); } if (SerializerManager.TryGetSerializer(OpCodeIdStruct.OpCodeProtocolType, out var serializer)) { - var obj = serializer.Deserialize(messageType, MemoryStream); + obj = serializer.Deserialize(messageType, MemoryStream); MemoryStream.Seek(0, SeekOrigin.Begin); return obj; } diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Pack/ProcessPackInfo.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Pack/ProcessPackInfo.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Pack/ProcessPackInfo.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Pack/ProcessPackInfo.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Packet.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Packet.cs similarity index 91% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Packet.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Packet.cs index 1067996e6..2a507b2ae 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Packet.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Packet.cs @@ -1,10 +1,14 @@ -namespace Fantasy.PacketParser +namespace NBC.PacketParser { /// /// 提供关于消息包的常量定义。 /// public struct Packet { + /// + /// 消息体最大长度 + /// + public const int PacketBodyMaxLength = ushort.MaxValue * 16; /// /// 消息体长度在消息头占用的长度 /// diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Packet.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Packet.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/Packet.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/Packet.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/PacketParserFactory.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/PacketParserFactory.cs similarity index 98% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/PacketParserFactory.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/PacketParserFactory.cs index 679f95dc8..fed007beb 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/PacketParserFactory.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/PacketParserFactory.cs @@ -1,14 +1,14 @@ using System; -using Fantasy.Network; -using Fantasy.Network.Interface; -using Fantasy.PacketParser.Interface; +using NBC.Network; +using NBC.Network.Interface; +using NBC.PacketParser.Interface; // ReSharper disable PossibleNullReferenceException #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member #pragma warning disable CS8602 // Dereference of a possibly null reference. #pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. #pragma warning disable CS8603 // Possible null reference return. -namespace Fantasy.PacketParser +namespace NBC.PacketParser { internal static class PacketParserFactory { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/PacketParserFactory.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/PacketParserFactory.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/PacketParserFactory.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/PacketParser/PacketParserFactory.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/ClientMessageScheduler.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/ClientMessageScheduler.cs similarity index 96% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/ClientMessageScheduler.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/ClientMessageScheduler.cs index baf981aca..9bcd570b0 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/ClientMessageScheduler.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/ClientMessageScheduler.cs @@ -1,12 +1,12 @@ using System; -using Fantasy.Async; -using Fantasy.Network; -using Fantasy.Network.Interface; -using Fantasy.PacketParser.Interface; +using NBC.Async; +using NBC.Network; +using NBC.Network.Interface; +using NBC.PacketParser.Interface; #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -namespace Fantasy.Scheduler +namespace NBC.Scheduler { #if FANTASY_UNITY || FANTASY_CONSOLE /// diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/ClientMessageScheduler.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/ClientMessageScheduler.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/ClientMessageScheduler.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/ClientMessageScheduler.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/InnerMessageScheduler.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/InnerMessageScheduler.cs similarity index 95% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/InnerMessageScheduler.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/InnerMessageScheduler.cs index 275ecd39c..b1b55f62f 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/InnerMessageScheduler.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/InnerMessageScheduler.cs @@ -6,7 +6,6 @@ using Fantasy.Network; using Fantasy.Network.Interface; using Fantasy.PacketParser; using Fantasy.PacketParser.Interface; -#pragma warning disable CS8602 // Dereference of a possibly null reference. #pragma warning disable CS8604 // Possible null reference argument. #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member @@ -86,12 +85,12 @@ namespace Fantasy.Scheduler if (!Scene.TryGetEntity(packInfo.RouteId, out var entity)) { - Scene.MessageDispatcherComponent.FailRouteResponse(session, packInfo.ProtocolCode, InnerErrorCode.ErrNotFoundRoute, packInfo.RpcId); + Scene.MessageDispatcherComponent.FailRouteResponse(session, messageType, InnerErrorCode.ErrNotFoundRoute, packInfo.RpcId); return; } var obj = packInfo.Deserialize(messageType); - await Scene.MessageDispatcherComponent.RouteMessageHandler(session, messageType, entity, (IMessage)obj, packInfo.RpcId, packInfo.ProtocolCode); + await Scene.MessageDispatcherComponent.RouteMessageHandler(session, messageType, entity, (IMessage)obj, packInfo.RpcId); } return; @@ -111,12 +110,12 @@ namespace Fantasy.Scheduler if (!Scene.TryGetEntity(packInfo.RouteId, out var entity)) { - Scene.MessageDispatcherComponent.FailRouteResponse(session, packInfo.ProtocolCode, InnerErrorCode.ErrNotFoundRoute, packInfo.RpcId); + Scene.MessageDispatcherComponent.FailRouteResponse(session, messageType, InnerErrorCode.ErrNotFoundRoute, packInfo.RpcId); return; } var obj = packInfo.Deserialize(messageType); - await Scene.MessageDispatcherComponent.RouteMessageHandler(session, messageType, entity, (IMessage)obj, packInfo.RpcId, packInfo.ProtocolCode); + await Scene.MessageDispatcherComponent.RouteMessageHandler(session, messageType, entity, (IMessage)obj, packInfo.RpcId); } return; @@ -159,7 +158,7 @@ namespace Fantasy.Scheduler case OpCodeType.OuterAddressableRequest: case OpCodeType.OuterAddressableMessage: { - Scene.MessageDispatcherComponent.FailRouteResponse(session, packInfo.ProtocolCode, InnerErrorCode.ErrNotFoundRoute, packInfo.RpcId); + Scene.MessageDispatcherComponent.FailRouteResponse(session, messageType, InnerErrorCode.ErrNotFoundRoute, packInfo.RpcId); return; } } @@ -191,7 +190,7 @@ namespace Fantasy.Scheduler } var obj = packInfo.Deserialize(messageType); - await Scene.MessageDispatcherComponent.RouteMessageHandler(session, messageType, entity, (IMessage)obj, packInfo.RpcId, packInfo.ProtocolCode); + await Scene.MessageDispatcherComponent.RouteMessageHandler(session, messageType, entity, (IMessage)obj, packInfo.RpcId); } return; diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/InnerMessageScheduler.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/InnerMessageScheduler.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/InnerMessageScheduler.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/InnerMessageScheduler.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/Interface.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/Interface.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/Interface.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/Interface.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/Interface/ANetworkMessageScheduler.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/Interface/ANetworkMessageScheduler.cs similarity index 86% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/Interface/ANetworkMessageScheduler.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/Interface/ANetworkMessageScheduler.cs index b296cffb2..db2c34258 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/Interface/ANetworkMessageScheduler.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/Interface/ANetworkMessageScheduler.cs @@ -1,14 +1,15 @@ using System; using System.IO; -using Fantasy.Async; -using Fantasy.Network; -using Fantasy.Network.Interface; -using Fantasy.PacketParser.Interface; +using NBC.Async; +using NBC.Network; +using NBC.Network.Interface; +using NBC.PacketParser.Interface; + #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member // ReSharper disable UnassignedField.Global #pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. -namespace Fantasy.Scheduler +namespace NBC.Scheduler { public abstract class ANetworkMessageScheduler { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/Interface/ANetworkMessageScheduler.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/Interface/ANetworkMessageScheduler.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/Interface/ANetworkMessageScheduler.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/Interface/ANetworkMessageScheduler.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/MessageHelper.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/MessageHelper.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/MessageHelper.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/MessageHelper.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/MessageHelper/MessageSender.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/MessageHelper/MessageSender.cs similarity index 97% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/MessageHelper/MessageSender.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/MessageHelper/MessageSender.cs index c64518313..843fba16d 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/MessageHelper/MessageSender.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/MessageHelper/MessageSender.cs @@ -1,12 +1,12 @@ using System; -using Fantasy.Async; -using Fantasy.Helper; -using Fantasy.Network.Interface; +using NBC.Async; +using NBC.Helper; +using NBC.Network.Interface; #pragma warning disable CS8625 #pragma warning disable CS8618 -namespace Fantasy.Scheduler +namespace NBC.Scheduler { /// /// 网络消息发送者的类。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/MessageHelper/MessageSender.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/MessageHelper/MessageSender.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/MessageHelper/MessageSender.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/MessageHelper/MessageSender.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/MessageHelper/NetworkMessagingComponent.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/MessageHelper/NetworkMessagingComponent.cs similarity index 92% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/MessageHelper/NetworkMessagingComponent.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/MessageHelper/NetworkMessagingComponent.cs index b176a4aaa..7580dd998 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/MessageHelper/NetworkMessagingComponent.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/MessageHelper/NetworkMessagingComponent.cs @@ -71,7 +71,7 @@ namespace Fantasy.Scheduler public readonly SortedDictionary RequestCallback = new(); public readonly Dictionary TimeoutRouteMessageSenders = new(); - public void SendInnerRoute(long routeId, T message) where T : IRouteMessage + public void SendInnerRoute(long routeId, IRouteMessage message) { if (routeId == 0) { @@ -93,7 +93,7 @@ namespace Fantasy.Scheduler Scene.GetSession(routeId).Send(0, routeId, messageType, packInfo); } - public void SendInnerRoute(ICollection routeIdCollection, T message) where T : IRouteMessage + public void SendInnerRoute(ICollection routeIdCollection, IRouteMessage message) { if (routeIdCollection.Count <= 0) { @@ -109,7 +109,7 @@ namespace Fantasy.Scheduler } } - public async FTask SendAddressable(long addressableId, T message) where T : IRouteMessage + public async FTask SendAddressable(long addressableId, IRouteMessage message) { await CallAddressable(addressableId, message); } @@ -121,7 +121,7 @@ namespace Fantasy.Scheduler Log.Error($"CallInnerRoute routeId == 0"); return null; } - + var rpcId = ++_rpcId; var session = Scene.GetSession(routeId); var requestCallback = FTask.Create(false); @@ -130,7 +130,7 @@ namespace Fantasy.Scheduler return await requestCallback; } - public async FTask CallInnerRouteBySession(Session session, long routeId, T request) where T : IRouteMessage + public async FTask CallInnerRouteBySession(Session session, long routeId, IRouteMessage request) { var rpcId = ++_rpcId; var requestCallback = FTask.Create(false); @@ -139,7 +139,7 @@ namespace Fantasy.Scheduler return await requestCallback; } - public async FTask CallInnerRoute(long routeId, T request) where T : IRouteMessage + public async FTask CallInnerRoute(long routeId, IRouteMessage request) { if (routeId == 0) { @@ -151,11 +151,11 @@ namespace Fantasy.Scheduler var session = Scene.GetSession(routeId); var requestCallback = FTask.Create(false); RequestCallback.Add(rpcId, MessageSender.Create(rpcId, request, requestCallback)); - session.Send(request, rpcId, routeId); + session.Send(request, rpcId, routeId); return await requestCallback; } - public async FTask CallAddressable(long addressableId, T request) where T : IRouteMessage + public async FTask CallAddressable(long addressableId, IRouteMessage request) { var failCount = 0; @@ -172,7 +172,7 @@ namespace Fantasy.Scheduler if (addressableRouteId == 0) { - return MessageDispatcherComponent.CreateResponse(request.OpCode(), InnerErrorCode.ErrNotFoundRoute); + return MessageDispatcherComponent.CreateResponse(request.GetType(), InnerErrorCode.ErrNotFoundRoute); } var iRouteResponse = await CallInnerRoute(addressableRouteId, request); @@ -246,8 +246,8 @@ namespace Fantasy.Scheduler } case IRequest iRequest: { + var response = MessageDispatcherComponent.CreateResponse(iRequest.GetType(), InnerErrorCode.ErrRpcFail); var responseRpcId = messageSender.RpcId; - var response = MessageDispatcherComponent.CreateResponse(iRequest.OpCode(), InnerErrorCode.ErrRpcFail); ResponseHandler(responseRpcId, response); Log.Warning($"timeout rpcId:{rpcId} responseRpcId:{responseRpcId} {iRequest.ToJson()}"); break; @@ -256,7 +256,7 @@ namespace Fantasy.Scheduler { Log.Error(messageSender.Request != null ? $"Unsupported protocol type {messageSender.Request.GetType()} rpcId:{rpcId} messageSender.Request != null" - : $"Unsupported protocol type:{messageSender.MessageType} rpcId:{rpcId}"); + : $"Unsupported protocol type:{messageSender.MessageType.FullName} rpcId:{rpcId}"); RequestCallback.Remove(rpcId); break; } diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/MessageHelper/NetworkMessagingComponent.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/MessageHelper/NetworkMessagingComponent.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/MessageHelper/NetworkMessagingComponent.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/MessageHelper/NetworkMessagingComponent.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/MessageHelper/OnNetworkMessageUpdateCheckTimeout.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/MessageHelper/OnNetworkMessageUpdateCheckTimeout.cs similarity index 97% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/MessageHelper/OnNetworkMessageUpdateCheckTimeout.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/MessageHelper/OnNetworkMessageUpdateCheckTimeout.cs index 7dd2ea3fc..223ca0541 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/MessageHelper/OnNetworkMessageUpdateCheckTimeout.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/MessageHelper/OnNetworkMessageUpdateCheckTimeout.cs @@ -1,5 +1,4 @@ -using Fantasy.Helper; -using Fantasy.Timer; +using NBC.Helper; #if FANTASY_NET // ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/MessageHelper/OnNetworkMessageUpdateCheckTimeout.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/MessageHelper/OnNetworkMessageUpdateCheckTimeout.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/MessageHelper/OnNetworkMessageUpdateCheckTimeout.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/MessageHelper/OnNetworkMessageUpdateCheckTimeout.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/OuterMessageScheduler.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/OuterMessageScheduler.cs similarity index 90% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/OuterMessageScheduler.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/OuterMessageScheduler.cs index b7a95f289..84e4601ab 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/OuterMessageScheduler.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/OuterMessageScheduler.cs @@ -1,7 +1,7 @@ using System; -using Fantasy.Async; -using Fantasy.Network; -using Fantasy.PacketParser.Interface; +using NBC.Async; +using NBC.Network; +using NBC.PacketParser.Interface; #if FANTASY_NET using System.Text; using Fantasy.Network.Interface; @@ -10,14 +10,13 @@ using Fantasy.PacketParser; using Fantasy.Helper; using Fantasy.InnerMessage; using Fantasy.Roaming; -#pragma warning disable CS8604 // Possible null reference argument. #endif #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member // ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract -namespace Fantasy.Scheduler +namespace NBC.Scheduler { /// /// 提供了一个机制来调度和处理外部网络消息。 @@ -126,7 +125,7 @@ namespace Fantasy.Scheduler { throw new Exception("OuterMessageScheduler error session does not have an AddressableRouteComponent component"); } - + await addressableRouteComponent.Send(messageType, packInfo); } finally @@ -165,8 +164,7 @@ namespace Fantasy.Scheduler // session可能已经断开了,所以这里需要判断 if (session.RuntimeId == runtimeId) { - var responseType = MessageDispatcherComponent.GetOpCodeType(response.OpCode()); - session.Send(response, responseType, rpcId); + session.Send(response, rpcId); } } finally @@ -186,9 +184,7 @@ namespace Fantasy.Scheduler try { - var routeType = MessageDispatcherComponent.GetCustomRouteType(packInfoProtocolCode); - - if (!routeType.HasValue) + if (!MessageDispatcherComponent.GetCustomRouteType(packInfoProtocolCode, out var routeType)) { throw new Exception($"OuterMessageScheduler error 可能遭受到恶意发包或没有协议定义ProtocolCode ProtocolCode:{packInfo.ProtocolCode}"); } @@ -207,7 +203,7 @@ namespace Fantasy.Scheduler throw new Exception($"OuterMessageScheduler CustomRouteType session does not have an routeComponent component messageType:{messageType.FullName} ProtocolCode:{packInfo.ProtocolCode}"); } - if (!routeComponent.TryGetRouteId(routeType.Value, out var routeId)) + if (!routeComponent.TryGetRouteId(routeType, out var routeId)) { throw new Exception($"OuterMessageScheduler RouteComponent cannot find RouteId with RouteType {routeType}"); } @@ -231,9 +227,7 @@ namespace Fantasy.Scheduler try { - var routeType = MessageDispatcherComponent.GetCustomRouteType(packInfoProtocolCode); - - if (!routeType.HasValue) + if (!MessageDispatcherComponent.GetCustomRouteType(packInfoProtocolCode, out var routeType)) { throw new Exception($"OuterMessageScheduler error 可能遭受到恶意发包或没有协议定义ProtocolCode ProtocolCode:{packInfo.ProtocolCode}"); } @@ -252,7 +246,7 @@ namespace Fantasy.Scheduler throw new Exception("OuterMessageScheduler CustomRouteType session does not have an routeComponent component"); } - if (!routeComponent.TryGetRouteId(routeType.Value, out var routeId)) + if (!routeComponent.TryGetRouteId(routeType, out var routeId)) { throw new Exception($"OuterMessageScheduler RouteComponent cannot find RouteId with RouteType {routeType}"); } @@ -263,8 +257,7 @@ namespace Fantasy.Scheduler // session可能已经断开了,所以这里需要判断 if (session.RuntimeId == runtimeId) { - var responseType = MessageDispatcherComponent.GetOpCodeType(response.OpCode()); - session.Send(response, responseType, rpcId); + session.Send(response, rpcId); } } finally @@ -284,9 +277,7 @@ namespace Fantasy.Scheduler try { - var routeType = MessageDispatcherComponent.GetCustomRouteType(packInfoProtocolCode); - - if (!routeType.HasValue) + if (!MessageDispatcherComponent.GetCustomRouteType(packInfoProtocolCode, out var routeType)) { throw new Exception($"OuterMessageScheduler error 可能遭受到恶意发包或没有协议定义ProtocolCode ProtocolCode:{packInfo.ProtocolCode}"); } @@ -305,7 +296,7 @@ namespace Fantasy.Scheduler throw new Exception($"OuterMessageScheduler Roaming session does not have an sessionRoamingComponent component messageType:{messageType.FullName} ProtocolCode:{packInfo.ProtocolCode}"); } - await sessionRoamingComponent.Send(routeType.Value, messageType, packInfo); + await sessionRoamingComponent.Send(routeType, messageType, packInfo); } finally { @@ -324,9 +315,7 @@ namespace Fantasy.Scheduler try { - var routeType = MessageDispatcherComponent.GetCustomRouteType(packInfoProtocolCode); - - if (!routeType.HasValue) + if (!MessageDispatcherComponent.GetCustomRouteType(packInfoProtocolCode, out var routeType)) { throw new Exception($"OuterMessageScheduler error 可能遭受到恶意发包或没有协议定义ProtocolCode ProtocolCode:{packInfo.ProtocolCode}"); } @@ -347,12 +336,11 @@ namespace Fantasy.Scheduler var rpcId = packInfo.RpcId; var runtimeId = session.RuntimeId; - var response = await sessionRoamingComponent.Call(routeType.Value, messageType, packInfo); + var response = await sessionRoamingComponent.Call(routeType, messageType, packInfo); // session可能已经断开了,所以这里需要判断 if (session.RuntimeId == runtimeId) { - var responseType = MessageDispatcherComponent.GetOpCodeType(response.OpCode()); - session.Send(response, responseType, rpcId); + session.Send(response, rpcId); } } finally diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/OuterMessageScheduler.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/OuterMessageScheduler.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Scheduler/OuterMessageScheduler.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Message/Scheduler/OuterMessageScheduler.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Exception.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Exception.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Exception.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Exception.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Exception/ScanException.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Exception/ScanException.cs similarity index 95% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Exception/ScanException.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Exception/ScanException.cs index 43c695a80..77ba2f210 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Exception/ScanException.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Exception/ScanException.cs @@ -1,6 +1,6 @@ using System; -namespace Fantasy.Network +namespace NBC.Network { /// /// 在扫描过程中发生的异常。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Exception/ScanException.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Exception/ScanException.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Exception/ScanException.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Exception/ScanException.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/HTTP.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/HTTP.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/HTTP.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/HTTP.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/HTTP/HTTPServerNetwork.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/HTTP/HTTPServerNetwork.cs similarity index 60% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/HTTP/HTTPServerNetwork.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/HTTP/HTTPServerNetwork.cs index 98a3aca81..9ca4eba02 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/HTTP/HTTPServerNetwork.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/HTTP/HTTPServerNetwork.cs @@ -43,8 +43,9 @@ namespace Fantasy.Network.HTTP if (e.ErrorCode == 5) { var sb = new StringBuilder(); - sb.AppendLine("CMD管理员中输入下面命令:"); - sb.AppendLine($"netsh http add urlacl url=http://{bindIp}:{port}/ user=Everyone"); + sb.AppendLine("CMD管理员中输入下面其中一个命令,具体根据您是HTTPS或HTTP决定:"); + sb.AppendLine($"HTTP请输入如下:netsh http add urlacl url=http://{bindIp}:{port}/ user=Everyone"); + sb.AppendLine($"HTTPS请输入如下:netsh http add urlacl url=https://{bindIp}:{port}/ user=Everyone"); throw new Exception(sb.ToString(), e); } @@ -59,7 +60,10 @@ namespace Fantasy.Network.HTTP private void StartAsync(string bindIp, int port) { var builder = WebApplication.CreateBuilder(); + // 配置日志级别为 Warning 或更高 builder.Logging.ClearProviders(); + builder.Logging.AddConsole(); + builder.Logging.SetMinimumLevel(LogLevel.Warning); // 将Scene注册到 DI 容器中,传递给控制器 builder.Services.AddSingleton(Scene); // 注册Scene同步过滤器 @@ -67,13 +71,37 @@ namespace Fantasy.Network.HTTP // 注册控制器服务 var addControllers = builder.Services.AddControllers() .AddJsonOptions(options => { options.JsonSerializerOptions.PropertyNamingPolicy = null; }); - foreach (var assemblyManifest in AssemblyManifest.GetAssemblyManifest) + foreach (var assembly in AssemblySystem.ForEachAssembly) { - addControllers.AddApplicationPart(assemblyManifest.Assembly); + addControllers.AddApplicationPart(assembly); } + var listenUrl = ""; var app = builder.Build(); - var listenUrl = $"http://{bindIp}:{port}/"; - app.Urls.Add(listenUrl); + // 检测当前路径下是否有证书文件 + var certificatePath = Path.Combine(AppContext.BaseDirectory, $"certificate{bindIp}{port}"); + if (Directory.Exists(certificatePath)) + { + // 加载包含证书链的 PEM 文件 + var pemCertChain = File.ReadAllText(Path.Combine(certificatePath, "chain.pem")); + var pemPrivateKey = File.ReadAllText(Path.Combine(certificatePath, "private-key.pem")); + // 配置 HTTPS 监听并使用证书 + builder.WebHost.ConfigureKestrel(kestrelServerOptions => + { + kestrelServerOptions.ConfigureHttpsDefaults(https => + { + https.ServerCertificate = X509Certificate2.CreateFromPem(pemCertChain, pemPrivateKey); + }); + }); + listenUrl = $"https://{bindIp}:{port}/"; + app.Urls.Add(listenUrl); + app.UseHttpsRedirection(); + } + else + { + // 不安全的HTTP地址 + listenUrl = $"http://{bindIp}:{port}/"; + app.Urls.Add(listenUrl); + } // 启用开发者工具 if (app.Environment.IsDevelopment()) { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/HTTP/HTTPServerNetwork.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/HTTP/HTTPServerNetwork.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/HTTP/HTTPServerNetwork.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/HTTP/HTTPServerNetwork.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/HTTP/SceneContextFilter.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/HTTP/SceneContextFilter.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/HTTP/SceneContextFilter.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/HTTP/SceneContextFilter.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/HTTP/SceneContextFilter.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/HTTP/SceneContextFilter.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/HTTP/SceneContextFilter.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/HTTP/SceneContextFilter.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Interface.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Interface.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Interface.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Interface.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Interface/AClientNetwork.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Interface/AClientNetwork.cs similarity index 91% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Interface/AClientNetwork.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Interface/AClientNetwork.cs index 7556ff145..23c9817f2 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Interface/AClientNetwork.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Interface/AClientNetwork.cs @@ -1,13 +1,13 @@ using System; using System.IO; -using Fantasy.Serialize; +using NBC.Serialize; // ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -namespace Fantasy.Network.Interface +namespace NBC.Network.Interface { /// /// 抽象客户端网络基类。 @@ -17,7 +17,7 @@ namespace Fantasy.Network.Interface protected bool IsInit; public Session Session { get; protected set; } public abstract Session Connect(string remoteAddress, Action onConnectComplete, Action onConnectFail, Action onConnectDisconnect, bool isHttps, int connectTimeout = 5000); - public abstract void Send(uint rpcId, long routeId, MemoryStreamBuffer memoryStream, IMessage message, Type messageType); + public abstract void Send(uint rpcId, long routeId, MemoryStreamBuffer memoryStream, IMessage message); public override void Dispose() { IsInit = false; diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Interface/AClientNetwork.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Interface/AClientNetwork.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Interface/AClientNetwork.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Interface/AClientNetwork.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Interface/ANetwork.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Interface/ANetwork.cs similarity index 97% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Interface/ANetwork.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Interface/ANetwork.cs index fdb85f2ff..2043babae 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Interface/ANetwork.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Interface/ANetwork.cs @@ -2,15 +2,15 @@ using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.IO; -using Fantasy.Entitas; -using Fantasy.PacketParser; -using Fantasy.Scheduler; -using Fantasy.Serialize; +using NBC.Serialize; +using NBC.Entitas; +using NBC.PacketParser; +using NBC.Scheduler; #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -namespace Fantasy.Network.Interface +namespace NBC.Network.Interface { /// /// 抽象网络基类。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Interface/ANetwork.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Interface/ANetwork.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Interface/ANetwork.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Interface/ANetwork.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Interface/ANetworkServerChannel.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Interface/ANetworkServerChannel.cs similarity index 96% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Interface/ANetworkServerChannel.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Interface/ANetworkServerChannel.cs index 1e1bda4b2..788a235e2 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Interface/ANetworkServerChannel.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Interface/ANetworkServerChannel.cs @@ -49,7 +49,7 @@ namespace Fantasy.Network.Interface } } - public abstract void Send(uint rpcId, long routeId, MemoryStreamBuffer memoryStream, IMessage message, Type messageType); + public abstract void Send(uint rpcId, long routeId, MemoryStreamBuffer memoryStream, IMessage message); } } #endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Interface/ANetworkServerChannel.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Interface/ANetworkServerChannel.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Interface/ANetworkServerChannel.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Interface/ANetworkServerChannel.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Interface/INetworkChannel.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Interface/INetworkChannel.cs similarity index 73% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Interface/INetworkChannel.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Interface/INetworkChannel.cs index 2d7e727ae..b0f9a2e29 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Interface/INetworkChannel.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Interface/INetworkChannel.cs @@ -1,14 +1,14 @@ using System; using System.IO; -using Fantasy.Serialize; +using NBC.Serialize; #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -namespace Fantasy.Network.Interface +namespace NBC.Network.Interface { public interface INetworkChannel : IDisposable { public Session Session { get;} public bool IsDisposed { get;} - public void Send(uint rpcId, long routeId, MemoryStreamBuffer memoryStream, IMessage message, Type messageType); + public void Send(uint rpcId, long routeId, MemoryStreamBuffer memoryStream, IMessage message); } } \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Interface/INetworkChannel.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Interface/INetworkChannel.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/Interface/INetworkChannel.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/Interface/INetworkChannel.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base/Kcp.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base/Kcp.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base/Kcp.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base/Kcp.cs index 47316cbe1..aa1947de5 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base/Kcp.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base/Kcp.cs @@ -17,12 +17,12 @@ namespace KCP /// /// KCP output destination /// KCP output size (excluding reserved) - internal delegate void KcpCallback(byte[] buffer, int length); + public delegate void KcpCallback(byte[] buffer, int length); /// /// Kcp /// - internal sealed unsafe class Kcp : IDisposable + public sealed unsafe class Kcp : IDisposable { /// /// Kcp diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base/Kcp.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base/Kcp.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base/Kcp.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base/Kcp.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base/c.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base/c.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base/c.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base/c.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base/c/kcp.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base/c/kcp.cs similarity index 96% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base/c/kcp.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base/c/kcp.cs index c5c36f074..a202cfde2 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base/c/kcp.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base/c/kcp.cs @@ -16,7 +16,7 @@ namespace kcp /// /// https://github.com/skywind3000/kcp /// - internal static unsafe partial class KCP + public static unsafe partial class KCP { //===================================================================== // KCP BASIC @@ -165,50 +165,50 @@ namespace kcp return ((int)(later - earlier)); } - // //--------------------------------------------------------------------- - // // manage segment - // //--------------------------------------------------------------------- - // public static delegate* managed ikcp_malloc_hook = null; - // public static delegate* managed ikcp_free_hook = null; + //--------------------------------------------------------------------- + // manage segment + //--------------------------------------------------------------------- + public static delegate* managed ikcp_malloc_hook = null; + public static delegate* managed ikcp_free_hook = null; - // // internal malloc - // public static void* ikcp_malloc(nuint size) - // { - // if (ikcp_malloc_hook != null) - // return ikcp_malloc_hook(size); - // return malloc(size); - // } + // internal malloc + public static void* ikcp_malloc(nuint size) + { + if (ikcp_malloc_hook != null) + return ikcp_malloc_hook(size); + return malloc(size); + } - // // internal free - // public static void ikcp_free(void* ptr) - // { - // if (ikcp_free_hook != null) - // { - // ikcp_free_hook(ptr); - // } - // else - // { - // free(ptr); - // } - // } + // internal free + public static void ikcp_free(void* ptr) + { + if (ikcp_free_hook != null) + { + ikcp_free_hook(ptr); + } + else + { + free(ptr); + } + } - // // redefine allocator - // public static void ikcp_allocator(delegate* managed new_malloc, delegate* managed new_free) - // { - // ikcp_malloc_hook = new_malloc; - // ikcp_free_hook = new_free; - // } + // redefine allocator + public static void ikcp_allocator(delegate* managed new_malloc, delegate* managed new_free) + { + ikcp_malloc_hook = new_malloc; + ikcp_free_hook = new_free; + } // allocate a new kcp segment public static IKCPSEG* ikcp_segment_new(IKCPCB* kcp, int size) { - return (IKCPSEG*)malloc((nuint)(sizeof(IKCPSEG) + size)); + return (IKCPSEG*)ikcp_malloc((nuint)(sizeof(IKCPSEG) + size)); } // delete a segment public static void ikcp_segment_delete(IKCPCB* kcp, IKCPSEG* seg) { - free(seg); + ikcp_free(seg); } // output segment @@ -226,7 +226,7 @@ namespace kcp //--------------------------------------------------------------------- public static IKCPCB* ikcp_create(uint conv, int reserved, ref byte[] buffer) { - IKCPCB* kcp = (IKCPCB*)malloc((nuint)sizeof(IKCPCB)); + IKCPCB* kcp = (IKCPCB*)ikcp_malloc((nuint)sizeof(IKCPCB)); if (kcp == null) return null; kcp->conv = conv; kcp->snd_una = 0; @@ -318,7 +318,7 @@ namespace kcp if (kcp->acklist != null) { - free(kcp->acklist); + ikcp_free(kcp->acklist); } kcp->nrcv_buf = 0; @@ -327,7 +327,7 @@ namespace kcp kcp->nsnd_que = 0; kcp->ackcount = 0; kcp->acklist = null; - free(kcp); + ikcp_free(kcp); } } @@ -669,7 +669,7 @@ namespace kcp uint newblock; newblock = newsize <= 8 ? 8 : _iceilpow2_(newsize); - acklist = (uint*)malloc((nuint)(newblock * sizeof(uint) * 2)); + acklist = (uint*)ikcp_malloc((nuint)(newblock * sizeof(uint) * 2)); if (acklist == null) { @@ -686,7 +686,7 @@ namespace kcp acklist[x * 2 + 1] = kcp->acklist[x * 2 + 1]; } - free(kcp->acklist); + ikcp_free(kcp->acklist); } kcp->acklist = acklist; diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base/c/kcp.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base/c/kcp.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base/c/kcp.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base/c/kcp.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base/define.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base/define.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base/define.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base/define.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base/define/system.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base/define/system.cs similarity index 51% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base/define/system.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base/define/system.cs index fec2d37ab..053b8c556 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base/define/system.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base/define/system.cs @@ -9,9 +9,9 @@ using System.Runtime.InteropServices; namespace kcp { - internal static unsafe partial class KCP + public static unsafe partial class KCP { - private static void* malloc(nuint size) + public static void* malloc(nuint size) { #if NET6_0_OR_GREATER return NativeMemory.Alloc((nuint)size); @@ -20,7 +20,7 @@ namespace kcp #endif } - private static void free(void* memory) + public static void free(void* memory) { #if NET6_0_OR_GREATER NativeMemory.Free(memory); @@ -29,13 +29,13 @@ namespace kcp #endif } - private static void memcpy(void* dst, void* src, nuint size) => Unsafe.CopyBlockUnaligned(dst, src, (uint)size); + public static void memcpy(void* dst, void* src, nuint size) => Unsafe.CopyBlockUnaligned(dst, src, (uint)size); - private static void memset(void* dst, byte val, nuint size) => Unsafe.InitBlockUnaligned(dst, val, (uint)size); + public static void memset(void* dst, byte val, nuint size) => Unsafe.InitBlockUnaligned(dst, val, (uint)size); [Conditional("DEBUG")] - private static void assert(bool condition) => Debug.Assert(condition); + public static void assert(bool condition) => Debug.Assert(condition); - private static void abort() => Environment.Exit(-1); + public static void abort() => Environment.Exit(-1); } } \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base/define/system.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base/define/system.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base/define/system.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base/define/system.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base/include.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base/include.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base/include.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base/include.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base/include/kcp.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base/include/kcp.cs similarity index 95% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base/include/kcp.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base/include/kcp.cs index 838cc09ed..98a83d936 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base/include/kcp.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base/include/kcp.cs @@ -8,13 +8,13 @@ using System.Runtime.InteropServices; namespace kcp { [StructLayout(LayoutKind.Sequential)] - internal unsafe struct IQUEUEHEAD + public unsafe struct IQUEUEHEAD { public IQUEUEHEAD* next; public IQUEUEHEAD* prev; } - internal static unsafe partial class KCP + public static unsafe partial class KCP { [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void iqueue_init(IQUEUEHEAD* head) @@ -65,7 +65,7 @@ namespace kcp } [StructLayout(LayoutKind.Sequential)] - internal unsafe struct IKCPSEG + public unsafe struct IKCPSEG { public IQUEUEHEAD node; public uint conv; @@ -84,7 +84,7 @@ namespace kcp } [StructLayout(LayoutKind.Sequential)] - internal unsafe struct IKCPCB + public unsafe struct IKCPCB { public uint conv, mtu, mss, state; public uint snd_una, snd_nxt, rcv_nxt; @@ -109,7 +109,7 @@ namespace kcp public int nocwnd, stream; } - internal static partial class KCP + public static partial class KCP { public const uint IKCP_LOG_OUTPUT = 1; public const uint IKCP_LOG_INPUT = 2; diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base/include/kcp.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base/include/kcp.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Base/include/kcp.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Base/include/kcp.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Client.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Client.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Client.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Client.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Client/KCPClientNetwork.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Client/KCPClientNetwork.cs similarity index 96% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Client/KCPClientNetwork.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Client/KCPClientNetwork.cs index ab45e4982..ac2d487ed 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Client/KCPClientNetwork.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Client/KCPClientNetwork.cs @@ -1,4 +1,3 @@ -#if !FANTASY_WEBGL using System; using System.Buffers; using System.Collections.Generic; @@ -10,13 +9,14 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Security.Cryptography; using System.Threading; -using Fantasy.Async; -using Fantasy.Entitas.Interface; -using Fantasy.Helper; -using Fantasy.Network.Interface; -using Fantasy.PacketParser; -using Fantasy.Serialize; using KCP; +using NBC.Async; +using NBC.Entitas.Interface; +using NBC.Helper; +using NBC.Network.Interface; +using NBC.PacketParser; +using NBC.Serialize; + // ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract // ReSharper disable PossibleNullReferenceException #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member @@ -25,16 +25,16 @@ using KCP; #pragma warning disable CS8622 // Nullability of reference types in type of parameter doesn't match the target delegate (possibly because of nullability attributes). #pragma warning disable CS8602 // Dereference of a possibly null reference. -namespace Fantasy.Network.KCP +namespace NBC.Network.KCP { - internal sealed class KCPClientNetworkUpdateSystem : UpdateSystem + public sealed class KCPClientNetworkUpdateSystem : UpdateSystem { protected override void Update(KCPClientNetwork self) { self.CheckUpdate(); } } - internal sealed class KCPClientNetwork : AClientNetwork + public sealed class KCPClientNetwork : AClientNetwork { private Kcp _kcp; private Socket _socket; @@ -50,15 +50,15 @@ namespace Fantasy.Network.KCP private BufferPacketParser _packetParser; private readonly Pipe _pipe = new Pipe(); private readonly byte[] _sendBuff = new byte[5]; - private readonly byte[] _receiveBuffer = new byte[ProgramDefine.MaxMessageSize + 20]; + private readonly byte[] _receiveBuffer = new byte[Packet.PacketBodyMaxLength + 20]; private readonly List _updateTimeOutTime = new List(); private readonly SortedSet _updateTimer = new SortedSet(); private readonly SocketAsyncEventArgs _connectEventArgs = new SocketAsyncEventArgs(); private readonly Queue _messageCache = new Queue(); private readonly CancellationTokenSource _cancellationTokenSource = new CancellationTokenSource(); -#if FANTASY_UNITY + private readonly EndPoint _ipEndPoint = new IPEndPoint(IPAddress.Any, 0); -#endif + private event Action OnConnectFail; private event Action OnConnectComplete; private event Action OnConnectDisconnect; @@ -214,16 +214,10 @@ namespace Fantasy.Network.KCP try { var memory = _pipe.Writer.GetMemory(8192); -#if FANTASY_UNITY MemoryMarshal.TryGetArray(memory, out ArraySegment arraySegment); var result = await _socket.ReceiveFromAsync(arraySegment, SocketFlags.None, _ipEndPoint); _pipe.Writer.Advance(result.ReceivedBytes); await _pipe.Writer.FlushAsync(); -#else - var result = await _socket.ReceiveAsync(memory, SocketFlags.None, _cancellationTokenSource.Token); - _pipe.Writer.Advance(result); - await _pipe.Writer.FlushAsync(); -#endif } catch (SocketException) { @@ -520,14 +514,14 @@ namespace Fantasy.Network.KCP private const byte KcpHeaderRequestConnection = (byte)KcpHeader.RequestConnection; private const byte KcpHeaderConfirmConnection = (byte)KcpHeader.ConfirmConnection; - public override void Send(uint rpcId, long routeId, MemoryStreamBuffer memoryStream, IMessage message, Type messageType) + public override void Send(uint rpcId, long routeId, MemoryStreamBuffer memoryStream, IMessage message) { if (_cancellationTokenSource.IsCancellationRequested) { return; } - - var buffer = _packetParser.Pack(ref rpcId, ref routeId, memoryStream, message, messageType); + + var buffer = _packetParser.Pack(ref rpcId, ref routeId, memoryStream, message); if (!_isConnected) { @@ -693,5 +687,4 @@ namespace Fantasy.Network.KCP return 0xC0000000 | (value & int.MaxValue); } } -} -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Client/KCPClientNetwork.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Client/KCPClientNetwork.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Client/KCPClientNetwork.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Client/KCPClientNetwork.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/KCPSettings.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/KCPSettings.cs similarity index 67% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/KCPSettings.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/KCPSettings.cs index d7ca536a7..8debbfc4e 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/KCPSettings.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/KCPSettings.cs @@ -3,7 +3,7 @@ using System; using KCP; #pragma warning disable CS1591 -namespace Fantasy.Network.KCP +namespace NBC.Network.KCP { public class KCPSettings { @@ -24,34 +24,12 @@ namespace Fantasy.Network.KCP // 1、mtu设置过大有可能路由器过滤掉 // 2、降低 mtu 到 470,同样数据虽然会发更多的包,但是小包在路由层优先级更高 settings.Mtu = 470; -#if FANTASY_NET - settings.SendWindowSize = 8192; - settings.ReceiveWindowSize = 8192; - settings.MaxSendWindowSize = 8192 * 8192 * 7; -#endif -#if FANTASY_UNITY || FANTASY_CONSOLE settings.SendWindowSize = 512; settings.ReceiveWindowSize = 512; settings.MaxSendWindowSize = 512 * 512 * 7; -#endif break; } -#if FANTASY_NET - case NetworkTarget.Inner: - { - // 内网设置1400的原因 - // 1、一般都是同一台服务器来运行多个进程来处理 - // 2、内网每个进程跟其他进程只有一个通道进行发送、所以发送的数量会比较大 - // 3、如果不把窗口设置大点、会出现消息滞后。 - // 4、因为内网发送的可不只是外网转发数据、还有可能是其他进程的通讯 - settings.Mtu = 1200; - settings.SendWindowSize = 8192; - settings.ReceiveWindowSize = 8192; - settings.MaxSendWindowSize = 8192 * 8192 * 7; - break; - } -#endif default: { throw new NotSupportedException($"KCPServerNetwork NotSupported NetworkType:{networkTarget}"); @@ -62,7 +40,7 @@ namespace Fantasy.Network.KCP } } - internal static class KCPFactory + public static class KCPFactory { public const int FANTASY_KCP_RESERVED_HEAD = 5; diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/KCPSettings.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/KCPSettings.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/KCPSettings.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/KCPSettings.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/KcpHeader.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/KcpHeader.cs similarity index 59% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/KcpHeader.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/KcpHeader.cs index 5ad606e59..43338abf9 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/KcpHeader.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/KcpHeader.cs @@ -1,7 +1,7 @@ -#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -namespace Fantasy.Network.KCP +namespace NBC.Network.KCP +#pragma warning disable CS1591 { - internal enum KcpHeader : byte + public enum KcpHeader : byte { None = 0x00, RequestConnection = 0x01, diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/KcpHeader.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/KcpHeader.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/KcpHeader.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/KcpHeader.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Server.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Server.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Server.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Server.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkByArrayPool.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkByArrayPool.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkByArrayPool.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkByArrayPool.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkByArrayPool.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkByArrayPool.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkByArrayPool.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkByArrayPool.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkByPipe.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkByPipe.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkByPipe.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkByPipe.cs index 407e8c99c..54b550d05 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkByPipe.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkByPipe.cs @@ -23,7 +23,7 @@ using Fantasy.Network.Interface; namespace Fantasy.Network.KCP { - internal sealed class KCPServerNetworkUpdateSystem : UpdateSystem + public sealed class KCPServerNetworkUpdateSystem : UpdateSystem { protected override void Update(KCPServerNetwork self) { @@ -31,7 +31,7 @@ namespace Fantasy.Network.KCP } } - internal struct PendingConnection + public struct PendingConnection { public readonly uint ChannelId; public readonly uint TimeOutId; @@ -388,7 +388,7 @@ namespace Fantasy.Network.KCP { continue; } - + if (channel.IsDisposed) { _connectionChannel.Remove(channelId); diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkByPipe.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkByPipe.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkByPipe.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkByPipe.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkChannel.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkChannel.cs similarity index 94% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkChannel.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkChannel.cs index ff85d9486..19db7a746 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkChannel.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkChannel.cs @@ -17,13 +17,13 @@ namespace Fantasy.Network.KCP /// /// KCP 服务器网络通道,用于处理服务器与客户端之间的数据通信。 /// - internal class KCPServerNetworkChannel : ANetworkServerChannel + public class KCPServerNetworkChannel : ANetworkServerChannel { private bool _isInnerDispose; private readonly int _maxSndWnd; private KCPServerNetwork _kcpServerNetwork; private readonly BufferPacketParser _packetParser; - private readonly byte[] _receiveBuffer = new byte[ProgramDefine.MaxMessageSize + 20]; + private readonly byte[] _receiveBuffer = new byte[Packet.PacketBodyMaxLength + 20]; public Kcp Kcp { get; private set; } public uint ChannelId { get; private set; } @@ -105,7 +105,7 @@ namespace Fantasy.Network.KCP } } - public override void Send(uint rpcId, long routeId, MemoryStreamBuffer memoryStream, IMessage message, Type messageType) + public override void Send(uint rpcId, long routeId, MemoryStreamBuffer memoryStream, IMessage message) { if (IsDisposed) { @@ -120,7 +120,7 @@ namespace Fantasy.Network.KCP return; } - var buffer = _packetParser.Pack(ref rpcId, ref routeId, memoryStream, message, messageType); + var buffer = _packetParser.Pack(ref rpcId, ref routeId, memoryStream, message); Kcp.Send(buffer.GetBuffer().AsSpan(0, (int)buffer.Position)); if (buffer.MemoryStreamBufferSource == MemoryStreamBufferSource.Pack) diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkChannel.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkChannel.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkChannel.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/KCP/Server/KCPServerNetworkChannel.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/NetworkProtocolFactory.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/NetworkProtocolFactory.cs similarity index 92% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/NetworkProtocolFactory.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/NetworkProtocolFactory.cs index 995c8aa42..7ff4b8c42 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/NetworkProtocolFactory.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/NetworkProtocolFactory.cs @@ -1,20 +1,20 @@ using System; using System.Net; -using Fantasy.Entitas; -using Fantasy.Helper; -using Fantasy.Network.Interface; +using NBC.Helper; #if !FANTASY_WEBGL -using Fantasy.Network.TCP; -using Fantasy.Network.KCP; #endif #if FANTASY_NET using Fantasy.Network.HTTP; #endif -using Fantasy.Network.WebSocket; +using NBC.Entitas; +using NBC.Network.Interface; +using NBC.Network.KCP; +using NBC.Network.TCP; +using NBC.Network.WebSocket; #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -namespace Fantasy.Network +namespace NBC.Network { internal static class NetworkProtocolFactory { @@ -40,7 +40,7 @@ namespace Fantasy.Network case NetworkProtocolType.WebSocket: { var network = Entity.Create(scene, false, true); - network.Initialize(networkTarget, port); + network.Initialize(networkTarget, bindIp, port); return network; } case NetworkProtocolType.HTTP: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/NetworkProtocolFactory.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/NetworkProtocolFactory.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/NetworkProtocolFactory.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/NetworkProtocolFactory.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/NetworkProtocolType.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/NetworkProtocolType.cs similarity index 98% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/NetworkProtocolType.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/NetworkProtocolType.cs index 55a04c9c2..23ceec068 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/NetworkProtocolType.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/NetworkProtocolType.cs @@ -1,4 +1,4 @@ -namespace Fantasy.Network +namespace NBC.Network { /// /// 网络服务器类型 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/NetworkProtocolType.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/NetworkProtocolType.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/NetworkProtocolType.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/NetworkProtocolType.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/NetworkThreadComponent.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/NetworkThreadComponent.cs similarity index 98% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/NetworkThreadComponent.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/NetworkThreadComponent.cs index c0c166bfc..bbfb7dcf7 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/NetworkThreadComponent.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/NetworkThreadComponent.cs @@ -2,12 +2,13 @@ using System; using System.Collections.Generic; using System.Threading; -using Fantasy.Entitas; +using NBC.Entitas; + // ReSharper disable ForCanBeConvertedToForeach #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. -namespace Fantasy.Network +namespace NBC.Network { internal interface INetworkThreadUpdate { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/NetworkThreadComponent.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/NetworkThreadComponent.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/NetworkThreadComponent.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/NetworkThreadComponent.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/TCP.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/TCP.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/TCP.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/TCP.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/TCP/Client.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/TCP/Client.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/TCP/Client.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/TCP/Client.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/TCP/Client/TCPClientNetwork.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/TCP/Client/TCPClientNetwork.cs similarity index 97% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/TCP/Client/TCPClientNetwork.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/TCP/Client/TCPClientNetwork.cs index 3a1df5bb7..1d69e5620 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/TCP/Client/TCPClientNetwork.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/TCP/Client/TCPClientNetwork.cs @@ -1,4 +1,3 @@ -#if !FANTASY_WEBGL using System; using System.Buffers; using System.Collections.Generic; @@ -8,11 +7,12 @@ using System.Net; using System.Net.Sockets; using System.Runtime.InteropServices; using System.Threading; -using Fantasy.Async; -using Fantasy.Helper; -using Fantasy.Network.Interface; -using Fantasy.PacketParser; -using Fantasy.Serialize; +using NBC.Async; +using NBC.Helper; +using NBC.Network.Interface; +using NBC.PacketParser; +using NBC.Serialize; + // ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract #pragma warning disable CS8602 // Dereference of a possibly null reference. #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. @@ -23,7 +23,7 @@ using Fantasy.Serialize; #pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. #pragma warning disable CS8622 // Nullability of reference types in type of parameter doesn't match the target delegate (possibly because of nullability attributes). -namespace Fantasy.Network.TCP +namespace NBC.Network.TCP { public sealed class TCPClientNetwork : AClientNetwork { @@ -316,9 +316,9 @@ namespace Fantasy.Network.TCP #region Send - public override void Send(uint rpcId, long routeId, MemoryStreamBuffer memoryStream, IMessage message, Type messageType) + public override void Send(uint rpcId, long routeId, MemoryStreamBuffer memoryStream, IMessage message) { - _sendBuffers.Enqueue(_packetParser.Pack(ref rpcId, ref routeId, memoryStream, message, messageType)); + _sendBuffers.Enqueue(_packetParser.Pack(ref rpcId, ref routeId, memoryStream, message)); if (!_isSending) { @@ -409,5 +409,4 @@ namespace Fantasy.Network.TCP Scene?.TimerComponent?.Net?.Remove(ref _connectTimeoutId); } } -} -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/TCP/Client/TCPClientNetwork.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/TCP/Client/TCPClientNetwork.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/TCP/Client/TCPClientNetwork.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/TCP/Client/TCPClientNetwork.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/TCP/Server.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/TCP/Server.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/TCP/Server.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/TCP/Server.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/TCP/Server/TCPServerNetwork.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/TCP/Server/TCPServerNetwork.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/TCP/Server/TCPServerNetwork.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/TCP/Server/TCPServerNetwork.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/TCP/Server/TCPServerNetwork.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/TCP/Server/TCPServerNetwork.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/TCP/Server/TCPServerNetwork.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/TCP/Server/TCPServerNetwork.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/TCP/Server/TCPServerNetworkChannel.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/TCP/Server/TCPServerNetworkChannel.cs similarity index 98% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/TCP/Server/TCPServerNetworkChannel.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/TCP/Server/TCPServerNetworkChannel.cs index 654f41abe..15f3f6654 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/TCP/Server/TCPServerNetworkChannel.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/TCP/Server/TCPServerNetworkChannel.cs @@ -211,9 +211,9 @@ namespace Fantasy.Network.TCP #region Send - public override void Send(uint rpcId, long routeId, MemoryStreamBuffer memoryStream, IMessage message, Type messageType) + public override void Send(uint rpcId, long routeId, MemoryStreamBuffer memoryStream, IMessage message) { - _sendBuffers.Enqueue(_packetParser.Pack(ref rpcId, ref routeId, memoryStream, message, messageType)); + _sendBuffers.Enqueue(_packetParser.Pack(ref rpcId, ref routeId, memoryStream, message)); if (!_isSending) { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/TCP/Server/TCPServerNetworkChannel.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/TCP/Server/TCPServerNetworkChannel.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/TCP/Server/TCPServerNetworkChannel.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/TCP/Server/TCPServerNetworkChannel.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/WebSocket.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/WebSocket.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/WebSocket.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/WebSocket.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/WebSocket/Client.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/WebSocket/Client.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/WebSocket/Client.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/WebSocket/Client.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/WebSocket/Client/WebSocketClientNetwork.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/WebSocket/Client/WebSocketClientNetwork.cs similarity index 91% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/WebSocket/Client/WebSocketClientNetwork.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/WebSocket/Client/WebSocketClientNetwork.cs index d6f189f5b..45e69e860 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/WebSocket/Client/WebSocketClientNetwork.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/WebSocket/Client/WebSocketClientNetwork.cs @@ -46,11 +46,6 @@ namespace Fantasy.Network.WebSocket { _isInnerDispose = true; - if (_clientWebSocket.State == WebSocketState.Open || _clientWebSocket.State == WebSocketState.CloseReceived) - { - _clientWebSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, "Client Closing", CancellationToken.None).GetAwaiter().GetResult(); - } - if (!_cancellationTokenSource.IsCancellationRequested) { try @@ -64,13 +59,11 @@ namespace Fantasy.Network.WebSocket } ClearConnectTimeout(); + WebSocketClientDisposeAsync().Coroutine(); _onConnectDisconnect?.Invoke(); _packetParser.Dispose(); _packetParser = null; _isSending = false; - - _clientWebSocket.Dispose(); - _clientWebSocket = null; } catch (Exception e) { @@ -82,6 +75,18 @@ namespace Fantasy.Network.WebSocket } } + private async FTask WebSocketClientDisposeAsync() + { + if (_clientWebSocket == null) + { + return; + } + + await _clientWebSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, "Closing", CancellationToken.None); + _clientWebSocket.Dispose(); + _clientWebSocket = null; + } + public override Session Connect(string remoteAddress, Action onConnectComplete, Action onConnectFail, Action onConnectDisconnect, bool isHttps, int connectTimeout = 5000) { if (IsInit) @@ -145,16 +150,10 @@ namespace Fantasy.Network.WebSocket var memory = _pipe.Writer.GetMemory(8192); // 这里接收的数据不一定是一个完整的包。如果大于8192就会分成多个包。 var receiveResult = await _clientWebSocket.ReceiveAsync(memory, _cancellationTokenSource.Token); - // 服务器发送了关闭帧,客户端需要响应关闭帧 + if (receiveResult.MessageType == WebSocketMessageType.Close) { - if (_clientWebSocket.State == WebSocketState.CloseReceived) - { - await _clientWebSocket.CloseOutputAsync(WebSocketCloseStatus.NormalClosure, "Response Closure", - CancellationToken.None); - } - Dispose(); - return; + break; } var count = receiveResult.Count; @@ -289,9 +288,9 @@ namespace Fantasy.Network.WebSocket #region Send - public override void Send(uint rpcId, long routeId, MemoryStreamBuffer memoryStream, IMessage message, Type messageType) + public override void Send(uint rpcId, long routeId, MemoryStreamBuffer memoryStream, IMessage message) { - _sendBuffers.Enqueue(_packetParser.Pack(ref rpcId, ref routeId, memoryStream, message, messageType)); + _sendBuffers.Enqueue(_packetParser.Pack(ref rpcId, ref routeId, memoryStream, message)); if (!_isSending) { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/WebSocket/Client/WebSocketClientNetwork.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/WebSocket/Client/WebSocketClientNetwork.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/WebSocket/Client/WebSocketClientNetwork.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/WebSocket/Client/WebSocketClientNetwork.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/WebSocket/Client/WebSocketClientNetworkWebgl.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/WebSocket/Client/WebSocketClientNetworkWebgl.cs similarity index 95% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/WebSocket/Client/WebSocketClientNetworkWebgl.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/WebSocket/Client/WebSocketClientNetworkWebgl.cs index c0c5713da..9c6ea9a4c 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/WebSocket/Client/WebSocketClientNetworkWebgl.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/WebSocket/Client/WebSocketClientNetworkWebgl.cs @@ -2,13 +2,13 @@ using System; using System.Collections.Generic; using System.IO; -using Fantasy.Helper; -using Fantasy.Network.Interface; -using Fantasy.PacketParser; -using Fantasy.Serialize; +using NBC.Helper; +using NBC.Network.Interface; +using NBC.PacketParser; +using NBC.Serialize; using UnityWebSocket; -namespace Fantasy.Network.WebSocket +namespace NBC.Network.WebSocket { // 因为webgl的限制、注定这个要是在游戏主线程里。所以这个库不会再其他线程执行的。 // WebGL:在WebGL环境下运行 @@ -140,14 +140,14 @@ namespace Fantasy.Network.WebSocket #region Send - public override void Send(uint rpcId, long routeId, MemoryStreamBuffer memoryStream, IMessage message, Type messageType) + public override void Send(uint rpcId, long routeId, MemoryStreamBuffer memoryStream, IMessage message) { if (IsDisposed) { return; } - - var buffer = _packetParser.Pack(ref rpcId, ref routeId, memoryStream, message, messageType); + + var buffer = _packetParser.Pack(ref rpcId, ref routeId, memoryStream, message); if (!_isConnected) { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/WebSocket/Client/WebSocketClientNetworkWebgl.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/WebSocket/Client/WebSocketClientNetworkWebgl.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/WebSocket/Client/WebSocketClientNetworkWebgl.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/WebSocket/Client/WebSocketClientNetworkWebgl.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/WebSocket/Server.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/WebSocket/Server.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/WebSocket/Server.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/WebSocket/Server.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/WebSocket/Server/WebSocketServerNetwork.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/WebSocket/Server/WebSocketServerNetwork.cs similarity index 55% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/WebSocket/Server/WebSocketServerNetwork.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/WebSocket/Server/WebSocketServerNetwork.cs index 779eff7c3..09feb2b5e 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/WebSocket/Server/WebSocketServerNetwork.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/WebSocket/Server/WebSocketServerNetwork.cs @@ -17,7 +17,7 @@ public class WebSocketServerNetwork : ANetwork private HttpListener _httpListener; private readonly Dictionary _connectionChannel = new Dictionary(); - public void Initialize(NetworkTarget networkTarget, int port) + public void Initialize(NetworkTarget networkTarget, string bindIp, int port) { base.Initialize(NetworkType.Server, NetworkProtocolType.WebSocket, networkTarget); @@ -25,15 +25,13 @@ public class WebSocketServerNetwork : ANetwork { _random = new Random(); _httpListener = new HttpListener(); - StartAcceptAsync(port).Coroutine(); + StartAcceptAsync(bindIp, port).Coroutine(); } catch (HttpListenerException e) { if (e.ErrorCode == 5) { - throw new Exception($"如果看下如下错误请尝试下面的办法:" + - $"1.用管理员运行CMD 输入命令: netsh http add urlacl url=http://+:8080/ user=Everyone。" + - $"2.用管理员身份运行编辑器或者程序。", e); + throw new Exception($"CMD管理员中输入: netsh http add urlacl url=http://*:8080/ user=Everyone", e); } Log.Error(e); @@ -66,42 +64,11 @@ public class WebSocketServerNetwork : ANetwork base.Dispose(); } - private static bool IsValidWebSocketRequest(HttpListenerRequest request) + private async FTask StartAcceptAsync(string bindIp, int port) { - // 检查必需的WebSocket握手头部 - var connectionHeader = request.Headers["Connection"]; - var upgradeHeader = request.Headers["Upgrade"]; - - if (string.IsNullOrEmpty(connectionHeader) || string.IsNullOrEmpty(upgradeHeader)) - { - return false; - } - - // Connection头部应该包含"Upgrade" (不区分大小写) - if (!connectionHeader.ToLower().Contains("upgrade")) - { - return false; - } - - // Upgrade头部应该是"websocket" (不区分大小写) - if (!upgradeHeader.ToLower().Contains("websocket")) - { - return false; - } - - // 检查WebSocket版本 (可选但推荐) - var versionHeader = request.Headers["Sec-WebSocket-Version"]; - if (!string.IsNullOrEmpty(versionHeader) && versionHeader != "13") - { - return false; - } - - return true; - } - - private async FTask StartAcceptAsync(int port) - { - var listenUrl = $"http://+:{port}/"; + var listenUrl = ""; + var certificatePath = Path.Combine(AppContext.BaseDirectory, $"certificate{bindIp}{port}"); + listenUrl = Directory.Exists(certificatePath) ? $"https://{bindIp}:{port}/" : $"http://{bindIp}:{port}/"; _httpListener.Prefixes.Add(listenUrl); _httpListener.Start(); Log.Info($"SceneConfigId = {Scene.SceneConfigId} WebSocketServer Listen {listenUrl}"); @@ -110,23 +77,15 @@ public class WebSocketServerNetwork : ANetwork try { var httpListenerContext = await _httpListener.GetContextAsync(); - // 验证WebSocket握手请求头部 - if (!IsValidWebSocketRequest(httpListenerContext.Request)) - { - httpListenerContext.Response.StatusCode = 400; - httpListenerContext.Response.StatusDescription = "Bad Request - Invalid WebSocket headers"; - httpListenerContext.Response.Close(); - continue; - } var webSocketContext = await httpListenerContext.AcceptWebSocketAsync(null); var channelId = 0xC0000000 | (uint) _random.Next(); + while (_connectionChannel.ContainsKey(channelId)) { channelId = 0xC0000000 | (uint) _random.Next(); } - - var webSocketServerNetworkChannel = new WebSocketServerNetworkChannel(this, channelId, webSocketContext, httpListenerContext.Request.RemoteEndPoint); - _connectionChannel.Add(channelId, webSocketServerNetworkChannel); + + _connectionChannel.Add(channelId, new WebSocketServerNetworkChannel(this, channelId, webSocketContext, httpListenerContext.Request.RemoteEndPoint)); } catch (Exception e) { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/WebSocket/Server/WebSocketServerNetwork.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/WebSocket/Server/WebSocketServerNetwork.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/WebSocket/Server/WebSocketServerNetwork.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/WebSocket/Server/WebSocketServerNetwork.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/WebSocket/Server/WebSocketServerNetworkChannel.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/WebSocket/Server/WebSocketServerNetworkChannel.cs similarity index 88% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/WebSocket/Server/WebSocketServerNetworkChannel.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/WebSocket/Server/WebSocketServerNetworkChannel.cs index ae13ce99b..3b8ee9021 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/WebSocket/Server/WebSocketServerNetworkChannel.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/WebSocket/Server/WebSocketServerNetworkChannel.cs @@ -42,20 +42,6 @@ public sealed class WebSocketServerNetworkChannel : ANetworkServerChannel } _isInnerDispose = true; - - if (_webSocket.State == WebSocketState.Open || _webSocket.State == WebSocketState.CloseReceived) - { - try - { - _webSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, "Normal Closure", - CancellationToken.None).GetAwaiter().GetResult(); - } - catch (Exception) - { - // 关闭过程中的异常可以忽略 - } - } - if (!_cancellationTokenSource.IsCancellationRequested) { try @@ -67,9 +53,13 @@ public sealed class WebSocketServerNetworkChannel : ANetworkServerChannel // 通常情况下,此处的异常可以忽略 } } - _sendBuffers.Clear(); _network.RemoveChannel(Id); + if (_webSocket.State == WebSocketState.Open || _webSocket.State == WebSocketState.CloseReceived) + { + _webSocket.CloseOutputAsync(WebSocketCloseStatus.NormalClosure, "Normal Closure", + _cancellationTokenSource.Token).GetAwaiter().GetResult(); + } _webSocket.Dispose(); _isSending = false; base.Dispose(); @@ -86,16 +76,11 @@ public sealed class WebSocketServerNetworkChannel : ANetworkServerChannel var memory = _pipe.Writer.GetMemory(8192); // 这里接收的数据不一定是一个完整的包。如果大于8192就会分成多个包。 var receiveResult = await _webSocket.ReceiveAsync(memory, _cancellationTokenSource.Token); - // 客户端发送了关闭帧,服务器需要响应关闭帧 + if (receiveResult.MessageType == WebSocketMessageType.Close) { - if (_webSocket.State == WebSocketState.CloseReceived) - { - await _webSocket.CloseOutputAsync(WebSocketCloseStatus.NormalClosure, "Response Closure", - CancellationToken.None); - } Dispose(); - return; + break; } var count = receiveResult.Count; @@ -127,9 +112,6 @@ public sealed class WebSocketServerNetworkChannel : ANetworkServerChannel } await _pipe.Writer.CompleteAsync(); - - // 接收循环结束,自动释放连接 - Dispose(); } private async FTask PipeWriterFlushAsync(int count) @@ -230,9 +212,9 @@ public sealed class WebSocketServerNetworkChannel : ANetworkServerChannel #region Send - public override void Send(uint rpcId, long routeId, MemoryStreamBuffer memoryStream, IMessage message, Type messageType) + public override void Send(uint rpcId, long routeId, MemoryStreamBuffer memoryStream, IMessage message) { - _sendBuffers.Enqueue(_packetParser.Pack(ref rpcId, ref routeId, memoryStream, message, messageType)); + _sendBuffers.Enqueue(_packetParser.Pack(ref rpcId, ref routeId, memoryStream, message)); if (!_isSending) { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/WebSocket/Server/WebSocketServerNetworkChannel.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Protocol/WebSocket/Server/WebSocketServerNetworkChannel.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Protocol/WebSocket/Server/WebSocketServerNetworkChannel.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Protocol/WebSocket/Server/WebSocketServerNetworkChannel.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Component.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Component.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Component.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Component.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Component/RoamingComponent.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Component/RoamingComponent.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Component/RoamingComponent.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Component/RoamingComponent.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Component/RoamingComponent.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Component/RoamingComponent.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Component/RoamingComponent.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Component/RoamingComponent.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Component/SessionRoamingComponent.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Component/SessionRoamingComponent.cs similarity index 71% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Component/SessionRoamingComponent.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Component/SessionRoamingComponent.cs index d295b6084..c5ce55aaa 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Component/SessionRoamingComponent.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Component/SessionRoamingComponent.cs @@ -184,117 +184,7 @@ public sealed class SessionRoamingComponent : Entity #endregion - #region OuterMessage - - /// - /// 发送一个消息给漫游终 - /// - /// - public void Send(T message) where T : IRoamingMessage - { - Call(message.RouteType, message).Coroutine(); - } - - /// - /// 发送一个消息给漫游终端 - /// - /// - /// - public void Send(int roamingType, T message) where T : IRouteMessage - { - Call(roamingType, message).Coroutine(); - } - - /// - /// 发送一个RPC消息给漫游终端 - /// - /// - /// - public async FTask Call(T message) where T : IRoamingMessage - { - return await Call(message.RouteType, message); - } - - /// - /// 发送一个RPC消息给漫游终端 - /// - /// - /// - /// - public async FTask Call(int roamingType, T message) where T : IRouteMessage - { - if (!_roaming.TryGetValue(roamingType, out var roaming)) - { - return MessageDispatcherComponent.CreateResponse(message.OpCode(), InnerErrorCode.ErrNotFoundRoaming); - } - - var failCount = 0; - var runtimeId = RuntimeId; - var routeId = roaming.TerminusId; - - IResponse iRouteResponse = null; - - using (await RoamingMessageLock.Wait(roaming.RoamingType, "RoamingComponent Call MemoryStream")) - { - while (!IsDisposed) - { - if (routeId == 0) - { - routeId = await roaming.GetTerminusId(); - } - - if (routeId == 0) - { - return MessageDispatcherComponent.CreateResponse(message.OpCode(), InnerErrorCode.ErrNotFoundRoaming); - } - - iRouteResponse = await NetworkMessagingComponent.CallInnerRoute(routeId, message); - - if (runtimeId != RuntimeId) - { - iRouteResponse.ErrorCode = InnerErrorCode.ErrRoamingTimeout; - } - - switch (iRouteResponse.ErrorCode) - { - case InnerErrorCode.ErrRouteTimeout: - case InnerErrorCode.ErrRoamingTimeout: - { - return iRouteResponse; - } - case InnerErrorCode.ErrNotFoundRoute: - case InnerErrorCode.ErrNotFoundRoaming: - { - if (++failCount > 20) - { - Log.Error($"RoamingComponent.Call failCount > 20 route send message fail, LinkRoamingId: {routeId}"); - return iRouteResponse; - } - - await TimerComponent.Net.WaitAsync(100); - - if (runtimeId != RuntimeId) - { - iRouteResponse.ErrorCode = InnerErrorCode.ErrNotFoundRoaming; - } - - routeId = 0; - continue; - } - default: - { - return iRouteResponse; // 对于其他情况,直接返回响应,无需额外处理 - } - } - } - } - - return iRouteResponse; - } - - #endregion - - #region InnerMessage + #region Message internal async FTask Send(int roamingType, Type requestType, APackInfo packInfo) { @@ -305,14 +195,14 @@ public sealed class SessionRoamingComponent : Entity { if (IsDisposed) { - return MessageDispatcherComponent.CreateResponse(packInfo.ProtocolCode, InnerErrorCode.ErrNotFoundRoaming); + return MessageDispatcherComponent.CreateResponse(requestType, InnerErrorCode.ErrNotFoundRoaming); } packInfo.IsDisposed = true; if (!_roaming.TryGetValue(roamingType, out var roaming)) { - return MessageDispatcherComponent.CreateResponse(packInfo.ProtocolCode, InnerErrorCode.ErrNotFoundRoaming); + return MessageDispatcherComponent.CreateResponse(requestType, InnerErrorCode.ErrNotFoundRoaming); } var failCount = 0; @@ -333,7 +223,7 @@ public sealed class SessionRoamingComponent : Entity if (routeId == 0) { - return MessageDispatcherComponent.CreateResponse(packInfo.ProtocolCode, InnerErrorCode.ErrNotFoundRoaming); + return MessageDispatcherComponent.CreateResponse(requestType, InnerErrorCode.ErrNotFoundRoaming); } iRouteResponse = await NetworkMessagingComponent.CallInnerRoute(routeId, requestType, packInfo); diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Component/SessionRoamingComponent.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Component/SessionRoamingComponent.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Component/SessionRoamingComponent.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Component/SessionRoamingComponent.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Component/SessionRoamingFlgComponent.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Component/SessionRoamingFlgComponent.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Component/SessionRoamingFlgComponent.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Component/SessionRoamingFlgComponent.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Component/SessionRoamingFlgComponent.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Component/SessionRoamingFlgComponent.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Component/SessionRoamingFlgComponent.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Component/SessionRoamingFlgComponent.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Component/TerminusComponent.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Component/TerminusComponent.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Component/TerminusComponent.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Component/TerminusComponent.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Component/TerminusComponent.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Component/TerminusComponent.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Component/TerminusComponent.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Component/TerminusComponent.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Entity.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Entity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Entity.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Entity.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Entity/Roaming.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Entity/Roaming.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Entity/Roaming.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Entity/Roaming.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Entity/Roaming.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Entity/Roaming.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Entity/Roaming.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Entity/Roaming.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Entity/Terminus.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Entity/Terminus.cs similarity index 96% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Entity/Terminus.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Entity/Terminus.cs index c60bf979b..8d4448b6c 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Entity/Terminus.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Entity/Terminus.cs @@ -233,7 +233,7 @@ public sealed class Terminus : Entity /// 发送一个消息给客户端 /// /// - public void Send(T message) where T : IRouteMessage + public void Send(IRouteMessage message) { Scene.NetworkMessagingComponent.SendInnerRoute(ForwardSessionRouteId, message); } @@ -242,7 +242,7 @@ public sealed class Terminus : Entity /// /// /// - public void Send(int roamingType, T message) where T : IRoamingMessage + public void Send(int roamingType, IRoamingMessage message) { Call(roamingType, message).Coroutine(); } @@ -253,17 +253,17 @@ public sealed class Terminus : Entity /// /// /// - public async FTask Call(int roamingType, T request) where T : IRoamingMessage + public async FTask Call(int roamingType, IRoamingMessage request) { if (IsDisposed) { - return Scene.MessageDispatcherComponent.CreateResponse(request.OpCode(), InnerErrorCode.ErrNotFoundRoaming); + return Scene.MessageDispatcherComponent.CreateResponse(request.GetType(), InnerErrorCode.ErrNotFoundRoaming); } if (roamingType == RoamingType) { Log.Warning($"Does not support sending messages to the same scene as roamingType currentRoamingType:{RoamingType} roamingType:{roamingType}"); - return Scene.MessageDispatcherComponent.CreateResponse(request.OpCode(), InnerErrorCode.ErrNotFoundRoaming); + return Scene.MessageDispatcherComponent.CreateResponse(request.GetType(), InnerErrorCode.ErrNotFoundRoaming); } var failCount = 0; @@ -285,7 +285,7 @@ public sealed class Terminus : Entity } else { - return Scene.MessageDispatcherComponent.CreateResponse(request.OpCode(), InnerErrorCode.ErrNotFoundRoaming); + return Scene.MessageDispatcherComponent.CreateResponse(request.GetType(), InnerErrorCode.ErrNotFoundRoaming); } } diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Entity/Terminus.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Entity/Terminus.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Entity/Terminus.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Entity/Terminus.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Handler.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Handler.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Handler.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Handler.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Handler/I_GetTerminusIdRequestHandler.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Handler/I_GetTerminusIdRequestHandler.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Handler/I_GetTerminusIdRequestHandler.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Handler/I_GetTerminusIdRequestHandler.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Handler/I_GetTerminusIdRequestHandler.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Handler/I_GetTerminusIdRequestHandler.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Handler/I_GetTerminusIdRequestHandler.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Handler/I_GetTerminusIdRequestHandler.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Handler/I_LinkRoamingRequestHandler.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Handler/I_LinkRoamingRequestHandler.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Handler/I_LinkRoamingRequestHandler.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Handler/I_LinkRoamingRequestHandler.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Handler/I_LinkRoamingRequestHandler.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Handler/I_LinkRoamingRequestHandler.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Handler/I_LinkRoamingRequestHandler.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Handler/I_LinkRoamingRequestHandler.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Handler/I_LockTerminusIdRequestHandler.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Handler/I_LockTerminusIdRequestHandler.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Handler/I_LockTerminusIdRequestHandler.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Handler/I_LockTerminusIdRequestHandler.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Handler/I_LockTerminusIdRequestHandler.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Handler/I_LockTerminusIdRequestHandler.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Handler/I_LockTerminusIdRequestHandler.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Handler/I_LockTerminusIdRequestHandler.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Handler/I_TransferTerminusRequestHandler.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Handler/I_TransferTerminusRequestHandler.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Handler/I_TransferTerminusRequestHandler.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Handler/I_TransferTerminusRequestHandler.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Handler/I_TransferTerminusRequestHandler.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Handler/I_TransferTerminusRequestHandler.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Handler/I_TransferTerminusRequestHandler.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Handler/I_TransferTerminusRequestHandler.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Handler/I_UnLinkRoamingRequestHandler.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Handler/I_UnLinkRoamingRequestHandler.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Handler/I_UnLinkRoamingRequestHandler.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Handler/I_UnLinkRoamingRequestHandler.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Handler/I_UnLinkRoamingRequestHandler.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Handler/I_UnLinkRoamingRequestHandler.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Handler/I_UnLinkRoamingRequestHandler.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Handler/I_UnLinkRoamingRequestHandler.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Handler/I_UnLockTerminusIdRequestHandler.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Handler/I_UnLockTerminusIdRequestHandler.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Handler/I_UnLockTerminusIdRequestHandler.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Handler/I_UnLockTerminusIdRequestHandler.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Handler/I_UnLockTerminusIdRequestHandler.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Handler/I_UnLockTerminusIdRequestHandler.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Roaming/Handler/I_UnLockTerminusIdRequestHandler.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Roaming/Handler/I_UnLockTerminusIdRequestHandler.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Route.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Route.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Route.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Route.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Route/RouteComponent.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Route/RouteComponent.cs similarity index 94% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Route/RouteComponent.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Route/RouteComponent.cs index 25bdfcc85..0d52e9a55 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Route/RouteComponent.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Route/RouteComponent.cs @@ -1,5 +1,5 @@ -using Fantasy.Entitas; -using Fantasy.Entitas.Interface; +using NBC.Entitas; +using NBC.Entitas.Interface; #if FANTASY_NET namespace Fantasy.Network; @@ -65,7 +65,7 @@ public sealed class RouteComponent : Entity /// 路由类型。 /// 输出的路由ID。 /// 如果获取成功返回true,否则返回false。 - public bool TryGetRouteId(int routeType, out long routeId) + public bool TryGetRouteId(long routeType, out long routeId) { return RouteAddress.TryGetValue(routeType, out routeId); } diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Route/RouteComponent.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Route/RouteComponent.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Route/RouteComponent.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Route/RouteComponent.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Session.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Session.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/Component.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Session/Component.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/Component.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Session/Component.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/Component/ConsoleSessionHeartbeatComponent.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Session/Component/ConsoleSessionHeartbeatComponent.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/Component/ConsoleSessionHeartbeatComponent.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Session/Component/ConsoleSessionHeartbeatComponent.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/Component/ConsoleSessionHeartbeatComponent.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Session/Component/ConsoleSessionHeartbeatComponent.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/Component/ConsoleSessionHeartbeatComponent.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Session/Component/ConsoleSessionHeartbeatComponent.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/Component/SessionIdleCheckerComponent.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Session/Component/SessionIdleCheckerComponent.cs similarity index 83% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/Component/SessionIdleCheckerComponent.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Session/Component/SessionIdleCheckerComponent.cs index 595fa75d4..d50c2b1fe 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/Component/SessionIdleCheckerComponent.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Session/Component/SessionIdleCheckerComponent.cs @@ -1,13 +1,11 @@ -#if FANTASY_NET -using Fantasy.Entitas; -using Fantasy.Entitas.Interface; -using Fantasy.Helper; -using Fantasy.Platform.Net; -using Fantasy.Timer; +using NBC.Entitas; +using NBC.Entitas.Interface; +using NBC.Helper; #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member +#if FANTASY_NET namespace Fantasy.Network; public class SessionIdleCheckerComponentAwakeSystem : AwakeSystem @@ -58,7 +56,7 @@ public class SessionIdleCheckerComponent : Entity /// /// 以毫秒为单位的检查间隔。 /// 以毫秒为单位的空闲超时时间。 - internal void Start(int interval, int timeOut) + public void Start(int interval, int timeOut) { _timeOut = timeOut; _session = (Session)Parent; @@ -67,21 +65,10 @@ public class SessionIdleCheckerComponent : Entity _timerId = TimerComponent.Net.RepeatedTimer(interval, Check); } - /// - /// 重新开始心跳检查 - /// - /// 以毫秒为单位的检查间隔。 - /// 以毫秒为单位的空闲超时时间。 - public void Restart(int interval, int timeOut) - { - Stop(); - Start(interval, timeOut); - } - /// /// 停止空闲检查功能。 /// - private void Stop() + public void Stop() { if (_timerId == 0) { @@ -108,9 +95,8 @@ public class SessionIdleCheckerComponent : Entity { return; } -#if FANTASY_DEBUG + Log.Warning($"session timeout id:{Id} timeNow:{timeNow} _session.LastReceiveTime:{_session.LastReceiveTime} _timeOut:{_timeOut}"); -#endif _session.Dispose(); } } diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/Component/SessionIdleCheckerComponent.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Session/Component/SessionIdleCheckerComponent.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/Component/SessionIdleCheckerComponent.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Session/Component/SessionIdleCheckerComponent.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/Component/UnitySessionHeartbeatComponent.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Session/Component/UnitySessionHeartbeatComponent.cs similarity index 70% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/Component/UnitySessionHeartbeatComponent.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Session/Component/UnitySessionHeartbeatComponent.cs index fa981ce6f..2fb697583 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/Component/UnitySessionHeartbeatComponent.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Session/Component/UnitySessionHeartbeatComponent.cs @@ -1,17 +1,14 @@ // ReSharper disable MemberCanBePrivate.Global using System; -using System.Collections.Generic; -using Fantasy.Async; -using Fantasy.Entitas; -using Fantasy.Entitas.Interface; -using Fantasy.Helper; -using Fantasy.InnerMessage; -using Fantasy.Timer; +using NBC.Async; +using NBC.Entitas; +using NBC.Entitas.Interface; +using NBC.Helper; +using NBC.InnerMessage; -#if FANTASY_UNITY -namespace Fantasy.Network +namespace NBC.Network { public class SessionHeartbeatComponentAwakeSystem : AwakeSystem { @@ -33,20 +30,9 @@ namespace Fantasy.Network public long TimeOutTimerId; public TimerComponent TimerComponent; public EntityReference Session; - private readonly PingRequest _pingRequest = new PingRequest(); + private readonly PingRequest _pingRequest = new PingRequest(); - // Ping滑动窗口及其累加和 - private int _pingSum; - private int _maxPingSamples; - private readonly Queue _pingSamples = new Queue(); - /// - /// 当前Ping延迟(毫秒,滑动均值) - /// - public int PingMilliseconds { get; private set; } - /// - /// 当前Ping延迟(秒,浮点数,通常用于调试) - /// - public float PingSeconds => PingMilliseconds / 1000f; + public int Ping { get; private set; } public override void Dispose() { @@ -56,6 +42,7 @@ namespace Fantasy.Network } Stop(); + Ping = 0; Session = null; TimeOut = 0; LastTime = 0; @@ -69,15 +56,13 @@ namespace Fantasy.Network /// 以毫秒为单位的心跳请求发送间隔。 /// 设置与服务器的通信超时时间,如果超过这个时间限制,将自动断开会话(Session)。 /// 用于检测与服务器连接超时频率。 - /// Ping包的采样数量 - public void Start(int interval, int timeOut = 5000, int timeOutInterval = 3000, int maxPingSamples = 8) + public void Start(int interval, int timeOut = 5000, int timeOutInterval = 3000) { TimeOut = timeOut + interval; Session = (Session)Parent; SelfRunTimeId = RuntimeId; LastTime = TimeHelper.Now; - _maxPingSamples = maxPingSamples; - + if (TimerComponent == null) { Log.Error("请在Unity的菜单执行Fantasy->Generate link.xml再重新打包"); @@ -122,10 +107,6 @@ namespace Fantasy.Network { TimerComponent?.Unity.Remove(ref TimeOutTimerId); } - - _pingSum = 0; - PingMilliseconds = 0; - _pingSamples.Clear(); } /// @@ -160,23 +141,8 @@ namespace Fantasy.Network var responseTime = TimeHelper.Now; LastTime = responseTime; - - // 计算Ping(毫秒) - var rtt = (int)(responseTime - requestTime); - var ping = rtt / 2; - - // 平滑滑动均值 - _pingSamples.Enqueue(ping); - _pingSum += ping; - if (_pingSamples.Count > _maxPingSamples) - { - _pingSum -= _pingSamples.Dequeue(); - } - - PingMilliseconds = Math.Max(0, _pingSamples.Count > 0 ? _pingSum / _pingSamples.Count : 0); - - // 校正服务器时间(可选) - TimeHelper.TimeDiff = pingResponse.Now + ping - responseTime; + Ping = (int)(responseTime - requestTime) / 2; + TimeHelper.TimeDiff = pingResponse.Now + Ping - responseTime; } catch (Exception) { @@ -185,4 +151,3 @@ namespace Fantasy.Network } } } -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/Component/UnitySessionHeartbeatComponent.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Session/Component/UnitySessionHeartbeatComponent.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/Component/UnitySessionHeartbeatComponent.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Session/Component/UnitySessionHeartbeatComponent.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/ProcessSession.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Session/ProcessSession.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/ProcessSession.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Session/ProcessSession.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/ProcessSession/ProcessScheduler.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Session/ProcessSession/ProcessScheduler.cs similarity index 89% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/ProcessSession/ProcessScheduler.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Session/ProcessSession/ProcessScheduler.cs index cfec1056e..ec7c30c35 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/ProcessSession/ProcessScheduler.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Session/ProcessSession/ProcessScheduler.cs @@ -46,7 +46,6 @@ internal static class ProcessScheduler throw new Exception($"not found scene routeId:{routeId}"); } - var protocolCode = packInfo.ProtocolCode; var message = packInfo.Deserialize(messageType); scene.ThreadSynchronizationContext.Post(() => @@ -59,7 +58,7 @@ internal static class ProcessScheduler return; } - sceneMessageDispatcherComponent.RouteMessageHandler(session, messageType, entity, message, rpcId, protocolCode).Coroutine(); + sceneMessageDispatcherComponent.RouteMessageHandler(session, messageType, entity, message, rpcId).Coroutine(); }); } @@ -76,7 +75,6 @@ internal static class ProcessScheduler throw new Exception($"not found scene routeId:{routeId}"); } - var protocolCode = packInfo.ProtocolCode; var message = packInfo.Deserialize(messageType); scene.ThreadSynchronizationContext.Post(() => @@ -86,11 +84,11 @@ internal static class ProcessScheduler if (entity == null || entity.IsDisposed) { - sceneMessageDispatcherComponent.FailRouteResponse(session, protocolCode, InnerErrorCode.ErrNotFoundRoute, rpcId); + sceneMessageDispatcherComponent.FailRouteResponse(session, messageType, InnerErrorCode.ErrNotFoundRoute, rpcId); return; } - sceneMessageDispatcherComponent.RouteMessageHandler(session, messageType, entity, message, rpcId, protocolCode).Coroutine(); + sceneMessageDispatcherComponent.RouteMessageHandler(session, messageType, entity, message, rpcId).Coroutine(); }); } @@ -111,8 +109,7 @@ internal static class ProcessScheduler { throw new NotSupportedException($"not found scene routeId = {routeId}"); } - - var protocolCode = packInfo.ProtocolCode; + var message = packInfo.Deserialize(messageType); scene.ThreadSynchronizationContext.Post(() => @@ -121,11 +118,11 @@ internal static class ProcessScheduler if (entity == null || entity.IsDisposed) { - scene.MessageDispatcherComponent.FailRouteResponse(session, protocolCode, InnerErrorCode.ErrNotFoundRoute, rpcId); + scene.MessageDispatcherComponent.FailRouteResponse(session, messageType, InnerErrorCode.ErrNotFoundRoute, rpcId); return; } - - scene.MessageDispatcherComponent.RouteMessageHandler(session, messageType, entity, message, rpcId, protocolCode).Coroutine(); + + scene.MessageDispatcherComponent.RouteMessageHandler(session, messageType, entity, message, rpcId).Coroutine(); }); } return; @@ -142,7 +139,7 @@ internal static class ProcessScheduler public static void Scheduler(this ProcessSession session, Type messageType, uint rpcId, long routeId, uint protocolCode, object message) { OpCodeIdStruct opCodeIdStruct = protocolCode; - + switch (opCodeIdStruct.Protocol) { case OpCodeType.InnerResponse: @@ -185,10 +182,8 @@ internal static class ProcessScheduler { return; } - - sceneMessageDispatcherComponent - .RouteMessageHandler(session, messageType, entity, messageObject, rpcId, protocolCode) - .Coroutine(); + + sceneMessageDispatcherComponent.RouteMessageHandler(session, messageType, entity, messageObject, rpcId).Coroutine(); }); return; @@ -213,13 +208,11 @@ internal static class ProcessScheduler if (entity == null || entity.IsDisposed) { - sceneMessageDispatcherComponent.FailRouteResponse(session, protocolCode, InnerErrorCode.ErrNotFoundRoute, rpcId); + sceneMessageDispatcherComponent.FailRouteResponse(session, message.GetType(), InnerErrorCode.ErrNotFoundRoute, rpcId); return; } - - sceneMessageDispatcherComponent - .RouteMessageHandler(session, messageType, entity, messageObject, rpcId, protocolCode) - .Coroutine(); + + sceneMessageDispatcherComponent.RouteMessageHandler(session, messageType, entity, messageObject, rpcId).Coroutine(); }); return; @@ -253,13 +246,12 @@ internal static class ProcessScheduler case Session gateSession: { // 这里如果是Session只可能是Gate的Session、如果是的话、肯定是转发Address消息 - gateSession.Send((IMessage)messageObject, messageType, rpcId); + gateSession.Send((IMessage)messageObject, rpcId); return; } default: { - scene.MessageDispatcherComponent.RouteMessageHandler(session, messageType, entity, - messageObject, rpcId, protocolCode).Coroutine(); + scene.MessageDispatcherComponent.RouteMessageHandler(session, messageType, entity, messageObject, rpcId).Coroutine(); return; } } diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/ProcessSession/ProcessScheduler.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Session/ProcessSession/ProcessScheduler.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/ProcessSession/ProcessScheduler.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Session/ProcessSession/ProcessScheduler.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/ProcessSession/ProcessSession.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Session/ProcessSession/ProcessSession.cs similarity index 76% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/ProcessSession/ProcessSession.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Session/ProcessSession/ProcessSession.cs index 78ffb6166..c55df2b34 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/ProcessSession/ProcessSession.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Session/ProcessSession/ProcessSession.cs @@ -1,10 +1,10 @@ -using Fantasy.Async; -using Fantasy.Network.Interface; -using Fantasy.PacketParser; -using Fantasy.PacketParser.Interface; -using Fantasy.Pool; -using Fantasy.Scheduler; -using Fantasy.Serialize; +using NBC.Async; +using NBC.Network.Interface; +using NBC.PacketParser; +using NBC.PacketParser.Interface; +using NBC.Pool; +using NBC.Scheduler; +using NBC.Serialize; #pragma warning disable CS8604 // Possible null reference argument. #pragma warning disable CS8603 // Possible null reference return. #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member @@ -19,16 +19,6 @@ public sealed class ProcessSession : Session { private readonly MemoryStreamBufferPool _memoryStreamBufferPool = new MemoryStreamBufferPool(); private readonly Dictionary> _createInstances = new Dictionary>(); - - public override void Send(IMessage message, Type messageType, uint rpcId = 0, long routeId = 0) - { - if (IsDisposed) - { - return; - } - - this.Scheduler(messageType, rpcId, routeId, message.OpCode(), message); - } /// /// 发送消息到服务器内部。 @@ -36,14 +26,30 @@ public sealed class ProcessSession : Session /// 要发送的消息。 /// RPC 标识符。 /// 路由标识符。 - public override void Send(T message, uint rpcId = 0, long routeId = 0) + public override void Send(IMessage message, uint rpcId = 0, long routeId = 0) { if (IsDisposed) { return; } - this.Scheduler(typeof(T), rpcId, routeId, message.OpCode(), message); + this.Scheduler(message.GetType(), rpcId, routeId, message.OpCode(), message); + } + + /// + /// 发送路由消息到服务器内部。 + /// + /// 要发送的路由消息。 + /// RPC 标识符。 + /// 路由标识符。 + public override void Send(IRouteMessage routeMessage, uint rpcId = 0, long routeId = 0) + { + if (IsDisposed) + { + return; + } + + this.Scheduler(routeMessage.GetType(), rpcId, routeId, routeMessage.OpCode(), routeMessage); } public override void Send(uint rpcId, long routeId, Type messageType, APackInfo packInfo) @@ -66,7 +72,12 @@ public sealed class ProcessSession : Session throw new Exception("The use of this method is not supported"); } - public override FTask Call(T request, long routeId = 0) + public override FTask Call(IRouteRequest request, long routeId = 0) + { + throw new Exception("The use of this method is not supported"); + } + + public override FTask Call(IRequest request, long routeId = 0) { throw new Exception("The use of this method is not supported"); } @@ -74,7 +85,7 @@ public sealed class ProcessSession : Session public object Deserialize(Type messageType, object message, ref OpCodeIdStruct opCodeIdStruct) { var memoryStream = _memoryStreamBufferPool.RentMemoryStream(MemoryStreamBufferSource.None); - + try { if (SerializerManager.TryGetSerializer(opCodeIdStruct.OpCodeProtocolType, out var serializer)) diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/ProcessSession/ProcessSession.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Session/ProcessSession/ProcessSession.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/ProcessSession/ProcessSession.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Session/ProcessSession/ProcessSession.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/ProcessSession/ProcessSessionInfo.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Session/ProcessSession/ProcessSessionInfo.cs similarity index 91% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/ProcessSession/ProcessSessionInfo.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Session/ProcessSession/ProcessSessionInfo.cs index 6e3a534fa..1bc72bb33 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/ProcessSession/ProcessSessionInfo.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Session/ProcessSession/ProcessSessionInfo.cs @@ -1,4 +1,4 @@ -using Fantasy.Network.Interface; +using NBC.Network.Interface; #if FANTASY_NET namespace Fantasy.Network; diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/ProcessSession/ProcessSessionInfo.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Session/ProcessSession/ProcessSessionInfo.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/ProcessSession/ProcessSessionInfo.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Session/ProcessSession/ProcessSessionInfo.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/Session.cs b/Assets/Scripts/NBC/Runtime/Core/Network/Session/Session.cs similarity index 81% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/Session.cs rename to Assets/Scripts/NBC/Runtime/Core/Network/Session/Session.cs index d613de250..72423236c 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/Session.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Network/Session/Session.cs @@ -4,15 +4,15 @@ using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; -using Fantasy.Async; -using Fantasy.Entitas; -using Fantasy.Entitas.Interface; -using Fantasy.Helper; -using Fantasy.Network.Interface; -using Fantasy.PacketParser; -using Fantasy.PacketParser.Interface; -using Fantasy.Scheduler; -using Fantasy.Serialize; +using NBC.PacketParser; +using NBC.Serialize; +using NBC.Async; +using NBC.Entitas; +using NBC.Entitas.Interface; +using NBC.Helper; +using NBC.Network.Interface; +using NBC.PacketParser.Interface; +using NBC.Scheduler; #if FANTASY_NET using Fantasy.Network.Route; using Fantasy.Platform.Net; @@ -27,7 +27,7 @@ using Fantasy.Network.Roaming; #pragma warning disable CS8601 #pragma warning disable CS8618 -namespace Fantasy.Network +namespace NBC.Network { /// /// 网络会话的基类,用于管理网络通信。 @@ -65,8 +65,8 @@ namespace Fantasy.Network // 在外部网络目标下,添加会话空闲检查组件 if (networkTarget == NetworkTarget.Outer) { - var interval = ProgramDefine.SessionIdleCheckerInterval; - var timeOut = ProgramDefine.SessionIdleCheckerTimeout; + var interval = ProcessDefine.SessionIdleCheckerInterval; + var timeOut = ProcessDefine.SessionIdleCheckerTimeout; session.AddComponent().Start(interval, timeOut); } return session; @@ -105,7 +105,7 @@ namespace Fantasy.Network return; } - Channel.Send(rpcId, routeId, packInfo.MemoryStream, null, messageType); + Channel.Send(rpcId, routeId, packInfo.MemoryStream, null); } /// @@ -123,7 +123,7 @@ namespace Fantasy.Network using (packInfo) { - Channel.Send(rpcId, routeId, packInfo.MemoryStream, null, packInfo.MessageType); + Channel.Send(rpcId, routeId, packInfo.MemoryStream, null); } } @@ -140,7 +140,7 @@ namespace Fantasy.Network return; } - Channel.Send(rpcId, routeId, memoryStream, null, null); + Channel.Send(rpcId, routeId, memoryStream, null); } #endif /// @@ -174,16 +174,6 @@ namespace Fantasy.Network RequestCallback.Clear(); OnDispose?.Invoke(); } - - public virtual void Send(IMessage message, Type messageType, uint rpcId = 0, long routeId = 0) - { - if (IsDisposed) - { - return; - } - - Channel.Send(rpcId, routeId, null, message, messageType); - } /// /// 发送一个消息 @@ -191,23 +181,39 @@ namespace Fantasy.Network /// 消息的实例 /// 如果是RPC消息需要传递一个RPCId /// routeId - public virtual void Send(T message, uint rpcId = 0, long routeId = 0) where T : IMessage + public virtual void Send(IMessage message, uint rpcId = 0, long routeId = 0) + { + if (IsDisposed) + { + return; + } + + Channel.Send(rpcId, routeId, null, message); + } + + /// + /// 发送一个消息 + /// + /// 消息的实例,不同的是这个是发送Route消息使用的 + /// 如果是RPC消息需要传递一个RPCId + /// routeId + public virtual void Send(IRouteMessage routeMessage, uint rpcId = 0, long routeId = 0) { if (IsDisposed) { return; } - Channel.Send(rpcId, routeId, null, message, typeof(T)); + Channel.Send(rpcId, routeId, null, routeMessage); } /// /// 发送一个RPC消息 /// - /// 请求消息的实例 + /// 请求Route消息的实例 /// routeId /// - public virtual FTask Call(T request, long routeId = 0) where T : IRequest + public virtual FTask Call(IRouteRequest request, long routeId = 0) { if (IsDisposed) { @@ -217,7 +223,27 @@ namespace Fantasy.Network var requestCallback = FTask.Create(); var rpcId = ++_rpcId; RequestCallback.Add(rpcId, requestCallback); - Send(request, rpcId, routeId); + Send(request, rpcId, routeId); + return requestCallback; + } + + /// + /// 发送一个RPC消息 + /// + /// 请求消息的实例 + /// routeId + /// + public virtual FTask Call(IRequest request, long routeId = 0) + { + if (IsDisposed) + { + return null; + } + + var requestCallback = FTask.Create(); + var rpcId = ++_rpcId; + RequestCallback.Add(rpcId, requestCallback); + Send(request, rpcId, routeId); return requestCallback; } @@ -242,31 +268,5 @@ namespace Fantasy.Network Log.Error(e); } } -#if FANTASY_NET - /// - /// 重新开始心跳检查 - /// - /// - /// - public void RestartIdleChecker(int interval, int timeOut) - { - var sessionIdleCheckerComponent = GetComponent(); - if (sessionIdleCheckerComponent == null) - { - Log.Error("SessionIdleCheckerComponent is null"); - return; - } - - sessionIdleCheckerComponent.Restart(interval, timeOut); - } - - /// - /// 重新开始心跳检查(使用框架配置的参数) - /// - public void RestartIdleChecker() - { - RestartIdleChecker(ProgramDefine.SessionIdleCheckerInterval, ProgramDefine.SessionIdleCheckerTimeout); - } -#endif } } diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/Session.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Network/Session/Session.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Session/Session.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Network/Session/Session.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform.meta b/Assets/Scripts/NBC/Runtime/Core/Platform.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform.meta rename to Assets/Scripts/NBC/Runtime/Core/Platform.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity.meta b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity.meta rename to Assets/Scripts/NBC/Runtime/Core/Platform/Unity.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/AppDefine.cs b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/AppDefine.cs similarity index 94% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/AppDefine.cs rename to Assets/Scripts/NBC/Runtime/Core/Platform/Unity/AppDefine.cs index d9d85aef0..fe51f80dd 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/AppDefine.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/AppDefine.cs @@ -1,5 +1,4 @@ -#if FANTASY_UNITY -namespace Fantasy.Platform.Unity +namespace NBC.Platform.Unity { public static class AppDefine { @@ -15,5 +14,4 @@ namespace Fantasy.Platform.Unity public static string PersistentDataVersion => $"{UnityEngine.Application.persistentDataPath}/{VersionName}"; public static string StreamingAssetsVersion => $"{UnityEngine.Application.streamingAssetsPath}/{VersionName}"; } -} -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/AppDefine.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/AppDefine.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/AppDefine.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Platform/Unity/AppDefine.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes.meta b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes.meta rename to Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonDefaultValueAttribute.cs b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonDefaultValueAttribute.cs similarity index 91% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonDefaultValueAttribute.cs rename to Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonDefaultValueAttribute.cs index 49914ec76..b49d009cf 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonDefaultValueAttribute.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonDefaultValueAttribute.cs @@ -1,4 +1,3 @@ -#if FANTASY_UNITY using System; namespace MongoDB.Bson.Serialization.Attributes { @@ -8,4 +7,3 @@ namespace MongoDB.Bson.Serialization.Attributes public BsonDefaultValueAttribute(object defaultValue) { } } } -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonDefaultValueAttribute.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonDefaultValueAttribute.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonDefaultValueAttribute.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonDefaultValueAttribute.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonElementAttribute.cs b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonElementAttribute.cs similarity index 92% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonElementAttribute.cs rename to Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonElementAttribute.cs index 389272789..7e1d7cc44 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonElementAttribute.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonElementAttribute.cs @@ -1,4 +1,3 @@ -#if FANTASY_UNITY using System; namespace MongoDB.Bson.Serialization.Attributes { @@ -9,5 +8,4 @@ namespace MongoDB.Bson.Serialization.Attributes public BsonElementAttribute(string elementName) { } } -} -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonElementAttribute.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonElementAttribute.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonElementAttribute.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonElementAttribute.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonIdAttribute.cs b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonIdAttribute.cs similarity index 88% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonIdAttribute.cs rename to Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonIdAttribute.cs index 48274d082..46e3bc73c 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonIdAttribute.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonIdAttribute.cs @@ -1,4 +1,3 @@ -#if FANTASY_UNITY using System; namespace MongoDB.Bson.Serialization.Attributes { @@ -7,5 +6,4 @@ namespace MongoDB.Bson.Serialization.Attributes { } -} -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonIdAttribute.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonIdAttribute.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonIdAttribute.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonIdAttribute.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreAttribute.cs b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreAttribute.cs similarity index 88% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreAttribute.cs rename to Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreAttribute.cs index 23e55c81d..59852c45b 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreAttribute.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreAttribute.cs @@ -1,4 +1,3 @@ -#if FANTASY_UNITY using System; namespace MongoDB.Bson.Serialization.Attributes { @@ -7,5 +6,4 @@ namespace MongoDB.Bson.Serialization.Attributes { } -} -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreAttribute.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreAttribute.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreAttribute.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreAttribute.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreIfDefaultAttribute.cs b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreIfDefaultAttribute.cs similarity index 92% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreIfDefaultAttribute.cs rename to Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreIfDefaultAttribute.cs index 82dddde6a..279653be0 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreIfDefaultAttribute.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreIfDefaultAttribute.cs @@ -1,4 +1,3 @@ -#if FANTASY_UNITY using System; namespace MongoDB.Bson.Serialization.Attributes { @@ -9,5 +8,4 @@ namespace MongoDB.Bson.Serialization.Attributes public BsonIgnoreIfDefaultAttribute(bool value) { } } -} -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreIfDefaultAttribute.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreIfDefaultAttribute.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreIfDefaultAttribute.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreIfDefaultAttribute.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreIfNullAttribute.cs b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreIfNullAttribute.cs similarity index 88% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreIfNullAttribute.cs rename to Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreIfNullAttribute.cs index f330a8b9c..08cf30deb 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreIfNullAttribute.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreIfNullAttribute.cs @@ -1,4 +1,3 @@ -#if FANTASY_UNITY using System; namespace MongoDB.Bson.Serialization.Attributes { @@ -7,5 +6,4 @@ namespace MongoDB.Bson.Serialization.Attributes { } -} -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreIfNullAttribute.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreIfNullAttribute.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreIfNullAttribute.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Attributes/BsonIgnoreIfNullAttribute.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Entry.cs b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Entry.cs similarity index 83% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Entry.cs rename to Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Entry.cs index 50e927558..cfba35a96 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Entry.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Entry.cs @@ -1,9 +1,7 @@ -#if FANTASY_UNITY -using System; using System.Linq; -using Fantasy.Assembly; -using Fantasy.Async; -using Fantasy.Serialize; +using NBC.Assembly; +using NBC.Async; +using NBC.Serialize; using UnityEngine; using UnityEngine.Scripting; @@ -12,7 +10,7 @@ using UnityEngine.Scripting; #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. -namespace Fantasy.Platform.Unity +namespace NBC.Platform.Unity { public sealed class FantasyObject : MonoBehaviour { @@ -43,19 +41,19 @@ namespace Fantasy.Platform.Unity /// /// 初始化框架 /// - public static async FTask Initialize() + /// + public static async FTask Initialize(params System.Reflection.Assembly[] assemblies) { if (_isInit) { Log.Error("Fantasy has already been initialized and does not need to be initialized again!"); return; } - Log.Initialize(new UnityLog()); FantasyObject.OnRuntimeMethodLoad(); - ProgramDefine.MaxMessageSize = ushort.MaxValue * 16; - Log.Info($"Fantasy Version:{ProgramDefine.VERSION}"); + Log.Register(new UnityLog()); + await AssemblySystem.InnerInitialize(assemblies); // 初始化序列化 - await SerializerManager.Initialize(); + SerializerManager.Initialize(); #if FANTASY_WEBGL ThreadSynchronizationContext.Initialize(); #endif @@ -87,15 +85,10 @@ namespace Fantasy.Platform.Unity ThreadScheduler.Update(); } - private void LateUpdate() - { - ThreadScheduler.LateUpdate(); - } - private void OnDestroy() { + AssemblySystem.Dispose(); SerializerManager.Dispose(); - AssemblyManifest.Dispose().Coroutine(); if (Scene != null) { Scene?.Dispose(); @@ -105,4 +98,3 @@ namespace Fantasy.Platform.Unity } } } -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Entry.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Entry.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Entry.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Entry.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Temp.cs b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Temp.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Temp.cs rename to Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Temp.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Temp.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Temp.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/Temp.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Platform/Unity/Temp.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Console/ThreadSynchronizationContext.cs b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/ThreadSynchronizationContext.cs similarity index 61% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Console/ThreadSynchronizationContext.cs rename to Assets/Scripts/NBC/Runtime/Core/Platform/Unity/ThreadSynchronizationContext.cs index 29fd54ac0..a0525ce3b 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Console/ThreadSynchronizationContext.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/ThreadSynchronizationContext.cs @@ -1,13 +1,16 @@ -#if FANTASY_CONSOLE -#pragma warning disable CS8601 // Possible null reference assignment. -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. -#pragma warning disable CS8765 // Nullability of type of parameter doesn't match overridden member (possibly because of nullability attributes). -namespace Fantasy +#pragma warning disable CS8765 +#pragma warning disable CS8601 +#pragma warning disable CS8618 +using System; +using System.Collections.Concurrent; +using System.Threading; + +namespace NBC { public sealed class ThreadSynchronizationContext : SynchronizationContext { private Action _actionHandler; - private readonly Queue _queue = new(); + private readonly ConcurrentQueue _queue = new(); public void Update() { @@ -34,5 +37,4 @@ namespace Fantasy _queue.Enqueue(action); } } -} -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/ThreadSynchronizationContext.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Platform/Unity/ThreadSynchronizationContext.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/ThreadSynchronizationContext.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Platform/Unity/ThreadSynchronizationContext.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool.meta b/Assets/Scripts/NBC/Runtime/Core/Pool.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool.meta rename to Assets/Scripts/NBC/Runtime/Core/Pool.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Concurrent.meta b/Assets/Scripts/NBC/Runtime/Core/Pool/Concurrent.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Concurrent.meta rename to Assets/Scripts/NBC/Runtime/Core/Pool/Concurrent.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Concurrent/MultiThreadPool.cs b/Assets/Scripts/NBC/Runtime/Core/Pool/Concurrent/MultiThreadPool.cs similarity index 98% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Concurrent/MultiThreadPool.cs rename to Assets/Scripts/NBC/Runtime/Core/Pool/Concurrent/MultiThreadPool.cs index 4c946d1a0..f3a61ecea 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Concurrent/MultiThreadPool.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Pool/Concurrent/MultiThreadPool.cs @@ -4,7 +4,7 @@ using System.Collections.Concurrent; using System.Runtime.CompilerServices; #pragma warning disable CS8603 // Possible null reference return. -namespace Fantasy.Pool +namespace NBC.Pool { /// /// 线程安全的静态通用对象池。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Concurrent/MultiThreadPool.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Pool/Concurrent/MultiThreadPool.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Concurrent/MultiThreadPool.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Pool/Concurrent/MultiThreadPool.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Concurrent/MultiThreadPoolQueue.cs b/Assets/Scripts/NBC/Runtime/Core/Pool/Concurrent/MultiThreadPoolQueue.cs similarity index 98% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Concurrent/MultiThreadPoolQueue.cs rename to Assets/Scripts/NBC/Runtime/Core/Pool/Concurrent/MultiThreadPoolQueue.cs index df15a1c9e..2cabc107e 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Concurrent/MultiThreadPoolQueue.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Pool/Concurrent/MultiThreadPoolQueue.cs @@ -7,7 +7,7 @@ using System.Threading; #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. #pragma warning disable CS8603 // Possible null reference return. -namespace Fantasy.Pool +namespace NBC.Pool { /// /// 线程安全的对象池。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Concurrent/MultiThreadPoolQueue.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Pool/Concurrent/MultiThreadPoolQueue.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Concurrent/MultiThreadPoolQueue.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Pool/Concurrent/MultiThreadPoolQueue.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Interface.meta b/Assets/Scripts/NBC/Runtime/Core/Pool/Interface.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Interface.meta rename to Assets/Scripts/NBC/Runtime/Core/Pool/Interface.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Interface/IPool.cs b/Assets/Scripts/NBC/Runtime/Core/Pool/Interface/IPool.cs similarity index 94% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Interface/IPool.cs rename to Assets/Scripts/NBC/Runtime/Core/Pool/Interface/IPool.cs index 1775f28b2..cccb01820 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Interface/IPool.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Pool/Interface/IPool.cs @@ -1,4 +1,4 @@ -namespace Fantasy.Pool +namespace NBC.Pool { /// /// 实现了这个接口代表支持对象池 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Interface/IPool.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Pool/Interface/IPool.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Interface/IPool.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Pool/Interface/IPool.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Normal.meta b/Assets/Scripts/NBC/Runtime/Core/Pool/Normal.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Normal.meta rename to Assets/Scripts/NBC/Runtime/Core/Pool/Normal.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Normal/Pool.cs b/Assets/Scripts/NBC/Runtime/Core/Pool/Normal/Pool.cs similarity index 98% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Normal/Pool.cs rename to Assets/Scripts/NBC/Runtime/Core/Pool/Normal/Pool.cs index 88006e18b..be92ab830 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Normal/Pool.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Pool/Normal/Pool.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; // ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract // ReSharper disable CheckNamespace -namespace Fantasy.Pool +namespace NBC.Pool { /// /// 静态的对象池系统,不支持多线程。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Normal/Pool.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Pool/Normal/Pool.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Normal/Pool.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Pool/Normal/Pool.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Normal/PoolCore.cs b/Assets/Scripts/NBC/Runtime/Core/Pool/Normal/PoolCore.cs similarity index 87% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Normal/PoolCore.cs rename to Assets/Scripts/NBC/Runtime/Core/Pool/Normal/PoolCore.cs index c7983aaaa..78d28bcb0 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Normal/PoolCore.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Pool/Normal/PoolCore.cs @@ -1,13 +1,13 @@ using System; using System.Collections.Generic; using System.Runtime.CompilerServices; -using Fantasy.DataStructure.Collection; +using NBC.DataStructure.Collection; // ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract #pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. #pragma warning disable CS8603 // Possible null reference return. -namespace Fantasy.Pool +namespace NBC.Pool { /// /// 对象池抽象接口,用于创建和管理可重复使用的对象实例。 @@ -20,8 +20,8 @@ namespace Fantasy.Pool /// 池子里可用的数量 /// public int Count => _poolQueue.Count; - private readonly OneToManyQueue _poolQueue = new OneToManyQueue(); - private readonly Dictionary> _typeCheckCache = new Dictionary>(); + private readonly OneToManyQueue _poolQueue = new OneToManyQueue(); + private readonly Dictionary> _typeCheckCache = new Dictionary>(); /// /// 构造函数 @@ -39,7 +39,7 @@ namespace Fantasy.Pool /// public T Rent() where T : IPool, new() { - if (!_poolQueue.TryDequeue(typeof(T).TypeHandle, out var queue)) + if (!_poolQueue.TryDequeue(typeof(T), out var queue)) { queue = new T(); } @@ -57,10 +57,9 @@ namespace Fantasy.Pool /// public IPool Rent(Type type) { - var runtimeTypeHandle = type.TypeHandle; - if (!_poolQueue.TryDequeue(runtimeTypeHandle, out var queue)) + if (!_poolQueue.TryDequeue(type, out var queue)) { - if (!_typeCheckCache.TryGetValue(runtimeTypeHandle, out var createInstance)) + if (!_typeCheckCache.TryGetValue(type, out var createInstance)) { if (!typeof(IPool).IsAssignableFrom(type)) { @@ -69,7 +68,7 @@ namespace Fantasy.Pool else { createInstance = CreateInstance.CreateIPool(type); - _typeCheckCache[runtimeTypeHandle] = createInstance; + _typeCheckCache[type] = createInstance; } } @@ -107,7 +106,7 @@ namespace Fantasy.Pool _poolCount++; obj.SetIsPool(false); - _poolQueue.Enqueue(type.TypeHandle, obj); + _poolQueue.Enqueue(type, obj); } /// diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Normal/PoolCore.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Pool/Normal/PoolCore.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Normal/PoolCore.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Pool/Normal/PoolCore.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Normal/PoolWithDisposable.cs b/Assets/Scripts/NBC/Runtime/Core/Pool/Normal/PoolWithDisposable.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Normal/PoolWithDisposable.cs rename to Assets/Scripts/NBC/Runtime/Core/Pool/Normal/PoolWithDisposable.cs index 3f97f1c33..3e27100cd 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Normal/PoolWithDisposable.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Pool/Normal/PoolWithDisposable.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; // ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract -namespace Fantasy.Pool +namespace NBC.Pool { /// /// 静态通用对象池,用于存储实现了 IDisposable 接口的对象。 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Normal/PoolWithDisposable.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Pool/Normal/PoolWithDisposable.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/Normal/PoolWithDisposable.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Pool/Normal/PoolWithDisposable.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/PoolHelper.cs b/Assets/Scripts/NBC/Runtime/Core/Pool/PoolHelper.cs similarity index 97% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/PoolHelper.cs rename to Assets/Scripts/NBC/Runtime/Core/Pool/PoolHelper.cs index f2bf67024..e56b428ae 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/PoolHelper.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Pool/PoolHelper.cs @@ -1,11 +1,10 @@ using System; using System.Reflection.Emit; -using Fantasy.Network.Interface; -using Fantasy.Serialize; +using NBC.Serialize; #pragma warning disable CS8604 // Possible null reference argument. -namespace Fantasy.Pool +namespace NBC.Pool { internal static class CreateInstance where T : IPool { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/PoolHelper.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Pool/PoolHelper.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Pool/PoolHelper.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Pool/PoolHelper.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene.meta b/Assets/Scripts/NBC/Runtime/Core/Scene.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene.meta rename to Assets/Scripts/NBC/Runtime/Core/Scene.meta diff --git a/Assets/Scripts/NBC/Runtime/Core/Scene/ISceneUpdate.cs b/Assets/Scripts/NBC/Runtime/Core/Scene/ISceneUpdate.cs new file mode 100644 index 000000000..ee34034e0 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Scene/ISceneUpdate.cs @@ -0,0 +1,15 @@ +namespace NBC +{ + internal interface ISceneUpdate + { + void Update(); + } + + internal sealed class EmptySceneUpdate : ISceneUpdate + { + public void Update() + { + + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/ISceneUpdate.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Scene/ISceneUpdate.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/ISceneUpdate.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Scene/ISceneUpdate.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scene.cs b/Assets/Scripts/NBC/Runtime/Core/Scene/Scene.cs similarity index 51% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scene.cs rename to Assets/Scripts/NBC/Runtime/Core/Scene/Scene.cs index f0a07e6ec..2cca4e803 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scene.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Scene/Scene.cs @@ -1,24 +1,15 @@ using System; using System.Collections.Generic; using System.Linq; -using Fantasy.Async; -using Fantasy.Entitas; -using Fantasy.Event; -using Fantasy.IdFactory; -using Fantasy.Network; -using Fantasy.Network.Interface; -using Fantasy.Pool; -using Fantasy.Scheduler; -using Fantasy.Timer; -#if FANTASY_NET -using Fantasy.DataBase; -using Fantasy.Platform.Net; -// using Fantasy.SingleCollection; -using System.Runtime.CompilerServices; -using Fantasy.Network.Route; -using Fantasy.Network.Roaming; -using Fantasy.SeparateTable; -#endif +using NBC.Scheduler; +using NBC.Async; +using NBC.Entitas; +using NBC.Event; +using NBC.IdFactory; +using NBC.Network; +using NBC.Network.Interface; +using NBC.Pool; + // ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract #pragma warning disable CS8601 // Possible null reference assignment. #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. @@ -26,7 +17,7 @@ using Fantasy.SeparateTable; #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. #pragma warning disable CS8602 // Dereference of a possibly null reference. #pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. -namespace Fantasy +namespace NBC { /// /// 当Scene创建完成后发送的事件参数 @@ -37,6 +28,7 @@ namespace Fantasy /// 获取与事件关联的场景实体。 /// public readonly Scene Scene; + /// /// 初始化一个新的 OnCreateScene 实例。 /// @@ -46,48 +38,31 @@ namespace Fantasy Scene = scene; } } - + /// /// 表示一个场景实体,用于创建与管理特定的游戏场景信息。 /// public partial class Scene : Entity { #region Members + /// /// Scene的运行类型 /// public SceneRuntimeType SceneRuntimeType { get; protected set; } -#if FANTASY_NET - /// - /// Scene类型,对应SceneConfig的SceneType - /// - public int SceneType { get; protected set; } - /// - /// 所属的世界 - /// - public World World { get; protected set; } - /// - /// 所在的Process - /// - public Process Process { get; protected set; } - /// - /// SceneConfig的Id - /// - public uint SceneConfigId { get; protected set; } - internal ANetwork InnerNetwork { get; private set; } - internal ANetwork OuterNetwork { get; private set; } - internal SceneConfig SceneConfig => SceneConfigData.Instance.Get(SceneConfigId); - private readonly Dictionary _processSessionInfos = new Dictionary(); -#endif + /// /// 当前Scene的上下文 /// public ThreadSynchronizationContext ThreadSynchronizationContext { get; internal set; } + /// /// 当前Scene的下创建的Entity /// private readonly Dictionary _entities = new Dictionary(); - internal readonly Dictionary> TypeInstance = new Dictionary>(); + + internal readonly Dictionary> TypeInstance = new Dictionary>(); + #endregion #region IdFactory @@ -96,13 +71,14 @@ namespace Fantasy /// Entity实体Id的生成器 /// public IEntityIdFactory EntityIdFactory { get; protected set; } + /// /// Entity实体RuntimeId的生成器 /// public IRuntimeIdFactory RuntimeIdFactory { get; protected set; } #endregion - + #region Pool internal EntityPool EntityPool; @@ -110,51 +86,39 @@ namespace Fantasy internal EntitySortedDictionaryPool EntitySortedDictionaryPool; #endregion - + #region Component /// /// Scene下的任务调度器系统组件 /// public TimerComponent TimerComponent { get; internal set; } + /// /// Scene下的事件系统组件 /// public EventComponent EventComponent { get; internal set; } + /// /// Scene下的ESC系统组件 /// public EntityComponent EntityComponent { get; internal set; } + /// /// Scene下的网络消息对象池组件 /// public MessagePoolComponent MessagePoolComponent { get; internal set; } + /// /// Scene下的协程锁组件 /// public CoroutineLockComponent CoroutineLockComponent { get; internal set; } + /// /// Scene下的网络消息派发组件 /// internal MessageDispatcherComponent MessageDispatcherComponent { get; set; } -#if FANTASY_NET - /// - /// Scene下的Entity分表组件 - /// - public SeparateTableComponent SeparateTableComponent { get; internal set; } - /// - /// Scene下的内网消息发送组件 - /// - public NetworkMessagingComponent NetworkMessagingComponent { get; internal set; } - /// - /// Scene下的漫游终端管理组件 - /// - public TerminusComponent TerminusComponent { get; internal set; } - /// - /// Scene下的Session漫游组件 - /// - public RoamingComponent RoamingComponent { get; internal set; } -#endif + #endregion #region Initialize @@ -164,22 +128,12 @@ namespace Fantasy EntityPool = new EntityPool(); EntityListPool = new EntityListPool(); EntitySortedDictionaryPool = new EntitySortedDictionaryPool(); - EntityComponent = await Create(this, false, false).Initialize(); - SceneUpdate = EntityComponent; -#if FANTASY_UNITY - SceneLateUpdate = EntityComponent; -#endif - MessagePoolComponent = Create(this,false,true); - EventComponent = await Create(this,false,true).Initialize(); + SceneUpdate = EntityComponent = await Create(this, false, false).Initialize(); + MessagePoolComponent = Create(this, false, true); + EventComponent = await Create(this, false, true).Initialize(); TimerComponent = Create(this, false, true).Initialize(); CoroutineLockComponent = Create(this, false, true).Initialize(); MessageDispatcherComponent = await Create(this, false, true).Initialize(); -#if FANTASY_NET - NetworkMessagingComponent = Create(this, false, true); - SeparateTableComponent = await Create(this, false, true).Initialize(); - TerminusComponent = Create(this, false, true); - RoamingComponent = Create(this, false, true).Initialize(); -#endif } /// @@ -191,7 +145,7 @@ namespace Fantasy { return; } - + base.Dispose(); _entities.Remove(RuntimeId); @@ -199,14 +153,6 @@ namespace Fantasy { case SceneRuntimeType.Root: { -#if FANTASY_NET - foreach (var (_, processSessionInfo) in _processSessionInfos.ToList()) - { - processSessionInfo.Dispose(); - } - - _processSessionInfos.Clear(); -#endif _entities.Remove(EntityComponent.RuntimeId); foreach (var (runtimeId, entity) in _entities.ToList()) @@ -215,19 +161,14 @@ namespace Fantasy { continue; } + entity.Dispose(); } _entities.Clear(); -#if FANTASY_UNITY _unityWorldId--; _unitySceneId--; -#endif TypeInstance.Clear(); -#if FANTASY_NET - Process.RemoveScene(this, false); - Process.RemoveSceneToProcess(this, false); -#endif EntityComponent.Dispose(); EntityPool.Dispose(); EntityListPool.Dispose(); @@ -240,7 +181,8 @@ namespace Fantasy } default: { - Log.Error($"SceneRuntimeType: {SceneRuntimeType} The unsupported SceneRuntimeType of the Scene executed Dispose."); + Log.Error( + $"SceneRuntimeType: {SceneRuntimeType} The unsupported SceneRuntimeType of the Scene executed Dispose."); break; } } @@ -258,20 +200,8 @@ namespace Fantasy MessagePoolComponent = null; CoroutineLockComponent = null; MessageDispatcherComponent = null; -#if FANTASY_NET - World = null; - Process = null; - SceneType = 0; - SceneConfigId = 0; - SeparateTableComponent = null; - NetworkMessagingComponent = null; - TerminusComponent = null; - RoamingComponent = null; -#elif FANTASY_UNITY Session = null; UnityNetwork = null; - SceneLateUpdate = null; -#endif ThreadSynchronizationContext = null; SceneRuntimeType = SceneRuntimeType.None; } @@ -279,6 +209,7 @@ namespace Fantasy #endregion internal ISceneUpdate SceneUpdate { get; set; } + internal void Update() { try @@ -290,27 +221,14 @@ namespace Fantasy Log.Error(e); } } -#if FANTASY_UNITY - internal ISceneLateUpdate SceneLateUpdate { get; set; } - internal void LateUpdate() - { - try - { - SceneLateUpdate.LateUpdate(); - } - catch (Exception e) - { - Log.Error(e); - } - } -#endif + #region Create -#if FANTASY_UNITY || FANTASY_CONSOLE private static uint _unitySceneId = 0; private static byte _unityWorldId = 0; public Session Session { get; private set; } private AClientNetwork UnityNetwork { get; set; } + /// /// 创建一个Unity的Scene,注意:该方法只能在主线程下使用。 /// @@ -327,7 +245,7 @@ namespace Fantasy } var sceneId = (uint)(++_unitySceneId + world * 1000); - + if (sceneId > 255255) { throw new Exception($"Scene ID ({sceneId}) exceeds the maximum allowed value of 255255."); @@ -338,10 +256,10 @@ namespace Fantasy scene.Parent = scene; scene.Type = typeof(Scene); scene.SceneRuntimeType = SceneRuntimeType.Root; - scene.EntityIdFactory = IdFactoryHelper.EntityIdFactory(sceneId, world); + scene.EntityIdFactory = IdFactoryHelper.EntityIdFactory(sceneId, world); scene.RuntimeIdFactory = IdFactoryHelper.RuntimeIdFactory(0, sceneId, world); scene.Id = IdFactoryHelper.EntityId(0, sceneId, world, 0); - scene.RuntimeId = IdFactoryHelper.RuntimeId(false, 0, sceneId, world, 0); + scene.RuntimeId = IdFactoryHelper.RuntimeId(0, sceneId, world, 0); scene.AddEntity(scene); await SetScheduler(scene, sceneRuntimeMode); scene.ThreadSynchronizationContext.Post(() => @@ -350,112 +268,17 @@ namespace Fantasy }); return scene; } - public Session Connect(string remoteAddress, NetworkProtocolType networkProtocolType, Action onConnectComplete, Action onConnectFail, Action onConnectDisconnect, bool isHttps, int connectTimeout = 5000) + + public Session Connect(string remoteAddress, NetworkProtocolType networkProtocolType, Action onConnectComplete, + Action onConnectFail, Action onConnectDisconnect, bool isHttps, int connectTimeout = 5000) { UnityNetwork?.Dispose(); UnityNetwork = NetworkProtocolFactory.CreateClient(this, networkProtocolType, NetworkTarget.Outer); - Session = UnityNetwork.Connect(remoteAddress, onConnectComplete, onConnectFail, onConnectDisconnect, isHttps, connectTimeout); + Session = UnityNetwork.Connect(remoteAddress, onConnectComplete, onConnectFail, onConnectDisconnect, + isHttps, connectTimeout); return Session; } -#endif -#if FANTASY_NET - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static Scene Create(Process process, byte worldId, uint sceneConfigId) - { - var scene = new Scene(); - scene.Scene = scene; - scene.Parent = scene; - scene.Type = typeof(Scene); - scene.Process = process; - scene.SceneRuntimeType = SceneRuntimeType.Root; - scene.EntityIdFactory = IdFactoryHelper.EntityIdFactory(sceneConfigId, worldId); - scene.RuntimeIdFactory = IdFactoryHelper.RuntimeIdFactory(0, sceneConfigId, worldId); - scene.Id = IdFactoryHelper.EntityId(0, sceneConfigId, worldId, 0); - scene.RuntimeId = IdFactoryHelper.RuntimeId(false, 0, sceneConfigId, worldId, 0); - scene.AddEntity(scene); - return scene; - } - /// - /// 创建一个新的Scene - /// - /// 所属的Process - /// 对应的MachineConfig配置文件 - /// 对应的SceneConfig配置文件 - /// 创建成功后会返回创建的Scene的实例 - public static async FTask Create(Process process, MachineConfig machineConfig, SceneConfig sceneConfig) - { - var scene = Create(process, (byte)sceneConfig.WorldConfigId, sceneConfig.Id); - scene.SceneType = sceneConfig.SceneType; - scene.SceneConfigId = sceneConfig.Id; - await SetScheduler(scene, sceneConfig.SceneRuntimeMode); - - if (sceneConfig.WorldConfigId != 0) - { - scene.World = World.Create(scene, (byte)sceneConfig.WorldConfigId); - } - if (sceneConfig.InnerPort != 0) - { - // 创建内网网络服务器 - scene.InnerNetwork = NetworkProtocolFactory.CreateServer(scene, ProgramDefine.InnerNetwork, NetworkTarget.Inner, machineConfig.InnerBindIP, sceneConfig.InnerPort); - } - - if (sceneConfig.OuterPort != 0) - { - // 创建外网网络服务 - var networkProtocolType = Enum.Parse(sceneConfig.NetworkProtocol); - scene.OuterNetwork = NetworkProtocolFactory.CreateServer(scene, networkProtocolType, NetworkTarget.Outer, machineConfig.OuterBindIP, sceneConfig.OuterPort); - } - - Process.AddScene(scene); - process.AddSceneToProcess(scene); - - scene.ThreadSynchronizationContext.Post(() => - { - if (sceneConfig.SceneTypeString == "Addressable") - { - // 如果是AddressableScene,自动添加上AddressableManageComponent。 - scene.AddComponent(); - } - - scene.EventComponent.PublishAsync(new OnCreateScene(scene)).Coroutine(); - }); - - return scene; - } - /// - /// 在Scene下面创建一个子Scene,一般用于副本,或者一些特殊的场景。 - /// - /// 主Scene的实例 - /// SceneType,可以在SceneType里找到,例如:SceneType.Addressable - /// 子Scene创建成功后执行的委托,可以传递null - /// - public static SubScene CreateSubScene(Scene parentScene, int sceneType, Action onSubSceneComplete = null) - { - var scene = new SubScene(); - scene.Scene = scene; - scene.Parent = scene; - scene.RootScene = parentScene; - scene.Type = typeof(SubScene); - scene.SceneType = sceneType; - scene.World = parentScene.World; - scene.Process = parentScene.Process; - scene.SceneRuntimeType = SceneRuntimeType.SubScene; - scene.EntityIdFactory = parentScene.EntityIdFactory; - scene.RuntimeIdFactory = parentScene.RuntimeIdFactory; - scene.Id = scene.EntityIdFactory.Create; - scene.RuntimeId = scene.RuntimeIdFactory.Create(false); - scene.AddEntity(scene); - scene.Initialize(parentScene); - scene.ThreadSynchronizationContext.Post(() => OnEvent().Coroutine()); - return scene; - async FTask OnEvent() - { - await scene.EventComponent.PublishAsync(new OnCreateScene(scene)); - onSubSceneComplete?.Invoke(scene, parentScene); - } - } -#endif private static async FTask SetScheduler(Scene scene, string sceneRuntimeMode) { switch (sceneRuntimeMode) @@ -464,41 +287,29 @@ namespace Fantasy { scene.ThreadSynchronizationContext = ThreadScheduler.MainScheduler.ThreadSynchronizationContext; scene.SceneUpdate = new EmptySceneUpdate(); -#if FANTASY_UNITY - scene.SceneLateUpdate = new EmptySceneLateUpdate(); -#endif ThreadScheduler.AddMainScheduler(scene); await scene.Initialize(); break; } case "MultiThread": { -#if !FANTASY_WEBGL scene.ThreadSynchronizationContext = new ThreadSynchronizationContext(); -#endif scene.SceneUpdate = new EmptySceneUpdate(); -#if FANTASY_UNITY - scene.SceneLateUpdate = new EmptySceneLateUpdate(); -#endif ThreadScheduler.AddToMultiThreadScheduler(scene); await scene.Initialize(); break; } case "ThreadPool": { -#if !FANTASY_WEBGL - scene.ThreadSynchronizationContext = new ThreadSynchronizationContext(); -#endif + scene.ThreadSynchronizationContext = new ThreadSynchronizationContext(); scene.SceneUpdate = new EmptySceneUpdate(); -#if FANTASY_UNITY - scene.SceneLateUpdate = new EmptySceneLateUpdate(); -#endif ThreadScheduler.AddToThreadPoolScheduler(scene); await scene.Initialize(); break; } } } + #endregion #region Entities @@ -584,63 +395,5 @@ namespace Fantasy } #endregion - - #region InnerSession - -#if FANTASY_NET - /// - /// 根据runTimeId获得Session - /// - /// - /// - /// - internal virtual Session GetSession(long runTimeId) - { - var sceneId = IdFactoryHelper.RuntimeIdTool.GetSceneId(ref runTimeId); - - if (_processSessionInfos.TryGetValue(sceneId, out var processSessionInfo)) - { - if (!processSessionInfo.Session.IsDisposed) - { - return processSessionInfo.Session; - } - - _processSessionInfos.Remove(sceneId); - } - - if (Process.IsInAppliaction(ref sceneId)) - { - // 如果在同一个Process下,不需要通过Socket发送了,直接通过Process下转发。 - var processSession = Session.CreateInnerSession(Scene); - _processSessionInfos.Add(sceneId, new ProcessSessionInfo(processSession, null)); - return processSession; - } - - if (!SceneConfigData.Instance.TryGet(sceneId, out var sceneConfig)) - { - throw new Exception($"The scene with sceneId {sceneId} was not found in the configuration file"); - } - - if (!ProcessConfigData.Instance.TryGet(sceneConfig.ProcessConfigId, out var processConfig)) - { - throw new Exception($"The process with processId {sceneConfig.ProcessConfigId} was not found in the configuration file"); - } - - if (!MachineConfigData.Instance.TryGet(processConfig.MachineId, out var machineConfig)) - { - throw new Exception($"The machine with machineId {processConfig.MachineId} was not found in the configuration file"); - } - - var remoteAddress = $"{machineConfig.InnerBindIP}:{sceneConfig.InnerPort}"; - var client = NetworkProtocolFactory.CreateClient(Scene, ProgramDefine.InnerNetwork, NetworkTarget.Inner); - var session = client.Connect(remoteAddress, null, () => - { - Log.Error($"Unable to connect to the target server sourceServerId:{Scene.Process.Id} targetServerId:{sceneConfig.ProcessConfigId}"); - }, null, false); - _processSessionInfos.Add(sceneId, new ProcessSessionInfo(session, client)); - return session; - } -#endif - #endregion } } \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scene.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Scene/Scene.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scene.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Scene/Scene.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/SceneRuntimeMode.cs b/Assets/Scripts/NBC/Runtime/Core/Scene/SceneRuntimeMode.cs similarity index 97% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/SceneRuntimeMode.cs rename to Assets/Scripts/NBC/Runtime/Core/Scene/SceneRuntimeMode.cs index 60dbc8521..f0af68923 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/SceneRuntimeMode.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Scene/SceneRuntimeMode.cs @@ -1,4 +1,4 @@ -namespace Fantasy +namespace NBC { /// /// Scene的运行类型 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/SceneRuntimeMode.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Scene/SceneRuntimeMode.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/SceneRuntimeMode.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Scene/SceneRuntimeMode.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/SceneRuntimeType.cs b/Assets/Scripts/NBC/Runtime/Core/Scene/SceneRuntimeType.cs similarity index 96% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/SceneRuntimeType.cs rename to Assets/Scripts/NBC/Runtime/Core/Scene/SceneRuntimeType.cs index 664107faf..11890176c 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/SceneRuntimeType.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Scene/SceneRuntimeType.cs @@ -1,4 +1,4 @@ -namespace Fantasy +namespace NBC { /// /// 代表一个Scene的类型 diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/SceneRuntimeType.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Scene/SceneRuntimeType.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/SceneRuntimeType.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Scene/SceneRuntimeType.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler.meta b/Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler.meta rename to Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler/ISceneScheduler.cs b/Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler/ISceneScheduler.cs similarity index 90% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler/ISceneScheduler.cs rename to Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler/ISceneScheduler.cs index c04cc3029..7a83036be 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler/ISceneScheduler.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler/ISceneScheduler.cs @@ -1,6 +1,6 @@ using System; -namespace Fantasy +namespace NBC { internal interface ISceneScheduler : IDisposable { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler/ISceneScheduler.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler/ISceneScheduler.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler/ISceneScheduler.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler/ISceneScheduler.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler/MainScheduler.cs b/Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler/MainScheduler.cs similarity index 74% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler/MainScheduler.cs rename to Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler/MainScheduler.cs index 4db5ee975..6ddba7941 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler/MainScheduler.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler/MainScheduler.cs @@ -1,11 +1,7 @@ using System.Collections.Generic; -#if FANTASY_UNITY || FANTASY_NET || !FANTASY_WEBGL using System.Threading; -#endif -#if FANTASY_NET -using Fantasy.Platform.Net; -#endif -namespace Fantasy + +namespace NBC { internal sealed class MainScheduler : ISceneScheduler { @@ -15,9 +11,7 @@ namespace Fantasy public MainScheduler() { ThreadSynchronizationContext = new ThreadSynchronizationContext(); -#if !FANTASY_WEBGL || !UNITY_EDITOR SynchronizationContext.SetSynchronizationContext(ThreadSynchronizationContext); -#endif } public void Dispose() { @@ -79,27 +73,5 @@ namespace Fantasy _queue.Enqueue(scene); } } -#if FANTASY_UNITY - public void LateUpdate() - { - var initialCount = _queue.Count; - - while (initialCount-- > 0) - { - if(!_queue.TryDequeue(out var scene)) - { - continue; - } - - if (scene.IsDisposed) - { - continue; - } - - scene.LateUpdate(); - _queue.Enqueue(scene); - } - } -#endif } } \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler/MainScheduler.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler/MainScheduler.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler/MainScheduler.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler/MainScheduler.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler/MultiThreadScheduler.cs b/Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler/MultiThreadScheduler.cs similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler/MultiThreadScheduler.cs rename to Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler/MultiThreadScheduler.cs index 28f2d42b5..9f0fa4de8 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler/MultiThreadScheduler.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler/MultiThreadScheduler.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Concurrent; using System.Threading; -namespace Fantasy +namespace NBC { internal struct MultiThreadStruct : IDisposable { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler/MultiThreadScheduler.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler/MultiThreadScheduler.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler/MultiThreadScheduler.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler/MultiThreadScheduler.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler/ThreadPoolScheduler.cs b/Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler/ThreadPoolScheduler.cs similarity index 87% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler/ThreadPoolScheduler.cs rename to Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler/ThreadPoolScheduler.cs index d8353f53c..4ea7dc24d 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler/ThreadPoolScheduler.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler/ThreadPoolScheduler.cs @@ -5,13 +5,13 @@ using System.Collections.Generic; using System.Threading; // ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract #pragma warning disable CS8604 // Possible null reference argument. -namespace Fantasy +namespace NBC { internal sealed class ThreadPoolScheduler : ISceneScheduler { private bool _isDisposed; private readonly List _threads; - private readonly ConcurrentQueue _queue = new ConcurrentQueue(); + private readonly ConcurrentBag _queue = new ConcurrentBag(); private readonly CancellationTokenSource _cancellationTokenSource = new CancellationTokenSource(); public ThreadPoolScheduler() @@ -63,7 +63,7 @@ namespace Fantasy return; } - _queue.Enqueue(scene); + _queue.Add(scene); } public void Remove(Scene scene) @@ -75,18 +75,20 @@ namespace Fantasy var newQueue = new Queue(); - while (_queue.TryDequeue(out var currentScene)) + while (!_queue.IsEmpty) { - if (currentScene == scene) + if (_queue.TryTake(out var currentScene)) { - continue; + if (currentScene != scene) + { + newQueue.Enqueue(currentScene); + } } - newQueue.Enqueue(currentScene); } while (newQueue.TryDequeue(out var newScene)) { - _queue.Enqueue(newScene); + _queue.Add(newScene); } } @@ -99,7 +101,7 @@ namespace Fantasy { while (!cancellationToken.IsCancellationRequested) { - if (_queue.TryDequeue(out var scene)) + if (_queue.TryTake(out var scene)) { if (scene == null || scene.IsDisposed) { @@ -122,9 +124,9 @@ namespace Fantasy { SynchronizationContext.SetSynchronizationContext(null); } - // 先停止线程后再如队列,避免同一个Scene多次重复执行 + + _queue.Add(scene); Thread.Sleep(1); - _queue.Enqueue(scene); } else { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler/ThreadPoolScheduler.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler/ThreadPoolScheduler.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler/ThreadPoolScheduler.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler/ThreadPoolScheduler.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler/ThreadScheduler.cs b/Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler/ThreadScheduler.cs similarity index 93% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler/ThreadScheduler.cs rename to Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler/ThreadScheduler.cs index 9610581a5..88b4979db 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler/ThreadScheduler.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler/ThreadScheduler.cs @@ -1,6 +1,6 @@ // ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. -namespace Fantasy +namespace NBC { /// /// 线程调度器 @@ -30,13 +30,6 @@ namespace Fantasy MainScheduler.Update(); } -#if FANTASY_UNITY - internal static void LateUpdate() - { - MainScheduler.LateUpdate(); - } -#endif - internal static void AddMainScheduler(Scene scene) { MainScheduler.Add(scene); diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler/ThreadScheduler.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler/ThreadScheduler.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/Scheduler/ThreadScheduler.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Scene/Scheduler/ThreadScheduler.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/SubScene.cs b/Assets/Scripts/NBC/Runtime/Core/Scene/SubScene.cs similarity index 87% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/SubScene.cs rename to Assets/Scripts/NBC/Runtime/Core/Scene/SubScene.cs index cfbf086f3..f436611f4 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/SubScene.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Scene/SubScene.cs @@ -1,13 +1,14 @@ using System.Collections.Generic; using System.Linq; -using Fantasy.Entitas; -using Fantasy.Network; +using NBC.Network; +using NBC.Entitas; + #pragma warning disable CS8601 // Possible null reference assignment. #pragma warning disable CS8603 // Possible null reference return. #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring as nullable. -namespace Fantasy +namespace NBC { /// /// 代表一个Scene下的子Scene @@ -22,27 +23,19 @@ namespace Fantasy /// 存储当前Scene下管理的实体。 /// private readonly Dictionary _entities = new Dictionary(); - - internal void Initialize(Scene rootScene) + + internal void Initialize(Scene rootScene) { EntityPool = rootScene.EntityPool; EntityListPool = rootScene.EntityListPool; EntitySortedDictionaryPool = rootScene.EntitySortedDictionaryPool; SceneUpdate = rootScene.SceneUpdate; -#if FANTASY_UNITY - SceneLateUpdate = rootScene.SceneLateUpdate; -#endif TimerComponent = rootScene.TimerComponent; EventComponent = rootScene.EventComponent; EntityComponent = rootScene.EntityComponent; MessagePoolComponent = rootScene.MessagePoolComponent; CoroutineLockComponent = rootScene.CoroutineLockComponent; MessageDispatcherComponent = rootScene.MessageDispatcherComponent; -#if FANTASY_NET - NetworkMessagingComponent = rootScene.NetworkMessagingComponent; - // SingleCollectionComponent = rootScene.SingleCollectionComponent; - TerminusComponent = rootScene.TerminusComponent; -#endif ThreadSynchronizationContext = rootScene.ThreadSynchronizationContext; } @@ -157,18 +150,5 @@ namespace Fantasy { return RemoveEntity(entity.RuntimeId); } - -#if FANTASY_NET - /// - /// 根据runTimeId获得Session - /// - /// - /// - /// - internal override Session GetSession(long runTimeId) - { - return RootScene.GetSession(runTimeId); - } - #endif } } \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/SubScene.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Scene/SubScene.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/SubScene.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Scene/SubScene.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize.meta b/Assets/Scripts/NBC/Runtime/Core/Serialize.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize.meta rename to Assets/Scripts/NBC/Runtime/Core/Serialize.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack.meta b/Assets/Scripts/NBC/Runtime/Core/Serialize/BsonPack.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack.meta rename to Assets/Scripts/NBC/Runtime/Core/Serialize/BsonPack.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/BsonPackHelperUnity.cs b/Assets/Scripts/NBC/Runtime/Core/Serialize/BsonPack/BsonPackHelperUnity.cs similarity index 84% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/BsonPackHelperUnity.cs rename to Assets/Scripts/NBC/Runtime/Core/Serialize/BsonPack/BsonPackHelperUnity.cs index bfcc95f23..64bd01b11 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/BsonPackHelperUnity.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Serialize/BsonPack/BsonPackHelperUnity.cs @@ -1,7 +1,6 @@ -#if FANTASY_UNITY using System; using System.Buffers; -namespace Fantasy.Serialize +namespace NBC.Serialize { public class BsonPackHelper : ISerialize { @@ -36,16 +35,6 @@ namespace Fantasy.Serialize throw new NotImplementedException(); } - public byte[] Serialize(object obj) - { - throw new NotImplementedException(); - } - - public byte[] Serialize(T @object) - { - throw new NotImplementedException(); - } - public void Serialize(T @object, IBufferWriter buffer) { throw new NotImplementedException(); @@ -66,5 +55,4 @@ namespace Fantasy.Serialize throw new NotImplementedException(); } } -} -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/BsonPackHelperUnity.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Serialize/BsonPack/BsonPackHelperUnity.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/BsonPackHelperUnity.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Serialize/BsonPack/BsonPackHelperUnity.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/Interface.meta b/Assets/Scripts/NBC/Runtime/Core/Serialize/Interface.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/Interface.meta rename to Assets/Scripts/NBC/Runtime/Core/Serialize/Interface.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/Interface/ASerialize.cs b/Assets/Scripts/NBC/Runtime/Core/Serialize/Interface/ASerialize.cs similarity index 52% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/Interface/ASerialize.cs rename to Assets/Scripts/NBC/Runtime/Core/Serialize/Interface/ASerialize.cs index d28f2c78e..9fddf846a 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/Interface/ASerialize.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Serialize/Interface/ASerialize.cs @@ -1,17 +1,15 @@ using System; using System.ComponentModel; using System.Runtime.Serialization; -using Fantasy.Pool; -#if FANTASY_NET || FANTASY_UNITY || FANTASY_CONSOLE using MongoDB.Bson.Serialization.Attributes; -#endif +using NBC.Pool; using Newtonsoft.Json; using ProtoBuf; #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. -namespace Fantasy.Serialize +namespace NBC.Serialize { public abstract class ASerialize : ISupportInitialize, IDisposable { @@ -20,4 +18,38 @@ namespace Fantasy.Serialize public virtual void EndInit() { } public virtual void AfterDeserialization() => EndInit(); } + + public abstract class AMessage : ASerialize, IPool + { + + [BsonIgnore] + [JsonIgnore] + [IgnoreDataMember] + [ProtoIgnore] + private Scene _scene; + protected Scene GetScene() + { + return _scene; + } + + public void SetScene(Scene scene) + { + _scene = scene; + } + + [JsonIgnore] + [IgnoreDataMember] + [ProtoIgnore] + private bool _isPool; + + public bool IsPool() + { + return _isPool; + } + + public void SetIsPool(bool isPool) + { + _isPool = isPool; + } + } } \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/Interface/ASerialize.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Serialize/Interface/ASerialize.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/Interface/ASerialize.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Serialize/Interface/ASerialize.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/Interface/ISerialize.cs b/Assets/Scripts/NBC/Runtime/Core/Serialize/Interface/ISerialize.cs similarity index 87% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/Interface/ISerialize.cs rename to Assets/Scripts/NBC/Runtime/Core/Serialize/Interface/ISerialize.cs index 3152f53d3..95c1b175b 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/Interface/ISerialize.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Serialize/Interface/ISerialize.cs @@ -2,7 +2,7 @@ using System; using System.Buffers; #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -namespace Fantasy.Serialize +namespace NBC.Serialize { public interface ISerialize { @@ -59,19 +59,6 @@ namespace Fantasy.Serialize /// /// 序列化 /// - /// - /// - byte[] Serialize(object obj); - /// - /// 序列化 - /// - /// - /// - /// - byte[] Serialize(T @object); - /// - /// 序列化 - /// /// /// /// diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/Interface/ISerialize.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Serialize/Interface/ISerialize.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/Interface/ISerialize.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Serialize/Interface/ISerialize.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/MemoryStreamBuffer.cs b/Assets/Scripts/NBC/Runtime/Core/Serialize/MemoryStreamBuffer.cs similarity index 98% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/MemoryStreamBuffer.cs rename to Assets/Scripts/NBC/Runtime/Core/Serialize/MemoryStreamBuffer.cs index 23919b4fe..046775456 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/MemoryStreamBuffer.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Serialize/MemoryStreamBuffer.cs @@ -3,7 +3,7 @@ using System.Buffers; using System.IO; #pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -namespace Fantasy.Serialize +namespace NBC.Serialize { public enum MemoryStreamBufferSource { diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/MemoryStreamBuffer.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Serialize/MemoryStreamBuffer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/MemoryStreamBuffer.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Serialize/MemoryStreamBuffer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/ProtoBufPackHelper.meta b/Assets/Scripts/NBC/Runtime/Core/Serialize/ProtoBufPackHelper.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/ProtoBufPackHelper.meta rename to Assets/Scripts/NBC/Runtime/Core/Serialize/ProtoBufPackHelper.meta diff --git a/Assets/Scripts/NBC/Runtime/Core/Serialize/ProtoBufPackHelper/IProto.cs b/Assets/Scripts/NBC/Runtime/Core/Serialize/ProtoBufPackHelper/IProto.cs new file mode 100644 index 000000000..7520f30e0 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Serialize/ProtoBufPackHelper/IProto.cs @@ -0,0 +1,9 @@ +namespace NBC.Serialize +{ + /// + /// 代表是一个ProtoBuf协议 + /// + public interface IProto + { + } +} \ No newline at end of file diff --git a/Assets/Scripts/NBC/Runtime/Core/Serialize/ProtoBufPackHelper/IProto.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Serialize/ProtoBufPackHelper/IProto.cs.meta new file mode 100644 index 000000000..eff982091 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Serialize/ProtoBufPackHelper/IProto.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d8890f4dc3e2c433fbd22b91ead3bfe4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/ProtoBufPackHelper/ProtoBufPackHelperUnity.cs b/Assets/Scripts/NBC/Runtime/Core/Serialize/ProtoBufPackHelper/ProtoBufPackHelperUnity.cs similarity index 86% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/ProtoBufPackHelper/ProtoBufPackHelperUnity.cs rename to Assets/Scripts/NBC/Runtime/Core/Serialize/ProtoBufPackHelper/ProtoBufPackHelperUnity.cs index 6f70dedce..a891d2e69 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/ProtoBufPackHelper/ProtoBufPackHelperUnity.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Serialize/ProtoBufPackHelper/ProtoBufPackHelperUnity.cs @@ -1,13 +1,11 @@ -#if FANTASY_UNITY || FANTASY_CONSOLE using System; using System.Buffers; using System.IO; -using Fantasy.Assembly; -using Fantasy.Async; +using NBC.Assembly; using ProtoBuf; using ProtoBuf.Meta; -namespace Fantasy.Serialize +namespace NBC.Serialize { /// /// ProtoBufP帮助类,Unity平台使用 @@ -19,12 +17,6 @@ namespace Fantasy.Serialize /// public string SerializeName { get; } = "ProtoBuf"; - internal async FTask Initialize() - { - await FTask.CompletedTask; - return this; - } - /// /// 使用ProtoBuf反序列化数据到实例 /// @@ -181,30 +173,7 @@ namespace Fantasy.Serialize RuntimeTypeModel.Default.Serialize((MemoryStream)buffer, @object); } - /// - /// 使用ProtoBuf序列化某一个实例到byte[] - /// - /// - /// - public byte[] Serialize(object @object) - { - if (@object is ASerialize aSerialize) - { - aSerialize.BeginInit(); - } - - using (var buffer = new MemoryStream()) - { - RuntimeTypeModel.Default.Serialize(buffer, @object); - return buffer.ToArray(); - } - } - /// - /// 使用ProtoBuf序列化某一个实例到byte[] - /// - /// - /// - public byte[] Serialize(T @object) + private byte[] Serialize(T @object) { if (@object is ASerialize aSerialize) { @@ -228,5 +197,4 @@ namespace Fantasy.Serialize return Deserialize(Serialize(t)); } } -} -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/ProtoBufPackHelper/ProtoBufPackHelperUnity.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Serialize/ProtoBufPackHelper/ProtoBufPackHelperUnity.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/ProtoBufPackHelper/ProtoBufPackHelperUnity.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Serialize/ProtoBufPackHelper/ProtoBufPackHelperUnity.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/SerializerManager.cs b/Assets/Scripts/NBC/Runtime/Core/Serialize/SerializerManager.cs similarity index 75% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/SerializerManager.cs rename to Assets/Scripts/NBC/Runtime/Core/Serialize/SerializerManager.cs index 6f402e06a..8b236af9b 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/SerializerManager.cs +++ b/Assets/Scripts/NBC/Runtime/Core/Serialize/SerializerManager.cs @@ -1,9 +1,9 @@ using System; using System.Collections.Generic; -using Fantasy.Async; -using Fantasy.Helper; +using NBC.Assembly; +using NBC.Helper; #if !FANTASY_EXPORTER -using Fantasy.Network; +using NBC.Network; #endif #pragma warning disable CS8604 // Possible null reference argument. #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. @@ -11,7 +11,7 @@ using Fantasy.Network; #pragma warning disable CS8602 // Dereference of a possibly null reference. #pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. -namespace Fantasy.Serialize +namespace NBC.Serialize { /// /// 框架内置的序列化器类型 @@ -35,12 +35,11 @@ namespace Fantasy.Serialize { private static ISerialize[] _serializers; private static bool _isInitialized = false; - -#if FANTASY_NET || FANTASY_UNITY + /// /// 初始化方法 /// - public static async FTask Initialize() + public static void Initialize() { if (_isInitialized) { @@ -50,16 +49,14 @@ namespace Fantasy.Serialize try { var sort = new SortedList(); - - var protoBufPackSerializer = await new ProtoBufPackHelper().Initialize(); - var protoBufPackSerializerHash64 = HashCodeHelper.ComputeHash64(protoBufPackSerializer.SerializeName); - sort.Add(protoBufPackSerializerHash64, protoBufPackSerializer); -#if FANTASY_NET - var bsonPackSerializer = await new BsonPackHelper().Initialize(); - var bsonPackSerializerSerializerHash64 = HashCodeHelper.ComputeHash64(bsonPackSerializer.SerializeName); - sort.Add(bsonPackSerializerSerializerHash64, bsonPackSerializer); -#endif + foreach (var serializerType in AssemblySystem.ForEach(typeof(ISerialize))) + { + var serializer = (ISerialize)Activator.CreateInstance(serializerType); + var computeHash64 = HashCodeHelper.ComputeHash64(serializer.SerializeName); + sort.Add(computeHash64, serializer); + } + var index = 1; _serializers = new ISerialize[sort.Count]; @@ -90,9 +87,7 @@ namespace Fantasy.Serialize } _isInitialized = true; -#if FANTASY_DEBUG Log.Info($"初始化序列化器成功,数量为:{_serializers.Length}"); -#endif } catch (Exception e) { @@ -100,34 +95,13 @@ namespace Fantasy.Serialize Dispose(); } } -#else - /// - /// 初始化方法 - /// - public static void Initialize() - { - if (_isInitialized) - { - return; - } - - _serializers = new ISerialize[1]; - _serializers[0] = new ProtoBufPackHelper(); - } -#endif - + /// /// 销毁方法 /// public static void Dispose() { _isInitialized = false; - - if (_serializers == null || _serializers.Length == 0) - { - return; - } - Array.Clear(_serializers, 0, _serializers.Length); } diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/SerializerManager.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Serialize/SerializerManager.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/SerializerManager.cs.meta rename to Assets/Scripts/NBC/Runtime/Core/Serialize/SerializerManager.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity.meta b/Assets/Scripts/NBC/Runtime/Core/Services.meta similarity index 77% rename from Assets/Scripts/ThirdParty/Fantasy.Unity.meta rename to Assets/Scripts/NBC/Runtime/Core/Services.meta index 539aec5a7..a1db7d397 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity.meta +++ b/Assets/Scripts/NBC/Runtime/Core/Services.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: fd8c02dd1a87e714d8b5ae1bee13f2ef +guid: 876bd2f6c6f095c4c9532c5812ea7545 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Scripts/NBC/Runtime/Core/Services/ISingletonAwake.cs b/Assets/Scripts/NBC/Runtime/Core/Services/ISingletonAwake.cs new file mode 100644 index 000000000..7383db4e3 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Services/ISingletonAwake.cs @@ -0,0 +1,22 @@ +namespace NBC +{ + public interface ISingletonAwake + { + void Awake(); + } + + public interface ISingletonAwake + { + void Awake(A a); + } + + public interface ISingletonAwake + { + void Awake(A a, B b); + } + + public interface ISingletonAwake + { + void Awake(A a, B b, C c); + } +} \ No newline at end of file diff --git a/Assets/Scripts/NBC/Runtime/Core/Services/ISingletonAwake.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Services/ISingletonAwake.cs.meta new file mode 100644 index 000000000..e3df32be4 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Services/ISingletonAwake.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 5543bf08377d4c0289f50e9b465963b6 +timeCreated: 1733994653 \ No newline at end of file diff --git a/Assets/Scripts/NBC/Runtime/Core/Services/MonoManager.cs b/Assets/Scripts/NBC/Runtime/Core/Services/MonoManager.cs new file mode 100644 index 000000000..94e32aca2 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Services/MonoManager.cs @@ -0,0 +1,85 @@ +// using System; +// using UnityEngine; +// +// namespace NBC +// { +// public class MonoManager : MonoBehaviour +// { +// public event Action OnUpdate; +// public event Action OnLateUpdate; +// public event Action OnFixedUpdate; +// public event Action OnApplicationQuitAction; +// public event Action OnApplicationPauseAction; +// +// private static bool IsQuiting { get; set; } +// +// private static MonoManager _inst; +// +// public static MonoManager Inst +// { +// get +// { +// if (_inst != null || IsQuiting) return _inst; +// _inst = FindObjectOfType(); +// if (_inst == null) +// { +// _inst = new GameObject("_MonoTimer").AddComponent(); +// } +// +// return _inst; +// } +// } +// +// +// ///Creates the MonoManager singleton +// public static void Create() +// { +// _inst = Inst; +// } +// +// protected void OnApplicationQuit() +// { +// IsQuiting = true; +// OnApplicationQuitAction?.Invoke(); +// } +// +// protected void OnApplicationPause(bool isPause) +// { +// OnApplicationPauseAction?.Invoke(isPause); +// } +// +// protected void Awake() +// { +// if (_inst != null && _inst != this) +// { +// DestroyImmediate(this.gameObject); +// return; +// } +// +// DontDestroyOnLoad(gameObject); +// _inst = this; +// } +// +// protected void Update() +// { +// try +// { +// OnUpdate?.Invoke(); +// } +// catch (Exception e) +// { +// Debug.LogError(e); +// } +// } +// +// protected void LateUpdate() +// { +// OnLateUpdate?.Invoke(); +// } +// +// protected void FixedUpdate() +// { +// OnFixedUpdate?.Invoke(); +// } +// } +// } \ No newline at end of file diff --git a/Assets/Scripts/NBC/Runtime/Core/Services/MonoManager.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Services/MonoManager.cs.meta new file mode 100644 index 000000000..5d7a1d8f4 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Services/MonoManager.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 869c4449527c495c833b9d848ce61968 +timeCreated: 1614234084 \ No newline at end of file diff --git a/Assets/Scripts/NBC/Runtime/Core/Services/Singleton.cs b/Assets/Scripts/NBC/Runtime/Core/Services/Singleton.cs new file mode 100644 index 000000000..71e2d266e --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Services/Singleton.cs @@ -0,0 +1,82 @@ +using System; +using System.ComponentModel; +using UnityEngine; +using Object = UnityEngine.Object; + +namespace NBC +{ + public interface ISingletonReverseDispose + { + } + + public abstract class DisposeObject : IDisposable, ISupportInitialize + { + public virtual void Dispose() + { + } + + public virtual void BeginInit() + { + } + + public virtual void EndInit() + { + } + } + + public abstract class ASingleton : DisposeObject + { + internal abstract void Register(); + } + + public abstract class Singleton : ASingleton where T : Singleton + { + private bool _isDisposed; + + + public static T Instance { get; private set; } + + internal override void Register() + { + Instance = (T)this; + } + + public bool IsDisposed() + { + return this._isDisposed; + } + + protected virtual void Destroy() + { + } + + public override void Dispose() + { + if (this._isDisposed) + { + return; + } + + this._isDisposed = true; + + this.Destroy(); + + Instance = null; + } + } + + public class SingletonMono : MonoBehaviour where T : MonoBehaviour + { + public static T Instance { get; private set; } + + protected void Awake() + { + Instance = this as T; + OnAwake(); + } + + protected virtual void OnAwake() + { + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/NBC/Runtime/Core/Services/Singleton.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Services/Singleton.cs.meta new file mode 100644 index 000000000..d56a205a1 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Services/Singleton.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 42905ef6b2464dbd92290701d39348a5 +timeCreated: 1715240819 \ No newline at end of file diff --git a/Assets/Scripts/NBC/Runtime/Core/Services/TimeInfo.cs b/Assets/Scripts/NBC/Runtime/Core/Services/TimeInfo.cs new file mode 100644 index 000000000..0e2ed4ba5 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Services/TimeInfo.cs @@ -0,0 +1,77 @@ +using System; + +namespace NBC +{ + public class TimeInfo: Singleton, ISingletonAwake + { + private int timeZone; + + public int TimeZone + { + get + { + return this.timeZone; + } + set + { + this.timeZone = value; + dt = dt1970.AddHours(TimeZone); + } + } + + private DateTime dt1970; + private DateTime dt; + + // ping消息会设置该值,原子操作 + public long ServerMinusClientTime { private get; set; } + + public long FrameTime { get; private set; } + + public void Awake() + { + this.dt1970 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); + this.dt = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); + this.FrameTime = this.ClientNow(); + } + + public void Update() + { + // 赋值long型是原子操作,线程安全 + this.FrameTime = this.ClientNow(); + } + + /// + /// 根据时间戳获取时间 + /// + public DateTime ToDateTime(long timeStamp) + { + return dt.AddTicks(timeStamp * 10000); + } + + // 线程安全 + public long ClientNow() + { + return (DateTime.UtcNow.Ticks - this.dt1970.Ticks) / 10000; + } + + public long ServerNow() + { + return ClientNow() + this.ServerMinusClientTime; + } + + public long ClientFrameTime() + { + return this.FrameTime; + } + + public long ServerFrameTime() + { + return this.FrameTime + this.ServerMinusClientTime; + } + + public long Transition(DateTime d) + { + return (d.Ticks - dt.Ticks) / 10000; + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/NBC/Runtime/Core/Services/TimeInfo.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Services/TimeInfo.cs.meta new file mode 100644 index 000000000..04fa12191 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Services/TimeInfo.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: fd695c053e2b4ac9b51cf819f764543f +timeCreated: 1733994392 \ No newline at end of file diff --git a/Assets/Scripts/NBC/Runtime/Core/Services/Timer.cs b/Assets/Scripts/NBC/Runtime/Core/Services/Timer.cs new file mode 100644 index 000000000..f616708ca --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Services/Timer.cs @@ -0,0 +1,411 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace NBC +{ + class TimerHandler + { + public string key; + public bool repeat; + public float delay; + public bool userFrame; + public float exeTime; + public object caller; + public Action methodWithArgs; // 带参数的回调 + public Action methodWithoutArgs; // 不带参数的回调 + public object args; + public bool jumpFrame; + + public void Clear() + { + caller = null; + methodWithArgs = null; + methodWithoutArgs = null; + args = null; + } + + public void Run(bool withClear) + { + if (caller == null) + { + Clear(); + return; + } + + // 优先执行无参数回调 + methodWithoutArgs?.Invoke(); + // 如果没有无参数回调,则执行带参数回调 + methodWithArgs?.Invoke(args); + + if (withClear) Clear(); + } + } + + public static class Timer + { + static Timer() + { + App.OnUpdate += Update; + } + + private static void Update() + { + _timer.Update(); + } + + private static readonly TimerData _timer = new TimerData(); + + #region 无参数回调版本 + + /// + /// 定时执行一次(无参数) + /// + public static void Once(float delay, object caller, Action method, bool coverBefore = true) + { + _timer.Once(delay, caller, method, coverBefore); + } + + /// + /// 定时重复执行(无参数) + /// + public static void Loop(float delay, object caller, Action method, bool coverBefore = true, + bool jumpFrame = false) + { + _timer.Loop(delay, caller, method, coverBefore, jumpFrame); + } + + /// + /// 定时执行一次(基于帧率,无参数) + /// + public static void FrameOnce(int delay, object caller, Action method, bool coverBefore = true) + { + _timer.FrameOnce(delay, caller, method, coverBefore); + } + + /// + /// 定时重复执行(基于帧率,无参数) + /// + public static void FrameLoop(int delay, object caller, Action method, bool coverBefore = true) + { + _timer.FrameLoop(delay, caller, method, coverBefore); + } + + /// + /// 清理定时器(无参数版本) + /// + public static void Clear(object caller, Action method) + { + _timer.Clear(caller, method); + } + + #endregion + + #region 带参数回调版本 + + /// + /// 定时执行一次(带参数) + /// + public static void Once(float delay, object caller, Action method, object args = null, + bool coverBefore = true) + { + _timer.Once(delay, caller, method, args, coverBefore); + } + + /// + /// 定时重复执行(带参数) + /// + public static void Loop(float delay, object caller, Action method, object args = null, + bool coverBefore = true, bool jumpFrame = false) + { + _timer.Loop(delay, caller, method, args, coverBefore, jumpFrame); + } + + /// + /// 定时执行一次(基于帧率,带参数) + /// + public static void FrameOnce(int delay, object caller, Action method, object args = null, + bool coverBefore = true) + { + _timer.FrameOnce(delay, caller, method, args, coverBefore); + } + + /// + /// 定时重复执行(基于帧率,带参数) + /// + public static void FrameLoop(int delay, object caller, Action method, object args = null, + bool coverBefore = true) + { + _timer.FrameLoop(delay, caller, method, args, coverBefore); + } + + /// + /// 清理定时器(带参数版本) + /// + public static void Clear(object caller, Action method) + { + _timer.Clear(caller, method); + } + + #endregion + + /// + /// 清理对象身上的所有定时器 + /// + public static void ClearAll(object caller) + { + _timer.ClearAll(caller); + } + } + + public class TimerData + { + private static readonly Queue _pool = new Queue(); + private static int _mid = 1; + + public float CurrTimer = Time.time; + public int CurrFrame = 0; + private float _delta = 0; + private float _lastTimer = Time.time; + + private Dictionary _map = new Dictionary(); + private List _handlers = new List(); + private List _temp = new List(); + private int _count = 0; + + public float delta => _delta; + + internal void Update() + { + var frame = CurrFrame += 1; + var now = Time.time; + var awake = (now - _lastTimer) > 30000; + + _delta = (now - _lastTimer); + var timer = CurrTimer += _delta; + _lastTimer = now; + + _count = 0; + for (int i = 0, n = _handlers.Count; i < n; i++) + { + var handler = _handlers[i]; + if (handler.methodWithArgs != null || handler.methodWithoutArgs != null) + { + var t = handler.userFrame ? frame : timer; + if (t >= handler.exeTime) + { + if (handler.repeat) + { + if (!handler.jumpFrame || awake) + { + handler.exeTime += handler.delay; + handler.Run(false); + if (t > handler.exeTime) + { + handler.exeTime += Mathf.Ceil((t - handler.exeTime) / handler.delay) * + handler.delay; + } + } + else + { + while (t >= handler.exeTime) + { + handler.exeTime += handler.delay; + handler.Run(false); + } + } + } + else + { + handler.Run(true); + } + } + } + else + { + _count++; + } + } + + if (_count > 30 || frame % 200 == 0) _clearHandlers(); + } + + private void _clearHandlers() + { + var handlers = _handlers; + for (int i = 0, n = handlers.Count; i < n; i++) + { + var handler = handlers[i]; + if (handler.methodWithArgs != null || handler.methodWithoutArgs != null) + _temp.Add(handler); + else + _recoverHandler(handler); + } + + _handlers = _temp; + handlers.Clear(); + _temp = handlers; + } + + private void _recoverHandler(TimerHandler handler) + { + if (_map.TryGetValue(handler.key, out var h) && h == handler) + { + _map.Remove(handler.key); + handler.Clear(); + _pool.Enqueue(handler); + } + } + + #region 无参数回调版本 + + public void Once(float delay, object caller, Action method, bool coverBefore = true) + { + _create(false, false, delay, caller, null, method, null, coverBefore); + } + + public void Loop(float delay, object caller, Action method, bool coverBefore = true, bool jumpFrame = false) + { + var handler = _create(false, true, delay, caller, null, method, null, coverBefore); + if (handler != null) handler.jumpFrame = jumpFrame; + } + + public void FrameOnce(int delay, object caller, Action method, bool coverBefore = true) + { + _create(true, false, delay, caller, null, method, null, coverBefore); + } + + public void FrameLoop(int delay, object caller, Action method, bool coverBefore = true) + { + _create(true, true, delay, caller, null, method, null, coverBefore); + } + + public void Clear(object caller, Action method) + { + var handler = _getHandler(caller, null, method); + handler?.Clear(); + } + + #endregion + + #region 带参数回调版本 + + public void Once(float delay, object caller, Action method, object args = null, bool coverBefore = true) + { + _create(false, false, delay, caller, method, null, args, coverBefore); + } + + public void Loop(float delay, object caller, Action method, object args = null, bool coverBefore = true, + bool jumpFrame = false) + { + var handler = _create(false, true, delay, caller, method, null, args, coverBefore); + if (handler != null) handler.jumpFrame = jumpFrame; + } + + public void FrameOnce(int delay, object caller, Action method, object args = null, + bool coverBefore = true) + { + _create(true, false, delay, caller, method, null, args, coverBefore); + } + + public void FrameLoop(int delay, object caller, Action method, object args = null, + bool coverBefore = true) + { + _create(true, true, delay, caller, method, null, args, coverBefore); + } + + public void Clear(object caller, Action method) + { + var handler = _getHandler(caller, method, null); + handler?.Clear(); + } + + #endregion + + private TimerHandler _create(bool useFrame, bool repeat, float delay, object caller, + Action methodWithArgs, Action methodWithoutArgs, + object args, bool coverBefore) + { + // 如果延迟为0,则立即执行 + if (delay <= 0) + { + if (methodWithoutArgs != null) + methodWithoutArgs.Invoke(); + else + methodWithArgs?.Invoke(args); + return null; + } + + TimerHandler handler; + // 先覆盖相同函数的计时 + if (coverBefore) + { + handler = _getHandler(caller, methodWithArgs, methodWithoutArgs); + if (handler != null) + { + handler.repeat = repeat; + handler.userFrame = useFrame; + handler.delay = delay; + handler.caller = caller; + handler.methodWithArgs = methodWithArgs; + handler.methodWithoutArgs = methodWithoutArgs; + handler.args = args; + handler.exeTime = delay + (useFrame ? CurrFrame : CurrTimer + Time.time - _lastTimer); + return handler; + } + } + + // 找到一个空闲的timerHandler + handler = _pool.Count > 0 ? _pool.Dequeue() : new TimerHandler(); + handler.repeat = repeat; + handler.userFrame = useFrame; + handler.delay = delay; + handler.caller = caller; + handler.methodWithArgs = methodWithArgs; + handler.methodWithoutArgs = methodWithoutArgs; + handler.args = args; + handler.exeTime = delay + (useFrame ? CurrFrame : CurrTimer + Time.time - _lastTimer); + + // 索引handler + _indexHandler(handler); + + // 插入数组 + _handlers.Add(handler); + + return handler; + } + + private TimerHandler _getHandler(object caller, Action methodWithArgs, Action methodWithoutArgs) + { + var key = caller.GetHashCode() + "_" + + (methodWithArgs?.GetHashCode() ?? methodWithoutArgs.GetHashCode()); + return _map.GetValueOrDefault(key); + } + + private void _indexHandler(TimerHandler handler) + { + var key = handler.caller.GetHashCode() + "_" + + (handler.methodWithArgs?.GetHashCode() ?? handler.methodWithoutArgs.GetHashCode()); + handler.key = key; + _map[key] = handler; + } + + public void ClearAll(object caller) + { + if (caller == null) return; + for (int i = 0, n = _handlers.Count; i < n; i++) + { + var handler = _handlers[i]; + if (handler.caller == caller) + { + handler.Clear(); + } + } + } + + public override string ToString() + { + return "handlers:" + _handlers.Count + "pool:" + _pool.Count; + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/NBC/Runtime/Core/Services/Timer.cs.meta b/Assets/Scripts/NBC/Runtime/Core/Services/Timer.cs.meta new file mode 100644 index 000000000..9a8b5cfc0 --- /dev/null +++ b/Assets/Scripts/NBC/Runtime/Core/Services/Timer.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 34564c54c20648aab48bc9dcdc333435 +timeCreated: 1614222135 \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Language.meta b/Assets/Scripts/NBC/Runtime/Language.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Language.meta rename to Assets/Scripts/NBC/Runtime/Language.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Language/Const.meta b/Assets/Scripts/NBC/Runtime/Language/Const.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Language/Const.meta rename to Assets/Scripts/NBC/Runtime/Language/Const.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Language/Const/LanguageConst.cs b/Assets/Scripts/NBC/Runtime/Language/Const/LanguageConst.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Language/Const/LanguageConst.cs rename to Assets/Scripts/NBC/Runtime/Language/Const/LanguageConst.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Language/Const/LanguageConst.cs.meta b/Assets/Scripts/NBC/Runtime/Language/Const/LanguageConst.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Language/Const/LanguageConst.cs.meta rename to Assets/Scripts/NBC/Runtime/Language/Const/LanguageConst.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Language/Interfaces.meta b/Assets/Scripts/NBC/Runtime/Language/Interfaces.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Language/Interfaces.meta rename to Assets/Scripts/NBC/Runtime/Language/Interfaces.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Language/Interfaces/ILanguage.cs b/Assets/Scripts/NBC/Runtime/Language/Interfaces/ILanguage.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Language/Interfaces/ILanguage.cs rename to Assets/Scripts/NBC/Runtime/Language/Interfaces/ILanguage.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Language/Interfaces/ILanguage.cs.meta b/Assets/Scripts/NBC/Runtime/Language/Interfaces/ILanguage.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Language/Interfaces/ILanguage.cs.meta rename to Assets/Scripts/NBC/Runtime/Language/Interfaces/ILanguage.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Language/Lan.cs b/Assets/Scripts/NBC/Runtime/Language/Lan.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Language/Lan.cs rename to Assets/Scripts/NBC/Runtime/Language/Lan.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Language/Lan.cs.meta b/Assets/Scripts/NBC/Runtime/Language/Lan.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Language/Lan.cs.meta rename to Assets/Scripts/NBC/Runtime/Language/Lan.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Language/LanguageComponent.cs b/Assets/Scripts/NBC/Runtime/Language/LanguageComponent.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Language/LanguageComponent.cs rename to Assets/Scripts/NBC/Runtime/Language/LanguageComponent.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Language/LanguageComponent.cs.meta b/Assets/Scripts/NBC/Runtime/Language/LanguageComponent.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Language/LanguageComponent.cs.meta rename to Assets/Scripts/NBC/Runtime/Language/LanguageComponent.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Language/LanguageConcrete.meta b/Assets/Scripts/NBC/Runtime/Language/LanguageConcrete.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Language/LanguageConcrete.meta rename to Assets/Scripts/NBC/Runtime/Language/LanguageConcrete.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Language/LanguageConcrete/LanguageFont.cs b/Assets/Scripts/NBC/Runtime/Language/LanguageConcrete/LanguageFont.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Language/LanguageConcrete/LanguageFont.cs rename to Assets/Scripts/NBC/Runtime/Language/LanguageConcrete/LanguageFont.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Language/LanguageConcrete/LanguageFont.cs.meta b/Assets/Scripts/NBC/Runtime/Language/LanguageConcrete/LanguageFont.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Language/LanguageConcrete/LanguageFont.cs.meta rename to Assets/Scripts/NBC/Runtime/Language/LanguageConcrete/LanguageFont.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Language/LanguageConcrete/LanguageImage.cs b/Assets/Scripts/NBC/Runtime/Language/LanguageConcrete/LanguageImage.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Language/LanguageConcrete/LanguageImage.cs rename to Assets/Scripts/NBC/Runtime/Language/LanguageConcrete/LanguageImage.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Language/LanguageConcrete/LanguageImage.cs.meta b/Assets/Scripts/NBC/Runtime/Language/LanguageConcrete/LanguageImage.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Language/LanguageConcrete/LanguageImage.cs.meta rename to Assets/Scripts/NBC/Runtime/Language/LanguageConcrete/LanguageImage.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Language/LanguageConcrete/LanguageText.cs b/Assets/Scripts/NBC/Runtime/Language/LanguageConcrete/LanguageText.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Language/LanguageConcrete/LanguageText.cs rename to Assets/Scripts/NBC/Runtime/Language/LanguageConcrete/LanguageText.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Language/LanguageConcrete/LanguageText.cs.meta b/Assets/Scripts/NBC/Runtime/Language/LanguageConcrete/LanguageText.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Language/LanguageConcrete/LanguageText.cs.meta rename to Assets/Scripts/NBC/Runtime/Language/LanguageConcrete/LanguageText.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Language/LanguageConfig.cs b/Assets/Scripts/NBC/Runtime/Language/LanguageConfig.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Language/LanguageConfig.cs rename to Assets/Scripts/NBC/Runtime/Language/LanguageConfig.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Language/LanguageConfig.cs.meta b/Assets/Scripts/NBC/Runtime/Language/LanguageConfig.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Language/LanguageConfig.cs.meta rename to Assets/Scripts/NBC/Runtime/Language/LanguageConfig.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Language/LanguageManager.cs b/Assets/Scripts/NBC/Runtime/Language/LanguageManager.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Language/LanguageManager.cs rename to Assets/Scripts/NBC/Runtime/Language/LanguageManager.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Language/LanguageManager.cs.meta b/Assets/Scripts/NBC/Runtime/Language/LanguageManager.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Language/LanguageManager.cs.meta rename to Assets/Scripts/NBC/Runtime/Language/LanguageManager.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/NBC.asmdef b/Assets/Scripts/NBC/Runtime/NBC.asmdef similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/NBC.asmdef rename to Assets/Scripts/NBC/Runtime/NBC.asmdef diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/NBC.asmdef.meta b/Assets/Scripts/NBC/Runtime/NBC.asmdef.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/NBC.asmdef.meta rename to Assets/Scripts/NBC/Runtime/NBC.asmdef.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins.meta b/Assets/Scripts/NBC/Runtime/Plugins.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins.meta rename to Assets/Scripts/NBC/Runtime/Plugins.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/BagMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/BagMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/BagMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/BagMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/BagMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/BagMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/BagMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/BagMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/BagWindow.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/BagWindow.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/BagWindow.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/BagWindow.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/BagWindow.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/BagWindow.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/BagWindow.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/BagWindow.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/IconManager.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/IconManager.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/IconManager.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/IconManager.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/IconManager.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/IconManager.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/IconManager.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/IconManager.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/MyGLoader.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/MyGLoader.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/MyGLoader.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/MyGLoader.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/MyGLoader.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/MyGLoader.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/MyGLoader.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Bag/MyGLoader.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/BasicsMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/BasicsMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/BasicsMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/BasicsMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/BasicsMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/BasicsMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/BasicsMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/BasicsMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/Window1.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/Window1.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/Window1.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/Window1.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/Window1.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/Window1.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/Window1.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/Window1.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/Window2.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/Window2.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/Window2.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/Window2.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/Window2.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/Window2.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/Window2.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Basics/Window2.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/BundleUsage.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/BundleUsage.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/BundleUsage.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/BundleUsage.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/BundleUsage/BundleUsageMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/BundleUsage/BundleUsageMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/BundleUsage/BundleUsageMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/BundleUsage/BundleUsageMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/BundleUsage/BundleUsageMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/BundleUsage/BundleUsageMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/BundleUsage/BundleUsageMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/BundleUsage/BundleUsageMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Cooldown.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Cooldown.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Cooldown.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Cooldown.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Cooldown/CooldownMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Cooldown/CooldownMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Cooldown/CooldownMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Cooldown/CooldownMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Cooldown/CooldownMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Cooldown/CooldownMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Cooldown/CooldownMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Cooldown/CooldownMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Curve.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Curve.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Curve.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Curve.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Curve/CurveMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Curve/CurveMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Curve/CurveMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Curve/CurveMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Curve/CurveMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Curve/CurveMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Curve/CurveMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Curve/CurveMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/CutScene.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/CutScene.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/CutScene.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/CutScene.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/CutScene/CutSceneMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/CutScene/CutSceneMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/CutScene/CutSceneMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/CutScene/CutSceneMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/CutScene/CutSceneMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/CutScene/CutSceneMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/CutScene/CutSceneMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/CutScene/CutSceneMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/CutScene/LevelManager.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/CutScene/LevelManager.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/CutScene/LevelManager.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/CutScene/LevelManager.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/CutScene/LevelManager.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/CutScene/LevelManager.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/CutScene/LevelManager.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/CutScene/LevelManager.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Editor.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Editor.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Editor.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Editor.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Editor/BuildAssetBundles.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Editor/BuildAssetBundles.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Editor/BuildAssetBundles.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Editor/BuildAssetBundles.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Editor/BuildAssetBundles.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Editor/BuildAssetBundles.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Editor/BuildAssetBundles.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Editor/BuildAssetBundles.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitComponent.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitComponent.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitComponent.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitComponent.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitComponent.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitComponent.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitComponent.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitComponent.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitManager.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitManager.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitManager.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitManager.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitManager.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitManager.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitManager.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitManager.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitNumbersMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitNumbersMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitNumbersMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitNumbersMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitNumbersMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitNumbersMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitNumbersMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/EmitNumbers/EmitNumbersMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Emoji.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Emoji.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Emoji.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Emoji.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Emoji/EmojiMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Emoji/EmojiMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Emoji/EmojiMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Emoji/EmojiMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Emoji/EmojiMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Emoji/EmojiMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Emoji/EmojiMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Emoji/EmojiMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Emoji/EmojiParser.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Emoji/EmojiParser.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Emoji/EmojiParser.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Emoji/EmojiParser.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Emoji/EmojiParser.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Emoji/EmojiParser.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Emoji/EmojiParser.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Emoji/EmojiParser.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Extension.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Extension.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Extension.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Extension.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Extension/ExtensionMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Extension/ExtensionMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Extension/ExtensionMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Extension/ExtensionMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Extension/ExtensionMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Extension/ExtensionMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Extension/ExtensionMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Extension/ExtensionMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Extension/MailItem.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Extension/MailItem.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Extension/MailItem.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Extension/MailItem.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Extension/MailItem.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Extension/MailItem.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Extension/MailItem.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Extension/MailItem.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Filter.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Filter.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Filter.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Filter.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Filter/FilterMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Filter/FilterMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Filter/FilterMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Filter/FilterMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Filter/FilterMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Filter/FilterMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Filter/FilterMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Filter/FilterMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Gesture.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Gesture.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Gesture.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Gesture.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Gesture/GestureMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Gesture/GestureMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Gesture/GestureMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Gesture/GestureMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Gesture/GestureMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Gesture/GestureMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Gesture/GestureMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Gesture/GestureMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Guide.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Guide.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Guide.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Guide.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Guide/GuideMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Guide/GuideMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Guide/GuideMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Guide/GuideMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Guide/GuideMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Guide/GuideMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Guide/GuideMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Guide/GuideMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/HeadBar.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/HeadBar.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/HeadBar.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/HeadBar.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/HeadBar/HeadBarMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/HeadBar/HeadBarMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/HeadBar/HeadBarMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/HeadBar/HeadBarMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/HeadBar/HeadBarMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/HeadBar/HeadBarMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/HeadBar/HeadBarMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/HeadBar/HeadBarMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/HitTest.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/HitTest.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/HitTest.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/HitTest.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/HitTest/HitTestMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/HitTest/HitTestMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/HitTest/HitTestMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/HitTest/HitTestMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/HitTest/HitTestMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/HitTest/HitTestMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/HitTest/HitTestMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/HitTest/HitTestMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Joystick.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Joystick.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Joystick.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Joystick.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Joystick/JoystickMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Joystick/JoystickMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Joystick/JoystickMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Joystick/JoystickMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Joystick/JoystickMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Joystick/JoystickMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Joystick/JoystickMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Joystick/JoystickMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Joystick/JoystickModule.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Joystick/JoystickModule.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Joystick/JoystickModule.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Joystick/JoystickModule.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Joystick/JoystickModule.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Joystick/JoystickModule.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Joystick/JoystickModule.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Joystick/JoystickModule.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/LoopList.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/LoopList.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/LoopList.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/LoopList.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/LoopList/LoopListMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/LoopList/LoopListMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/LoopList/LoopListMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/LoopList/LoopListMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/LoopList/LoopListMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/LoopList/LoopListMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/LoopList/LoopListMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/LoopList/LoopListMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/ModalWaiting.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/ModalWaiting.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/ModalWaiting.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/ModalWaiting.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/ModalWaiting/ModalWaitingMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/ModalWaiting/ModalWaitingMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/ModalWaiting/ModalWaitingMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/ModalWaiting/ModalWaitingMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/ModalWaiting/ModalWaitingMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/ModalWaiting/ModalWaitingMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/ModalWaiting/ModalWaitingMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/ModalWaiting/ModalWaitingMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/ModalWaiting/Window4.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/ModalWaiting/Window4.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/ModalWaiting/Window4.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/ModalWaiting/Window4.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/ModalWaiting/Window4.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/ModalWaiting/Window4.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/ModalWaiting/Window4.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/ModalWaiting/Window4.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Model.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Model.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Model.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Model.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Model/ModelMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Model/ModelMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Model/ModelMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Model/ModelMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Model/ModelMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Model/ModelMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Model/ModelMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Model/ModelMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Particles.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Particles.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Particles.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Particles.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Particles/CoolComponent.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Particles/CoolComponent.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Particles/CoolComponent.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Particles/CoolComponent.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Particles/CoolComponent.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Particles/CoolComponent.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Particles/CoolComponent.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Particles/CoolComponent.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Particles/ParticlesMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Particles/ParticlesMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Particles/ParticlesMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Particles/ParticlesMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Particles/ParticlesMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Particles/ParticlesMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Particles/ParticlesMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Particles/ParticlesMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Perspetive.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Perspetive.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Perspetive.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Perspetive.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Perspetive/PerspectiveMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Perspetive/PerspectiveMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Perspetive/PerspectiveMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Perspetive/PerspectiveMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Perspetive/PerspectiveMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Perspetive/PerspectiveMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Perspetive/PerspectiveMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Perspetive/PerspectiveMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/PullToRefresh.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/PullToRefresh.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/PullToRefresh.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/PullToRefresh.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/PullToRefresh/PullToRefreshMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/PullToRefresh/PullToRefreshMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/PullToRefresh/PullToRefreshMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/PullToRefresh/PullToRefreshMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/PullToRefresh/PullToRefreshMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/PullToRefresh/PullToRefreshMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/PullToRefresh/PullToRefreshMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/PullToRefresh/PullToRefreshMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/PullToRefresh/ScrollPaneHeader.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/PullToRefresh/ScrollPaneHeader.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/PullToRefresh/ScrollPaneHeader.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/PullToRefresh/ScrollPaneHeader.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/PullToRefresh/ScrollPaneHeader.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/PullToRefresh/ScrollPaneHeader.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/PullToRefresh/ScrollPaneHeader.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/PullToRefresh/ScrollPaneHeader.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/RenderImage.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/RenderImage.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/RenderImage.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/RenderImage.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/RenderImage.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/RenderImage.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/RenderImage.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/RenderImage.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/RenderTextureMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/RenderTextureMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/RenderTextureMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/RenderTextureMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/RenderTextureMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/RenderTextureMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/RenderTextureMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/RenderTextureMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/Window3.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/Window3.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/Window3.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/Window3.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/Window3.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/Window3.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/Window3.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/RenderTexture/Window3.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Cooldown.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Cooldown.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Cooldown.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Cooldown.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Cooldown/k0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Cooldown/k0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Cooldown/k0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Cooldown/k0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Cooldown/k0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Cooldown/k0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Cooldown/k0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Cooldown/k0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Cooldown/k1.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Cooldown/k1.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Cooldown/k1.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Cooldown/k1.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Cooldown/k1.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Cooldown/k1.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Cooldown/k1.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Cooldown/k1.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Curve.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Curve.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Curve.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Curve.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Curve/New Material.mat b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Curve/New Material.mat similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Curve/New Material.mat rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Curve/New Material.mat diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Curve/New Material.mat.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Curve/New Material.mat.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Curve/New Material.mat.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Curve/New Material.mat.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Curve/aomian.FBX b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Curve/aomian.FBX similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Curve/aomian.FBX rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Curve/aomian.FBX diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Curve/aomian.FBX.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Curve/aomian.FBX.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Curve/aomian.FBX.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Curve/aomian.FBX.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Materials.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Materials.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Materials.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Materials.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Materials/EmbersParticle.mat b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Materials/EmbersParticle.mat similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Materials/EmbersParticle.mat rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Materials/EmbersParticle.mat diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Materials/EmbersParticle.mat.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Materials/EmbersParticle.mat.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Materials/EmbersParticle.mat.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Materials/EmbersParticle.mat.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Materials/FlameRoundYellowParticle.mat b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Materials/FlameRoundYellowParticle.mat similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Materials/FlameRoundYellowParticle.mat rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Materials/FlameRoundYellowParticle.mat diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Materials/FlameRoundYellowParticle.mat.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Materials/FlameRoundYellowParticle.mat.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Materials/FlameRoundYellowParticle.mat.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Materials/FlameRoundYellowParticle.mat.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Textures.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Textures.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Textures.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Textures.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Textures/FlameRoundParticleSheet.tif b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Textures/FlameRoundParticleSheet.tif similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Textures/FlameRoundParticleSheet.tif rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Textures/FlameRoundParticleSheet.tif diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Textures/FlameRoundParticleSheet.tif.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Textures/FlameRoundParticleSheet.tif.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Textures/FlameRoundParticleSheet.tif.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/FireExplosionEffects/Textures/FlameRoundParticleSheet.tif.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/Shared.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/Shared.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/Shared.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/Shared.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/Shared/Prefabs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/Shared/Prefabs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/Shared/Prefabs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/Shared/Prefabs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/Shared/Prefabs/ParticlesLight.prefab b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/Shared/Prefabs/ParticlesLight.prefab similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/Shared/Prefabs/ParticlesLight.prefab rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/Shared/Prefabs/ParticlesLight.prefab diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/Shared/Prefabs/ParticlesLight.prefab.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/Shared/Prefabs/ParticlesLight.prefab.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/Shared/Prefabs/ParticlesLight.prefab.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/EffectExamples/Shared/Prefabs/ParticlesLight.prefab.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Flame.prefab b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Flame.prefab similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Flame.prefab rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Flame.prefab diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Flame.prefab.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Flame.prefab.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Flame.prefab.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Flame.prefab.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/LiberationSans SDF.asset b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/LiberationSans SDF.asset similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/LiberationSans SDF.asset rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/LiberationSans SDF.asset diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/LiberationSans SDF.asset.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/LiberationSans SDF.asset.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/LiberationSans SDF.asset.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/LiberationSans SDF.asset.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/LiberationSans.ttf b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/LiberationSans.ttf similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/LiberationSans.ttf rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/LiberationSans.ttf diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/LiberationSans.ttf.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/LiberationSans.ttf.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/LiberationSans.ttf.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/LiberationSans.ttf.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/afont.ttf b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/afont.ttf similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/afont.ttf rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/afont.ttf diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/afont.ttf.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/afont.ttf.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/afont.ttf.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Fonts/afont.ttf.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Gesture.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Gesture.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Gesture.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Gesture.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Gesture/Globe Material.mat b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Gesture/Globe Material.mat similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Gesture/Globe Material.mat rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Gesture/Globe Material.mat diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Gesture/Globe Material.mat.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Gesture/Globe Material.mat.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Gesture/Globe Material.mat.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Gesture/Globe Material.mat.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Gesture/globe.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Gesture/globe.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Gesture/globe.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Gesture/globe.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Gesture/globe.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Gesture/globe.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Gesture/globe.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Gesture/globe.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i1.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i1.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i1.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i1.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i1.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i1.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i1.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i1.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i2.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i2.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i2.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i2.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i2.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i2.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i2.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i2.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i3.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i3.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i3.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i3.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i3.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i3.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i3.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i3.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i4.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i4.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i4.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i4.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i4.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i4.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i4.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i4.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i5.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i5.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i5.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i5.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i5.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i5.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i5.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i5.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i6.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i6.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i6.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i6.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i6.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i6.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i6.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i6.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i7.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i7.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i7.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i7.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i7.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i7.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i7.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i7.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i8.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i8.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i8.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i8.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i8.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i8.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i8.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i8.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i9.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i9.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i9.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i9.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i9.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i9.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i9.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Icons/i9.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/RenderTexture.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/RenderTexture.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/RenderTexture.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/RenderTexture.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/RenderTexture/FullScreen.shader b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/RenderTexture/FullScreen.shader similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/RenderTexture/FullScreen.shader rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/RenderTexture/FullScreen.shader diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/RenderTexture/FullScreen.shader.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/RenderTexture/FullScreen.shader.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/RenderTexture/FullScreen.shader.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/RenderTexture/FullScreen.shader.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/RenderTexture/RenderImageCamera.prefab b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/RenderTexture/RenderImageCamera.prefab similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/RenderTexture/RenderImageCamera.prefab rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/RenderTexture/RenderImageCamera.prefab diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/RenderTexture/RenderImageCamera.prefab.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/RenderTexture/RenderImageCamera.prefab.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/RenderTexture/RenderImageCamera.prefab.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/RenderTexture/RenderImageCamera.prefab.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/Role-Diffuse.shader b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/Role-Diffuse.shader similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/Role-Diffuse.shader rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/Role-Diffuse.shader diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/Role-Diffuse.shader.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/Role-Diffuse.shader.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/Role-Diffuse.shader.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/Role-Diffuse.shader.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/U1NPC0040.mat b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/U1NPC0040.mat similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/U1NPC0040.mat rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/U1NPC0040.mat diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/U1NPC0040.mat.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/U1NPC0040.mat.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/U1NPC0040.mat.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/U1NPC0040.mat.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/U1NPC0041.mat b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/U1NPC0041.mat similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/U1NPC0041.mat rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/U1NPC0041.mat diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/U1NPC0041.mat.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/U1NPC0041.mat.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/U1NPC0041.mat.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Materials/U1NPC0041.mat.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Textures.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Textures.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Textures.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Textures.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Textures/U1NPC0040.tga b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Textures/U1NPC0040.tga similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Textures/U1NPC0040.tga rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Textures/U1NPC0040.tga diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Textures/U1NPC0040.tga.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Textures/U1NPC0040.tga.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Textures/U1NPC0040.tga.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/Textures/U1NPC0040.tga.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc-with-hud.prefab b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc-with-hud.prefab similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc-with-hud.prefab rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc-with-hud.prefab diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc-with-hud.prefab.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc-with-hud.prefab.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc-with-hud.prefab.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc-with-hud.prefab.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc.prefab b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc.prefab similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc.prefab rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc.prefab diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc.prefab.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc.prefab.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc.prefab.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc.prefab.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc2.FBX b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc2.FBX similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc2.FBX rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc2.FBX diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc2.FBX.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc2.FBX.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc2.FBX.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc2.FBX.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc3.prefab b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc3.prefab similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc3.prefab rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc3.prefab diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc3.prefab.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc3.prefab.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc3.prefab.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npc3.prefab.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npcs.FBX b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npcs.FBX similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npcs.FBX rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npcs.FBX diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npcs.FBX.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npcs.FBX.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npcs.FBX.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/npcs.FBX.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/test.prefab b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/test.prefab similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/test.prefab rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/test.prefab diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/test.prefab.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/test.prefab.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/test.prefab.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/Role/test.prefab.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Bag_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Bag_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Bag_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Bag_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Bag_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Bag_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Bag_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Bag_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Bag_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Bag_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Bag_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Bag_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Bag_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Bag_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Bag_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Bag_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_gojg7u.wav b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_gojg7u.wav similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_gojg7u.wav rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_gojg7u.wav diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_gojg7u.wav.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_gojg7u.wav.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_gojg7u.wav.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_gojg7u.wav.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_o4lt7w.wav b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_o4lt7w.wav similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_o4lt7w.wav rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_o4lt7w.wav diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_o4lt7w.wav.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_o4lt7w.wav.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_o4lt7w.wav.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Basics_o4lt7w.wav.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/BundleUsage_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/BundleUsage_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/BundleUsage_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/BundleUsage_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/BundleUsage_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/BundleUsage_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/BundleUsage_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/BundleUsage_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/BundleUsage_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/BundleUsage_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/BundleUsage_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/BundleUsage_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/BundleUsage_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/BundleUsage_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/BundleUsage_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/BundleUsage_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Cooldown_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Cooldown_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Cooldown_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Cooldown_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Cooldown_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Cooldown_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Cooldown_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Cooldown_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Cooldown_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Cooldown_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Cooldown_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Cooldown_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Cooldown_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Cooldown_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Cooldown_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Cooldown_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Curve_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Curve_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Curve_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Curve_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Curve_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Curve_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Curve_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Curve_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Curve_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Curve_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Curve_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Curve_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Curve_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Curve_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Curve_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Curve_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/CutScene_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/CutScene_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/CutScene_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/CutScene_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/CutScene_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/CutScene_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/CutScene_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/CutScene_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/CutScene_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/CutScene_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/CutScene_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/CutScene_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/CutScene_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/CutScene_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/CutScene_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/CutScene_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/EmitNumbers_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/EmitNumbers_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/EmitNumbers_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/EmitNumbers_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/EmitNumbers_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/EmitNumbers_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/EmitNumbers_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/EmitNumbers_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/EmitNumbers_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/EmitNumbers_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/EmitNumbers_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/EmitNumbers_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/EmitNumbers_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/EmitNumbers_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/EmitNumbers_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/EmitNumbers_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Emoji_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Emoji_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Emoji_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Emoji_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Emoji_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Emoji_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Emoji_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Emoji_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Emoji_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Emoji_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Emoji_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Emoji_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Emoji_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Emoji_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Emoji_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Emoji_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Extension_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Extension_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Extension_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Extension_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Extension_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Extension_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Extension_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Extension_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Extension_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Extension_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Extension_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Extension_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Extension_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Extension_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Extension_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Extension_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Filter_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Filter_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Filter_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Filter_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Filter_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Filter_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Filter_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Filter_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Filter_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Filter_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Filter_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Filter_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Filter_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Filter_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Filter_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Filter_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Gesture_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Gesture_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Gesture_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Gesture_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Gesture_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Gesture_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Gesture_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Gesture_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Guide_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Guide_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Guide_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Guide_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Guide_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Guide_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Guide_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Guide_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Guide_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Guide_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Guide_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Guide_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Guide_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Guide_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Guide_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Guide_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HeadBar_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HeadBar_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HeadBar_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HeadBar_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HeadBar_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HeadBar_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HeadBar_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HeadBar_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HeadBar_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HeadBar_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HeadBar_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HeadBar_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HeadBar_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HeadBar_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HeadBar_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HeadBar_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HitTest_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HitTest_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HitTest_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HitTest_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HitTest_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HitTest_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HitTest_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HitTest_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HitTest_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HitTest_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HitTest_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HitTest_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HitTest_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HitTest_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HitTest_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/HitTest_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Joystick_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Joystick_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Joystick_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Joystick_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Joystick_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Joystick_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Joystick_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Joystick_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Joystick_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Joystick_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Joystick_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Joystick_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Joystick_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Joystick_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Joystick_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Joystick_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/LoopList_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/LoopList_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/LoopList_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/LoopList_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/LoopList_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/LoopList_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/LoopList_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/LoopList_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/LoopList_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/LoopList_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/LoopList_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/LoopList_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/LoopList_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/LoopList_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/LoopList_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/LoopList_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ModalWaiting_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ModalWaiting_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ModalWaiting_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ModalWaiting_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ModalWaiting_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ModalWaiting_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ModalWaiting_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ModalWaiting_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ModalWaiting_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ModalWaiting_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ModalWaiting_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ModalWaiting_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ModalWaiting_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ModalWaiting_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ModalWaiting_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ModalWaiting_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Model_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Model_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Model_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Model_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Model_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Model_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Model_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Model_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Model_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Model_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Model_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Model_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Model_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Model_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Model_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Model_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Particles_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Particles_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Particles_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Particles_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Particles_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Particles_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Particles_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Particles_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Particles_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Particles_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Particles_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Particles_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Particles_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Particles_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Particles_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Particles_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Perspective_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Perspective_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Perspective_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Perspective_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Perspective_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Perspective_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Perspective_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Perspective_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Perspective_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Perspective_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Perspective_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Perspective_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Perspective_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Perspective_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Perspective_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Perspective_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/PullToRefresh_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/PullToRefresh_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/PullToRefresh_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/PullToRefresh_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/PullToRefresh_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/PullToRefresh_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/PullToRefresh_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/PullToRefresh_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/PullToRefresh_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/PullToRefresh_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/PullToRefresh_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/PullToRefresh_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/PullToRefresh_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/PullToRefresh_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/PullToRefresh_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/PullToRefresh_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/RenderTexture_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/RenderTexture_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/RenderTexture_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/RenderTexture_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/RenderTexture_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/RenderTexture_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/RenderTexture_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/RenderTexture_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/RenderTexture_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/RenderTexture_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/RenderTexture_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/RenderTexture_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/RenderTexture_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/RenderTexture_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/RenderTexture_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/RenderTexture_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ScrollPane_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ScrollPane_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ScrollPane_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ScrollPane_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ScrollPane_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ScrollPane_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ScrollPane_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ScrollPane_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ScrollPane_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ScrollPane_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ScrollPane_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ScrollPane_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ScrollPane_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ScrollPane_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ScrollPane_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/ScrollPane_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TextMeshPro_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TextMeshPro_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TextMeshPro_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TextMeshPro_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TextMeshPro_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TextMeshPro_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TextMeshPro_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TextMeshPro_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TextMeshPro_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TextMeshPro_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TextMeshPro_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TextMeshPro_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TextMeshPro_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TextMeshPro_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TextMeshPro_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TextMeshPro_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_gkq03.wav b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_gkq03.wav similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_gkq03.wav rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_gkq03.wav diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_gkq03.wav.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_gkq03.wav.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_gkq03.wav.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/Transition_gkq03.wav.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TreeView_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TreeView_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TreeView_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TreeView_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TreeView_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TreeView_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TreeView_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TreeView_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TreeView_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TreeView_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TreeView_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TreeView_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TreeView_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TreeView_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TreeView_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TreeView_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnCard_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnCard_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnCard_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnCard_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnCard_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnCard_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnCard_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnCard_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnCard_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnCard_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnCard_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnCard_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnCard_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnCard_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnCard_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnCard_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnPage_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnPage_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnPage_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnPage_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnPage_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnPage_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnPage_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnPage_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnPage_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnPage_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnPage_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnPage_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnPage_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnPage_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnPage_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TurnPage_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TypingEffect_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TypingEffect_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TypingEffect_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TypingEffect_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TypingEffect_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TypingEffect_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TypingEffect_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TypingEffect_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TypingEffect_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TypingEffect_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TypingEffect_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TypingEffect_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TypingEffect_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TypingEffect_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TypingEffect_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/TypingEffect_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/VirtualList_atlas0.png b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/VirtualList_atlas0.png similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/VirtualList_atlas0.png rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/VirtualList_atlas0.png diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/VirtualList_atlas0.png.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/VirtualList_atlas0.png.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/VirtualList_atlas0.png.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/VirtualList_atlas0.png.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/VirtualList_fui.bytes b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/VirtualList_fui.bytes similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/VirtualList_fui.bytes rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/VirtualList_fui.bytes diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/VirtualList_fui.bytes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/VirtualList_fui.bytes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/VirtualList_fui.bytes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Resources/UI/VirtualList_fui.bytes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 01 - Basics.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 01 - Basics.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 01 - Basics.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 01 - Basics.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 01 - Basics.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 01 - Basics.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 01 - Basics.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 01 - Basics.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 02 - Bag.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 02 - Bag.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 02 - Bag.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 02 - Bag.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 02 - Bag.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 02 - Bag.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 02 - Bag.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 02 - Bag.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 03 - CoolDown.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 03 - CoolDown.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 03 - CoolDown.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 03 - CoolDown.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 03 - CoolDown.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 03 - CoolDown.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 03 - CoolDown.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 03 - CoolDown.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 04 - Emoji.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 04 - Emoji.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 04 - Emoji.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 04 - Emoji.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 04 - Emoji.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 04 - Emoji.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 04 - Emoji.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 04 - Emoji.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 05 - Joystick.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 05 - Joystick.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 05 - Joystick.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 05 - Joystick.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 05 - Joystick.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 05 - Joystick.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 05 - Joystick.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 05 - Joystick.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 06 - HeadBar.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 06 - HeadBar.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 06 - HeadBar.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 06 - HeadBar.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 06 - HeadBar.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 06 - HeadBar.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 06 - HeadBar.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 06 - HeadBar.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 07 - EmitNumbers.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 07 - EmitNumbers.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 07 - EmitNumbers.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 07 - EmitNumbers.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 07 - EmitNumbers.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 07 - EmitNumbers.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 07 - EmitNumbers.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 07 - EmitNumbers.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 08 - Transition.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 08 - Transition.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 08 - Transition.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 08 - Transition.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 08 - Transition.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 08 - Transition.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 08 - Transition.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 08 - Transition.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 09 - Extension.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 09 - Extension.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 09 - Extension.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 09 - Extension.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 09 - Extension.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 09 - Extension.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 09 - Extension.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 09 - Extension.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 10 - ModalWaiting.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 10 - ModalWaiting.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 10 - ModalWaiting.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 10 - ModalWaiting.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 10 - ModalWaiting.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 10 - ModalWaiting.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 10 - ModalWaiting.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 10 - ModalWaiting.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 11 - CutScene.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 11 - CutScene.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 11 - CutScene.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 11 - CutScene.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 11 - CutScene.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 11 - CutScene.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 11 - CutScene.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 11 - CutScene.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 12 - RenderTexture.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 12 - RenderTexture.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 12 - RenderTexture.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 12 - RenderTexture.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 12 - RenderTexture.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 12 - RenderTexture.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 12 - RenderTexture.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 12 - RenderTexture.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 13 - Particles.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 13 - Particles.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 13 - Particles.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 13 - Particles.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 13 - Particles.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 13 - Particles.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 13 - Particles.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 13 - Particles.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 14 - BundleUsage.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 14 - BundleUsage.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 14 - BundleUsage.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 14 - BundleUsage.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 14 - BundleUsage.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 14 - BundleUsage.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 14 - BundleUsage.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 14 - BundleUsage.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 15 - VirtualList.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 15 - VirtualList.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 15 - VirtualList.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 15 - VirtualList.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 15 - VirtualList.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 15 - VirtualList.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 15 - VirtualList.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 15 - VirtualList.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 16 - LoopList.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 16 - LoopList.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 16 - LoopList.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 16 - LoopList.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 16 - LoopList.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 16 - LoopList.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 16 - LoopList.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 16 - LoopList.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 17 - Model.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 17 - Model.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 17 - Model.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 17 - Model.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 17 - Model.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 17 - Model.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 17 - Model.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 17 - Model.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 18 - Guide.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 18 - Guide.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 18 - Guide.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 18 - Guide.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 18 - Guide.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 18 - Guide.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 18 - Guide.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 18 - Guide.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 19 - HitTest.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 19 - HitTest.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 19 - HitTest.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 19 - HitTest.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 19 - HitTest.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 19 - HitTest.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 19 - HitTest.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 19 - HitTest.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 20 - 3D UI.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 20 - 3D UI.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 20 - 3D UI.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 20 - 3D UI.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 20 - 3D UI.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 20 - 3D UI.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 20 - 3D UI.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 20 - 3D UI.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 21 - Curve UI.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 21 - Curve UI.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 21 - Curve UI.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 21 - Curve UI.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 21 - Curve UI.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 21 - Curve UI.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 21 - Curve UI.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 21 - Curve UI.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 22 - Gesture.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 22 - Gesture.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 22 - Gesture.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 22 - Gesture.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 22 - Gesture.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 22 - Gesture.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 22 - Gesture.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 22 - Gesture.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 23 - Filter.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 23 - Filter.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 23 - Filter.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 23 - Filter.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 23 - Filter.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 23 - Filter.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 23 - Filter.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 23 - Filter.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 24 - TurnCard.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 24 - TurnCard.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 24 - TurnCard.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 24 - TurnCard.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 24 - TurnCard.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 24 - TurnCard.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 24 - TurnCard.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 24 - TurnCard.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 25 - TreeView.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 25 - TreeView.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 25 - TreeView.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 25 - TreeView.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 25 - TreeView.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 25 - TreeView.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 25 - TreeView.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 25 - TreeView.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 26 - PullToRefresh.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 26 - PullToRefresh.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 26 - PullToRefresh.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 26 - PullToRefresh.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 26 - PullToRefresh.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 26 - PullToRefresh.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 26 - PullToRefresh.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 26 - PullToRefresh.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 27 - ScrollPane.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 27 - ScrollPane.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 27 - ScrollPane.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 27 - ScrollPane.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 27 - ScrollPane.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 27 - ScrollPane.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 27 - ScrollPane.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 27 - ScrollPane.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 28 - TypingEffect.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 28 - TypingEffect.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 28 - TypingEffect.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 28 - TypingEffect.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 28 - TypingEffect.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 28 - TypingEffect.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 28 - TypingEffect.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 28 - TypingEffect.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 29 - TurnPage.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 29 - TurnPage.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 29 - TurnPage.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 29 - TurnPage.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 29 - TurnPage.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 29 - TurnPage.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 29 - TurnPage.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 29 - TurnPage.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 30 - TextMeshPro.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 30 - TextMeshPro.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 30 - TextMeshPro.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 30 - TextMeshPro.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 30 - TextMeshPro.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 30 - TextMeshPro.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 30 - TextMeshPro.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/Example 30 - TextMeshPro.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/scene1.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/scene1.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/scene1.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/scene1.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/scene1.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/scene1.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/scene1.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/scene1.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/scene2.unity b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/scene2.unity similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/scene2.unity rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/scene2.unity diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/scene2.unity.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/scene2.unity.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/scene2.unity.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Scenes/scene2.unity.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/ScrollPane.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/ScrollPane.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/ScrollPane.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/ScrollPane.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/ScrollPane/ScrollPaneMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/ScrollPane/ScrollPaneMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/ScrollPane/ScrollPaneMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/ScrollPane/ScrollPaneMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/ScrollPane/ScrollPaneMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/ScrollPane/ScrollPaneMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/ScrollPane/ScrollPaneMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/ScrollPane/ScrollPaneMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TextMeshPro.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TextMeshPro.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TextMeshPro.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TextMeshPro.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TextMeshPro/TextMeshProMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TextMeshPro/TextMeshProMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TextMeshPro/TextMeshProMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TextMeshPro/TextMeshProMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TextMeshPro/TextMeshProMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TextMeshPro/TextMeshProMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TextMeshPro/TextMeshProMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TextMeshPro/TextMeshProMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Transition.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Transition.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Transition.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Transition.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Transition/TransitionMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Transition/TransitionMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Transition/TransitionMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Transition/TransitionMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Transition/TransitionMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Transition/TransitionMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/Transition/TransitionMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/Transition/TransitionMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TreeView.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TreeView.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TreeView.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TreeView.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TreeView/TreeViewMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TreeView/TreeViewMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TreeView/TreeViewMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TreeView/TreeViewMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TreeView/TreeViewMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TreeView/TreeViewMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TreeView/TreeViewMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TreeView/TreeViewMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnCard.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnCard.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnCard.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnCard.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnCard/Card.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnCard/Card.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnCard/Card.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnCard/Card.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnCard/Card.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnCard/Card.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnCard/Card.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnCard/Card.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnCard/TurnCardMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnCard/TurnCardMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnCard/TurnCardMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnCard/TurnCardMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnCard/TurnCardMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnCard/TurnCardMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnCard/TurnCardMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnCard/TurnCardMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/BookPage.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/BookPage.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/BookPage.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/BookPage.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/BookPage.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/BookPage.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/BookPage.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/BookPage.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/FairyBook.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/FairyBook.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/FairyBook.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/FairyBook.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/FairyBook.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/FairyBook.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/FairyBook.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/FairyBook.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/TurnPageMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/TurnPageMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/TurnPageMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/TurnPageMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/TurnPageMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/TurnPageMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/TurnPageMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TurnPage/TurnPageMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TypingEffect.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TypingEffect.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TypingEffect.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TypingEffect.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TypingEffect/TypingEffectMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TypingEffect/TypingEffectMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TypingEffect/TypingEffectMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TypingEffect/TypingEffectMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TypingEffect/TypingEffectMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TypingEffect/TypingEffectMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/TypingEffect/TypingEffectMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/TypingEffect/TypingEffectMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/VirtualList.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/VirtualList.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/VirtualList.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/VirtualList.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/VirtualList/VirtualListMain.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/VirtualList/VirtualListMain.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/VirtualList/VirtualListMain.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/VirtualList/VirtualListMain.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/VirtualList/VirtualListMain.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/VirtualList/VirtualListMain.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Examples~/VirtualList/VirtualListMain.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Examples~/VirtualList/VirtualListMain.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Resources.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Resources.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Resources.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Resources.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/AddOn.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/AddOn.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/AddOn.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/AddOn.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/AddOn/FairyGUI-BlurFilter.shader b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/AddOn/FairyGUI-BlurFilter.shader similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/AddOn/FairyGUI-BlurFilter.shader rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/AddOn/FairyGUI-BlurFilter.shader diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/AddOn/FairyGUI-BlurFilter.shader.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/AddOn/FairyGUI-BlurFilter.shader.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/AddOn/FairyGUI-BlurFilter.shader.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/AddOn/FairyGUI-BlurFilter.shader.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-BMFont.shader b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-BMFont.shader similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-BMFont.shader rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-BMFont.shader diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-BMFont.shader.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-BMFont.shader.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-BMFont.shader.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-BMFont.shader.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-Image.shader b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-Image.shader similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-Image.shader rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-Image.shader diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-Image.shader.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-Image.shader.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-Image.shader.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-Image.shader.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-Text.shader b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-Text.shader similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-Text.shader rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-Text.shader diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-Text.shader.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-Text.shader.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-Text.shader.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Resources/Shaders/FairyGUI-Text.shader.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/BlendMode.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/BlendMode.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/BlendMode.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/BlendMode.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/BlendMode.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/BlendMode.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/BlendMode.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/BlendMode.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/CaptureCamera.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/CaptureCamera.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/CaptureCamera.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/CaptureCamera.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/CaptureCamera.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/CaptureCamera.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/CaptureCamera.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/CaptureCamera.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Container.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Container.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Container.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Container.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Container.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Container.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Container.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Container.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/DisplayObject.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/DisplayObject.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/DisplayObject.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/DisplayObject.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/DisplayObject.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/DisplayObject.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/DisplayObject.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/DisplayObject.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/GoWrapper.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/GoWrapper.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/GoWrapper.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/GoWrapper.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/GoWrapper.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/GoWrapper.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/GoWrapper.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/GoWrapper.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/ColliderHitTest.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/ColliderHitTest.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/ColliderHitTest.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/ColliderHitTest.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/ColliderHitTest.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/ColliderHitTest.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/ColliderHitTest.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/ColliderHitTest.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/HitTestContext.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/HitTestContext.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/HitTestContext.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/HitTestContext.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/HitTestContext.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/HitTestContext.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/HitTestContext.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/HitTestContext.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/IHitTest.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/IHitTest.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/IHitTest.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/IHitTest.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/IHitTest.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/IHitTest.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/IHitTest.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/IHitTest.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/MeshColliderHitTest.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/MeshColliderHitTest.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/MeshColliderHitTest.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/MeshColliderHitTest.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/MeshColliderHitTest.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/MeshColliderHitTest.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/MeshColliderHitTest.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/MeshColliderHitTest.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/PixelHitTest.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/PixelHitTest.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/PixelHitTest.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/PixelHitTest.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/PixelHitTest.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/PixelHitTest.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/PixelHitTest.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/PixelHitTest.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/RectHitTest.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/RectHitTest.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/RectHitTest.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/RectHitTest.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/RectHitTest.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/RectHitTest.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/RectHitTest.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/RectHitTest.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/ShapeHitTest.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/ShapeHitTest.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/ShapeHitTest.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/ShapeHitTest.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/ShapeHitTest.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/ShapeHitTest.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/ShapeHitTest.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/HitTest/ShapeHitTest.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Image.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Image.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Image.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Image.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Image.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Image.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Image.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Image.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/MaterialManager.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/MaterialManager.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/MaterialManager.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/MaterialManager.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/MaterialManager.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/MaterialManager.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/MaterialManager.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/MaterialManager.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/CompositeMesh.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/CompositeMesh.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/CompositeMesh.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/CompositeMesh.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/CompositeMesh.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/CompositeMesh.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/CompositeMesh.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/CompositeMesh.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/EllipseMesh.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/EllipseMesh.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/EllipseMesh.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/EllipseMesh.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/EllipseMesh.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/EllipseMesh.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/EllipseMesh.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/EllipseMesh.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/FillMesh.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/FillMesh.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/FillMesh.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/FillMesh.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/FillMesh.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/FillMesh.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/FillMesh.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/FillMesh.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/LineMesh.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/LineMesh.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/LineMesh.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/LineMesh.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/LineMesh.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/LineMesh.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/LineMesh.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/LineMesh.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/MeshFactory.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/MeshFactory.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/MeshFactory.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/MeshFactory.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/MeshFactory.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/MeshFactory.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/MeshFactory.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/MeshFactory.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/PlaneMesh.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/PlaneMesh.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/PlaneMesh.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/PlaneMesh.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/PlaneMesh.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/PlaneMesh.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/PlaneMesh.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/PlaneMesh.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/PolygonMesh.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/PolygonMesh.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/PolygonMesh.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/PolygonMesh.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/PolygonMesh.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/PolygonMesh.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/PolygonMesh.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/PolygonMesh.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RectMesh.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RectMesh.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RectMesh.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RectMesh.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RectMesh.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RectMesh.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RectMesh.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RectMesh.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RegularPolygonMesh.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RegularPolygonMesh.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RegularPolygonMesh.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RegularPolygonMesh.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RegularPolygonMesh.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RegularPolygonMesh.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RegularPolygonMesh.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RegularPolygonMesh.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RoundedRectMesh.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RoundedRectMesh.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RoundedRectMesh.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RoundedRectMesh.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RoundedRectMesh.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RoundedRectMesh.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RoundedRectMesh.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/RoundedRectMesh.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/StraightLineMesh.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/StraightLineMesh.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/StraightLineMesh.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/StraightLineMesh.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/StraightLineMesh.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/StraightLineMesh.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/StraightLineMesh.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/StraightLineMesh.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/VertexBuffer.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/VertexBuffer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/VertexBuffer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/VertexBuffer.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/VertexBuffer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/VertexBuffer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/VertexBuffer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Mesh/VertexBuffer.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/MovieClip.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/MovieClip.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/MovieClip.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/MovieClip.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/MovieClip.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/MovieClip.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/MovieClip.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/MovieClip.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NAudioClip.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NAudioClip.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NAudioClip.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NAudioClip.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NAudioClip.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NAudioClip.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NAudioClip.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NAudioClip.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NGraphics.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NGraphics.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NGraphics.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NGraphics.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NGraphics.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NGraphics.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NGraphics.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NGraphics.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NTexture.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NTexture.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NTexture.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NTexture.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NTexture.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NTexture.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NTexture.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/NTexture.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/ShaderConfig.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/ShaderConfig.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/ShaderConfig.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/ShaderConfig.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/ShaderConfig.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/ShaderConfig.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/ShaderConfig.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/ShaderConfig.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Shape.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Shape.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Shape.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Shape.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Shape.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Shape.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Shape.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Shape.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Stage.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Stage.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Stage.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Stage.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Stage.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Stage.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Stage.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Stage.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/StageCamera.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/StageCamera.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/StageCamera.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/StageCamera.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/StageCamera.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/StageCamera.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/StageCamera.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/StageCamera.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/StageEngine.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/StageEngine.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/StageEngine.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/StageEngine.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/StageEngine.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/StageEngine.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/StageEngine.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/StageEngine.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Stats.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Stats.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Stats.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Stats.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Stats.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Stats.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Stats.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Stats.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/BaseFont.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/BaseFont.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/BaseFont.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/BaseFont.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/BaseFont.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/BaseFont.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/BaseFont.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/BaseFont.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/BitmapFont.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/BitmapFont.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/BitmapFont.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/BitmapFont.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/BitmapFont.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/BitmapFont.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/BitmapFont.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/BitmapFont.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/DynamicFont.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/DynamicFont.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/DynamicFont.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/DynamicFont.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/DynamicFont.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/DynamicFont.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/DynamicFont.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/DynamicFont.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/Emoji.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/Emoji.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/Emoji.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/Emoji.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/Emoji.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/Emoji.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/Emoji.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/Emoji.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/FontManager.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/FontManager.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/FontManager.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/FontManager.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/FontManager.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/FontManager.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/FontManager.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/FontManager.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/IKeyboard.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/IKeyboard.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/IKeyboard.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/IKeyboard.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/IKeyboard.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/IKeyboard.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/IKeyboard.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/IKeyboard.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/InputTextField.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/InputTextField.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/InputTextField.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/InputTextField.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/InputTextField.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/InputTextField.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/InputTextField.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/InputTextField.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/RTLSupport.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/RTLSupport.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/RTLSupport.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/RTLSupport.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/RTLSupport.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/RTLSupport.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/RTLSupport.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/RTLSupport.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/RichTextField.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/RichTextField.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/RichTextField.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/RichTextField.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/RichTextField.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/RichTextField.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/RichTextField.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/RichTextField.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/SelectionShape.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/SelectionShape.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/SelectionShape.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/SelectionShape.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/SelectionShape.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/SelectionShape.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/SelectionShape.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/SelectionShape.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TextField.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TextField.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TextField.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TextField.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TextField.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TextField.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TextField.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TextField.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TextFormat.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TextFormat.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TextFormat.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TextFormat.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TextFormat.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TextFormat.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TextFormat.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TextFormat.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TouchScreenKeyboard.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TouchScreenKeyboard.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TouchScreenKeyboard.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TouchScreenKeyboard.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TouchScreenKeyboard.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TouchScreenKeyboard.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TouchScreenKeyboard.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TouchScreenKeyboard.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TypingEffect.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TypingEffect.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TypingEffect.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TypingEffect.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TypingEffect.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TypingEffect.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TypingEffect.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/Text/TypingEffect.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/UpdateContext.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/UpdateContext.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/UpdateContext.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/UpdateContext.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/UpdateContext.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/UpdateContext.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/UpdateContext.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Core/UpdateContext.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Event.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Event.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Event.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Event.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventBridge.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventBridge.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventBridge.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventBridge.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventBridge.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventBridge.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventBridge.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventBridge.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventContext.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventContext.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventContext.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventContext.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventContext.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventContext.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventContext.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventContext.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventDispatcher.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventDispatcher.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventDispatcher.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventDispatcher.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventDispatcher.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventDispatcher.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventDispatcher.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventDispatcher.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventListener.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventListener.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventListener.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventListener.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventListener.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventListener.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventListener.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/EventListener.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/IEventDispatcher.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/IEventDispatcher.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/IEventDispatcher.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/IEventDispatcher.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/IEventDispatcher.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/IEventDispatcher.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/IEventDispatcher.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/IEventDispatcher.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/InputEvent.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/InputEvent.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/InputEvent.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/InputEvent.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/InputEvent.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/InputEvent.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/InputEvent.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Event/InputEvent.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/DragonBones.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/DragonBones.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/DragonBones.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/DragonBones.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/DragonBones/DragonBonesLoader.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/DragonBones/DragonBonesLoader.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/DragonBones/DragonBonesLoader.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/DragonBones/DragonBonesLoader.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/DragonBones/DragonBonesLoader.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/DragonBones/DragonBonesLoader.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/DragonBones/DragonBonesLoader.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/DragonBones/DragonBonesLoader.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/Spine.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/Spine.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/Spine.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/Spine.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/Spine/SpineLoader.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/Spine/SpineLoader.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/Spine/SpineLoader.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/Spine/SpineLoader.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/Spine/SpineLoader.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/Spine/SpineLoader.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/Spine/SpineLoader.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/Spine/SpineLoader.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/Shaders.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/Shaders.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/Shaders.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/Shaders.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/Shaders/FairyGUI-TMP.shader b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/Shaders/FairyGUI-TMP.shader similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/Shaders/FairyGUI-TMP.shader rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/Shaders/FairyGUI-TMP.shader diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/Shaders/FairyGUI-TMP.shader.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/Shaders/FairyGUI-TMP.shader.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/Shaders/FairyGUI-TMP.shader.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/Shaders/FairyGUI-TMP.shader.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/TMPFont.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/TMPFont.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/TMPFont.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/TMPFont.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/TMPFont.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/TMPFont.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/TMPFont.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/TMPFont.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/TMPTextFormat.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/TMPTextFormat.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/TMPTextFormat.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/TMPTextFormat.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/TMPTextFormat.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/TMPTextFormat.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/TMPTextFormat.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/TextMeshPro/TMPTextFormat.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput/WebGLTextInput.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput/WebGLTextInput.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput/WebGLTextInput.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput/WebGLTextInput.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput/WebGLTextInput.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput/WebGLTextInput.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput/WebGLTextInput.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput/WebGLTextInput.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput/WebGLTextInput.jslib b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput/WebGLTextInput.jslib similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput/WebGLTextInput.jslib rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput/WebGLTextInput.jslib diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput/WebGLTextInput.jslib.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput/WebGLTextInput.jslib.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput/WebGLTextInput.jslib.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Extensions/WebGLTextInput/WebGLTextInput.jslib.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/BlurFilter.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/BlurFilter.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/BlurFilter.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/BlurFilter.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/BlurFilter.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/BlurFilter.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/BlurFilter.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/BlurFilter.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/ColorFilter.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/ColorFilter.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/ColorFilter.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/ColorFilter.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/ColorFilter.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/ColorFilter.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/ColorFilter.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/ColorFilter.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/IFilter.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/IFilter.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/IFilter.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/IFilter.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/IFilter.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/IFilter.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/IFilter.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Filter/IFilter.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/LongPressGesture.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/LongPressGesture.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/LongPressGesture.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/LongPressGesture.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/LongPressGesture.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/LongPressGesture.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/LongPressGesture.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/LongPressGesture.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/PinchGesture.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/PinchGesture.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/PinchGesture.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/PinchGesture.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/PinchGesture.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/PinchGesture.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/PinchGesture.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/PinchGesture.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/RotationGesture.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/RotationGesture.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/RotationGesture.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/RotationGesture.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/RotationGesture.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/RotationGesture.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/RotationGesture.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/RotationGesture.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/SwipeGesture.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/SwipeGesture.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/SwipeGesture.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/SwipeGesture.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/SwipeGesture.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/SwipeGesture.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/SwipeGesture.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Gesture/SwipeGesture.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/EaseManager.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/EaseManager.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/EaseManager.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/EaseManager.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/EaseManager.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/EaseManager.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/EaseManager.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/EaseManager.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/EaseType.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/EaseType.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/EaseType.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/EaseType.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/EaseType.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/EaseType.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/EaseType.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/EaseType.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GPath.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GPath.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GPath.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GPath.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GPath.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GPath.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GPath.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GPath.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GTween.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GTween.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GTween.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GTween.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GTween.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GTween.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GTween.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GTween.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GTweener.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GTweener.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GTweener.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GTweener.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GTweener.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GTweener.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GTweener.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/GTweener.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenManager.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenManager.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenManager.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenManager.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenManager.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenManager.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenManager.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenManager.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenPropType.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenPropType.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenPropType.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenPropType.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenPropType.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenPropType.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenPropType.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenPropType.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenValue.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenValue.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenValue.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenValue.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenValue.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenValue.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenValue.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Tween/TweenValue.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/ChangePageAction.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/ChangePageAction.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/ChangePageAction.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/ChangePageAction.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/ChangePageAction.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/ChangePageAction.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/ChangePageAction.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/ChangePageAction.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/ControllerAction.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/ControllerAction.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/ControllerAction.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/ControllerAction.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/ControllerAction.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/ControllerAction.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/ControllerAction.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/ControllerAction.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/PlayTransitionAction.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/PlayTransitionAction.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/PlayTransitionAction.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/PlayTransitionAction.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/PlayTransitionAction.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/PlayTransitionAction.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/PlayTransitionAction.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Action/PlayTransitionAction.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/AsyncCreationHelper.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/AsyncCreationHelper.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/AsyncCreationHelper.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/AsyncCreationHelper.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/AsyncCreationHelper.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/AsyncCreationHelper.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/AsyncCreationHelper.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/AsyncCreationHelper.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Controller.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Controller.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Controller.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Controller.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Controller.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Controller.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Controller.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Controller.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/DragDropManager.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/DragDropManager.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/DragDropManager.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/DragDropManager.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/DragDropManager.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/DragDropManager.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/DragDropManager.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/DragDropManager.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/EMRenderSupport.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/EMRenderSupport.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/EMRenderSupport.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/EMRenderSupport.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/EMRenderSupport.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/EMRenderSupport.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/EMRenderSupport.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/EMRenderSupport.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/FieldTypes.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/FieldTypes.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/FieldTypes.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/FieldTypes.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/FieldTypes.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/FieldTypes.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/FieldTypes.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/FieldTypes.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GButton.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GButton.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GButton.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GButton.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GButton.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GButton.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GButton.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GButton.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GComboBox.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GComboBox.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GComboBox.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GComboBox.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GComboBox.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GComboBox.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GComboBox.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GComboBox.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GComponent.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GComponent.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GComponent.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GComponent.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GComponent.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GComponent.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GComponent.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GComponent.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GGraph.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GGraph.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GGraph.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GGraph.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GGraph.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GGraph.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GGraph.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GGraph.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GGroup.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GGroup.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GGroup.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GGroup.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GGroup.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GGroup.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GGroup.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GGroup.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GImage.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GImage.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GImage.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GImage.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GImage.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GImage.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GImage.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GImage.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLabel.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLabel.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLabel.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLabel.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLabel.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLabel.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLabel.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLabel.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GList.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GList.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GList.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GList.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GList.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GList.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GList.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GList.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLoader.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLoader.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLoader.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLoader.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLoader.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLoader.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLoader.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLoader.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLoader3D.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLoader3D.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLoader3D.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLoader3D.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLoader3D.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLoader3D.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLoader3D.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GLoader3D.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GMovieClip.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GMovieClip.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GMovieClip.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GMovieClip.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GMovieClip.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GMovieClip.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GMovieClip.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GMovieClip.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GObject.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GObject.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GObject.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GObject.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GObject.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GObject.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GObject.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GObject.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GObjectPool.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GObjectPool.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GObjectPool.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GObjectPool.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GObjectPool.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GObjectPool.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GObjectPool.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GObjectPool.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GProgressBar.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GProgressBar.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GProgressBar.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GProgressBar.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GProgressBar.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GProgressBar.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GProgressBar.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GProgressBar.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GRichTextField.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GRichTextField.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GRichTextField.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GRichTextField.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GRichTextField.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GRichTextField.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GRichTextField.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GRichTextField.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GRoot.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GRoot.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GRoot.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GRoot.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GRoot.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GRoot.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GRoot.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GRoot.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GScrollBar.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GScrollBar.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GScrollBar.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GScrollBar.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GScrollBar.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GScrollBar.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GScrollBar.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GScrollBar.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GSlider.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GSlider.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GSlider.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GSlider.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GSlider.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GSlider.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GSlider.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GSlider.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTextField.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTextField.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTextField.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTextField.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTextField.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTextField.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTextField.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTextField.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTextInput.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTextInput.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTextInput.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTextInput.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTextInput.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTextInput.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTextInput.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTextInput.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTree.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTree.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTree.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTree.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTree.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTree.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTree.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTree.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTreeNode.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTreeNode.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTreeNode.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTreeNode.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTreeNode.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTreeNode.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTreeNode.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/GTreeNode.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearAnimation.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearAnimation.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearAnimation.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearAnimation.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearAnimation.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearAnimation.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearAnimation.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearAnimation.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearBase.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearBase.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearBase.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearBase.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearBase.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearBase.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearBase.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearBase.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearColor.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearColor.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearColor.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearColor.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearColor.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearColor.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearColor.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearColor.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearDisplay.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearDisplay.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearDisplay.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearDisplay.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearDisplay.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearDisplay.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearDisplay.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearDisplay.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearDisplay2.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearDisplay2.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearDisplay2.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearDisplay2.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearDisplay2.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearDisplay2.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearDisplay2.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearDisplay2.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearFontSize.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearFontSize.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearFontSize.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearFontSize.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearFontSize.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearFontSize.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearFontSize.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearFontSize.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearIcon.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearIcon.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearIcon.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearIcon.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearIcon.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearIcon.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearIcon.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearIcon.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearLook.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearLook.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearLook.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearLook.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearLook.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearLook.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearLook.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearLook.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearSize.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearSize.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearSize.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearSize.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearSize.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearSize.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearSize.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearSize.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearText.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearText.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearText.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearText.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearText.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearText.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearText.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearText.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearXY.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearXY.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearXY.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearXY.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearXY.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearXY.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearXY.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/GearXY.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/IAnimationGear.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/IAnimationGear.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/IAnimationGear.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/IAnimationGear.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/IAnimationGear.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/IAnimationGear.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/IAnimationGear.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/IAnimationGear.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/IColorGear.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/IColorGear.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/IColorGear.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/IColorGear.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/IColorGear.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/IColorGear.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/IColorGear.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Gears/IColorGear.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/IUISource.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/IUISource.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/IUISource.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/IUISource.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/IUISource.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/IUISource.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/IUISource.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/IUISource.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Margin.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Margin.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Margin.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Margin.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Margin.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Margin.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Margin.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Margin.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/PackageItem.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/PackageItem.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/PackageItem.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/PackageItem.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/PackageItem.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/PackageItem.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/PackageItem.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/PackageItem.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/PopupMenu.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/PopupMenu.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/PopupMenu.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/PopupMenu.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/PopupMenu.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/PopupMenu.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/PopupMenu.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/PopupMenu.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/RelationItem.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/RelationItem.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/RelationItem.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/RelationItem.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/RelationItem.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/RelationItem.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/RelationItem.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/RelationItem.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Relations.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Relations.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Relations.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Relations.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Relations.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Relations.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Relations.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Relations.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/ScrollPane.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/ScrollPane.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/ScrollPane.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/ScrollPane.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/ScrollPane.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/ScrollPane.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/ScrollPane.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/ScrollPane.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Transition.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Transition.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Transition.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Transition.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Transition.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Transition.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Transition.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Transition.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/TranslationHelper.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/TranslationHelper.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/TranslationHelper.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/TranslationHelper.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/TranslationHelper.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/TranslationHelper.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/TranslationHelper.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/TranslationHelper.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Tree.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Tree.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Tree.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Tree.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Tree/TreeNode.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Tree/TreeNode.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Tree/TreeNode.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Tree/TreeNode.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Tree/TreeNode.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Tree/TreeNode.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Tree/TreeNode.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Tree/TreeNode.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Tree/TreeView.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Tree/TreeView.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Tree/TreeView.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Tree/TreeView.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Tree/TreeView.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Tree/TreeView.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Tree/TreeView.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Tree/TreeView.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIConfig.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIConfig.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIConfig.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIConfig.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIConfig.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIConfig.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIConfig.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIConfig.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIContentScaler.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIContentScaler.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIContentScaler.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIContentScaler.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIContentScaler.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIContentScaler.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIContentScaler.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIContentScaler.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIObjectFactory.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIObjectFactory.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIObjectFactory.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIObjectFactory.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIObjectFactory.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIObjectFactory.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIObjectFactory.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIObjectFactory.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPackage.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPackage.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPackage.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPackage.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPackage.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPackage.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPackage.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPackage.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPainter.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPainter.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPainter.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPainter.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPainter.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPainter.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPainter.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPainter.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPanel.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPanel.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPanel.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPanel.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPanel.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPanel.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPanel.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/UIPanel.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Window.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Window.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Window.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Window.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Window.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Window.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Window.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/UI/Window.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ByteBuffer.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ByteBuffer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ByteBuffer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ByteBuffer.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ByteBuffer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ByteBuffer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ByteBuffer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ByteBuffer.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlButton.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlButton.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlButton.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlButton.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlButton.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlButton.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlButton.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlButton.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlElement.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlElement.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlElement.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlElement.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlElement.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlElement.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlElement.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlElement.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlImage.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlImage.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlImage.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlImage.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlImage.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlImage.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlImage.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlImage.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlInput.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlInput.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlInput.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlInput.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlInput.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlInput.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlInput.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlInput.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlLink.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlLink.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlLink.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlLink.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlLink.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlLink.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlLink.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlLink.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlPageContext.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlPageContext.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlPageContext.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlPageContext.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlPageContext.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlPageContext.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlPageContext.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlPageContext.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlParseOptions.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlParseOptions.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlParseOptions.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlParseOptions.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlParseOptions.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlParseOptions.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlParseOptions.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlParseOptions.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlParser.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlParser.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlParser.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlParser.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlParser.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlParser.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlParser.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlParser.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlSelect.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlSelect.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlSelect.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlSelect.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlSelect.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlSelect.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlSelect.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/HtmlSelect.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/IHtmlObject.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/IHtmlObject.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/IHtmlObject.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/IHtmlObject.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/IHtmlObject.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/IHtmlObject.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/IHtmlObject.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/IHtmlObject.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/IHtmlPageContext.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/IHtmlPageContext.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/IHtmlPageContext.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/IHtmlPageContext.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/IHtmlPageContext.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/IHtmlPageContext.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/IHtmlPageContext.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Html/IHtmlPageContext.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Timers.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Timers.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Timers.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Timers.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Timers.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Timers.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Timers.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/Timers.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ToolSet.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ToolSet.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ToolSet.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ToolSet.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ToolSet.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ToolSet.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ToolSet.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ToolSet.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/UBBParser.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/UBBParser.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/UBBParser.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/UBBParser.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/UBBParser.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/UBBParser.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/UBBParser.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/UBBParser.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XML.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XML.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XML.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XML.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XML.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XML.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XML.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XML.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLIterator.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLIterator.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLIterator.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLIterator.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLIterator.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLIterator.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLIterator.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLIterator.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLList.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLList.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLList.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLList.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLList.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLList.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLList.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLList.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLUtils.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLUtils.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLUtils.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLUtils.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLUtils.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLUtils.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLUtils.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/XMLUtils.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ZipReader.cs b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ZipReader.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ZipReader.cs rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ZipReader.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ZipReader.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ZipReader.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ZipReader.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/FairyGUI/Scripts/Utils/ZipReader.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Other.meta b/Assets/Scripts/NBC/Runtime/Plugins/Other.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Other.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Other.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Other/System.Collections.Immutable.dll b/Assets/Scripts/NBC/Runtime/Plugins/Other/System.Collections.Immutable.dll similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Other/System.Collections.Immutable.dll rename to Assets/Scripts/NBC/Runtime/Plugins/Other/System.Collections.Immutable.dll diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Other/System.Collections.Immutable.dll.meta b/Assets/Scripts/NBC/Runtime/Plugins/Other/System.Collections.Immutable.dll.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Other/System.Collections.Immutable.dll.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Other/System.Collections.Immutable.dll.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Other/System.IO.Pipelines.dll b/Assets/Scripts/NBC/Runtime/Plugins/Other/System.IO.Pipelines.dll similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Other/System.IO.Pipelines.dll rename to Assets/Scripts/NBC/Runtime/Plugins/Other/System.IO.Pipelines.dll diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Other/System.IO.Pipelines.dll.meta b/Assets/Scripts/NBC/Runtime/Plugins/Other/System.IO.Pipelines.dll.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Other/System.IO.Pipelines.dll.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Other/System.IO.Pipelines.dll.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Other/System.Runtime.CompilerServices.Unsafe.dll b/Assets/Scripts/NBC/Runtime/Plugins/Other/System.Runtime.CompilerServices.Unsafe.dll similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Other/System.Runtime.CompilerServices.Unsafe.dll rename to Assets/Scripts/NBC/Runtime/Plugins/Other/System.Runtime.CompilerServices.Unsafe.dll diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Other/System.Runtime.CompilerServices.Unsafe.dll.meta b/Assets/Scripts/NBC/Runtime/Plugins/Other/System.Runtime.CompilerServices.Unsafe.dll.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Other/System.Runtime.CompilerServices.Unsafe.dll.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Other/System.Runtime.CompilerServices.Unsafe.dll.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/BclHelpers.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/BclHelpers.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/BclHelpers.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/BclHelpers.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/BclHelpers.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/BclHelpers.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/BclHelpers.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/BclHelpers.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/BufferExtension.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/BufferExtension.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/BufferExtension.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/BufferExtension.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/BufferExtension.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/BufferExtension.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/BufferExtension.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/BufferExtension.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/BufferPool.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/BufferPool.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/BufferPool.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/BufferPool.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/BufferPool.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/BufferPool.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/BufferPool.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/BufferPool.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/CallbackAttributes.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/CallbackAttributes.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/CallbackAttributes.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/CallbackAttributes.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/CallbackAttributes.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/CallbackAttributes.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/CallbackAttributes.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/CallbackAttributes.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Compiler.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Compiler.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Compiler.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Compiler.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Compiler/CompilerContext.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Compiler/CompilerContext.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Compiler/CompilerContext.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Compiler/CompilerContext.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Compiler/CompilerContext.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Compiler/CompilerContext.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Compiler/CompilerContext.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Compiler/CompilerContext.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Compiler/CompilerDelegates.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Compiler/CompilerDelegates.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Compiler/CompilerDelegates.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Compiler/CompilerDelegates.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Compiler/CompilerDelegates.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Compiler/CompilerDelegates.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Compiler/CompilerDelegates.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Compiler/CompilerDelegates.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Compiler/Local.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Compiler/Local.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Compiler/Local.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Compiler/Local.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Compiler/Local.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Compiler/Local.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Compiler/Local.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Compiler/Local.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/DataFormat.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/DataFormat.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/DataFormat.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/DataFormat.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/DataFormat.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/DataFormat.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/DataFormat.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/DataFormat.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/DiscriminatedUnion.Serializable.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/DiscriminatedUnion.Serializable.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/DiscriminatedUnion.Serializable.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/DiscriminatedUnion.Serializable.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/DiscriminatedUnion.Serializable.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/DiscriminatedUnion.Serializable.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/DiscriminatedUnion.Serializable.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/DiscriminatedUnion.Serializable.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/DiscriminatedUnion.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/DiscriminatedUnion.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/DiscriminatedUnion.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/DiscriminatedUnion.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/DiscriminatedUnion.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/DiscriminatedUnion.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/DiscriminatedUnion.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/DiscriminatedUnion.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Extensible.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Extensible.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Extensible.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Extensible.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Extensible.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Extensible.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Extensible.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Extensible.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ExtensibleUtil.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ExtensibleUtil.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ExtensibleUtil.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ExtensibleUtil.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ExtensibleUtil.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ExtensibleUtil.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ExtensibleUtil.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ExtensibleUtil.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/GlobalSuppressions.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/GlobalSuppressions.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/GlobalSuppressions.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/GlobalSuppressions.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/GlobalSuppressions.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/GlobalSuppressions.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/GlobalSuppressions.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/GlobalSuppressions.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Helpers.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Helpers.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Helpers.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Helpers.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Helpers.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Helpers.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Helpers.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Helpers.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/IExtensible.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/IExtensible.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/IExtensible.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/IExtensible.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/IExtensible.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/IExtensible.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/IExtensible.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/IExtensible.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/IExtension.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/IExtension.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/IExtension.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/IExtension.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/IExtension.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/IExtension.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/IExtension.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/IExtension.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/IProtoInputT.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/IProtoInputT.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/IProtoInputT.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/IProtoInputT.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/IProtoInputT.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/IProtoInputT.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/IProtoInputT.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/IProtoInputT.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/IProtoOutputT.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/IProtoOutputT.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/IProtoOutputT.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/IProtoOutputT.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/IProtoOutputT.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/IProtoOutputT.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/IProtoOutputT.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/IProtoOutputT.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ImplicitFields.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ImplicitFields.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ImplicitFields.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ImplicitFields.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ImplicitFields.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ImplicitFields.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ImplicitFields.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ImplicitFields.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/KeyValuePairProxy.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/KeyValuePairProxy.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/KeyValuePairProxy.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/KeyValuePairProxy.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/KeyValuePairProxy.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/KeyValuePairProxy.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/KeyValuePairProxy.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/KeyValuePairProxy.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/AttributeMap.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/AttributeMap.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/AttributeMap.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/AttributeMap.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/AttributeMap.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/AttributeMap.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/AttributeMap.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/AttributeMap.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/BasicList.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/BasicList.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/BasicList.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/BasicList.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/BasicList.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/BasicList.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/BasicList.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/BasicList.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/CallbackSet.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/CallbackSet.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/CallbackSet.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/CallbackSet.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/CallbackSet.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/CallbackSet.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/CallbackSet.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/CallbackSet.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/MetaType.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/MetaType.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/MetaType.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/MetaType.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/MetaType.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/MetaType.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/MetaType.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/MetaType.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/ProtoSyntax.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/ProtoSyntax.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/ProtoSyntax.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/ProtoSyntax.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/ProtoSyntax.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/ProtoSyntax.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/ProtoSyntax.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/ProtoSyntax.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/RuntimeTypeModel.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/RuntimeTypeModel.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/RuntimeTypeModel.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/RuntimeTypeModel.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/RuntimeTypeModel.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/RuntimeTypeModel.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/RuntimeTypeModel.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/RuntimeTypeModel.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/SubType.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/SubType.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/SubType.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/SubType.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/SubType.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/SubType.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/SubType.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/SubType.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/TypeAddedEventArgs.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/TypeAddedEventArgs.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/TypeAddedEventArgs.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/TypeAddedEventArgs.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/TypeAddedEventArgs.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/TypeAddedEventArgs.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/TypeAddedEventArgs.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/TypeAddedEventArgs.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/TypeFormatEventArgs.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/TypeFormatEventArgs.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/TypeFormatEventArgs.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/TypeFormatEventArgs.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/TypeFormatEventArgs.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/TypeFormatEventArgs.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/TypeFormatEventArgs.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/TypeFormatEventArgs.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/TypeModel.InputOutput.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/TypeModel.InputOutput.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/TypeModel.InputOutput.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/TypeModel.InputOutput.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/TypeModel.InputOutput.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/TypeModel.InputOutput.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/TypeModel.InputOutput.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/TypeModel.InputOutput.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/TypeModel.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/TypeModel.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/TypeModel.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/TypeModel.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/TypeModel.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/TypeModel.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/TypeModel.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/TypeModel.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/ValueMember.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/ValueMember.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/ValueMember.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/ValueMember.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/ValueMember.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/ValueMember.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Meta/ValueMember.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Meta/ValueMember.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/NetObjectCache.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/NetObjectCache.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/NetObjectCache.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/NetObjectCache.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/NetObjectCache.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/NetObjectCache.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/NetObjectCache.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/NetObjectCache.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/PrefixStyle.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/PrefixStyle.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/PrefixStyle.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/PrefixStyle.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/PrefixStyle.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/PrefixStyle.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/PrefixStyle.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/PrefixStyle.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoContractAttribute.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoContractAttribute.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoContractAttribute.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoContractAttribute.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoContractAttribute.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoContractAttribute.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoContractAttribute.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoContractAttribute.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoConverterAttribute.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoConverterAttribute.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoConverterAttribute.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoConverterAttribute.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoConverterAttribute.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoConverterAttribute.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoConverterAttribute.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoConverterAttribute.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoEnumAttribute.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoEnumAttribute.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoEnumAttribute.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoEnumAttribute.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoEnumAttribute.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoEnumAttribute.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoEnumAttribute.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoEnumAttribute.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoException.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoException.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoException.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoException.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoException.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoException.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoException.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoException.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoIgnoreAttribute.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoIgnoreAttribute.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoIgnoreAttribute.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoIgnoreAttribute.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoIgnoreAttribute.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoIgnoreAttribute.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoIgnoreAttribute.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoIgnoreAttribute.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoIncludeAttribute.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoIncludeAttribute.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoIncludeAttribute.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoIncludeAttribute.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoIncludeAttribute.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoIncludeAttribute.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoIncludeAttribute.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoIncludeAttribute.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoMapAttribute.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoMapAttribute.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoMapAttribute.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoMapAttribute.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoMapAttribute.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoMapAttribute.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoMapAttribute.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoMapAttribute.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoMemberAttribute.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoMemberAttribute.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoMemberAttribute.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoMemberAttribute.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoMemberAttribute.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoMemberAttribute.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoMemberAttribute.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoMemberAttribute.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoReader.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoReader.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoReader.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoReader.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoReader.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoReader.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoReader.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoReader.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoWriter.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoWriter.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoWriter.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoWriter.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoWriter.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoWriter.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ProtoWriter.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ProtoWriter.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/SerializationContext.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/SerializationContext.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/SerializationContext.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/SerializationContext.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/SerializationContext.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/SerializationContext.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/SerializationContext.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/SerializationContext.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ArrayDecorator.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ArrayDecorator.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ArrayDecorator.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ArrayDecorator.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ArrayDecorator.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ArrayDecorator.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ArrayDecorator.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ArrayDecorator.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/BlobSerializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/BlobSerializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/BlobSerializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/BlobSerializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/BlobSerializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/BlobSerializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/BlobSerializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/BlobSerializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/BooleanSerializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/BooleanSerializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/BooleanSerializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/BooleanSerializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/BooleanSerializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/BooleanSerializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/BooleanSerializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/BooleanSerializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ByteSerializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ByteSerializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ByteSerializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ByteSerializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ByteSerializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ByteSerializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ByteSerializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ByteSerializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/CharSerializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/CharSerializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/CharSerializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/CharSerializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/CharSerializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/CharSerializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/CharSerializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/CharSerializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/CompiledSerializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/CompiledSerializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/CompiledSerializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/CompiledSerializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/CompiledSerializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/CompiledSerializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/CompiledSerializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/CompiledSerializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/DateTimeSerializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/DateTimeSerializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/DateTimeSerializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/DateTimeSerializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/DateTimeSerializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/DateTimeSerializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/DateTimeSerializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/DateTimeSerializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/DecimalSerializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/DecimalSerializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/DecimalSerializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/DecimalSerializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/DecimalSerializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/DecimalSerializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/DecimalSerializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/DecimalSerializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/DefaultValueDecorator.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/DefaultValueDecorator.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/DefaultValueDecorator.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/DefaultValueDecorator.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/DefaultValueDecorator.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/DefaultValueDecorator.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/DefaultValueDecorator.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/DefaultValueDecorator.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/DoubleSerializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/DoubleSerializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/DoubleSerializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/DoubleSerializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/DoubleSerializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/DoubleSerializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/DoubleSerializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/DoubleSerializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/EnumSerializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/EnumSerializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/EnumSerializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/EnumSerializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/EnumSerializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/EnumSerializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/EnumSerializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/EnumSerializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/FieldDecorator.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/FieldDecorator.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/FieldDecorator.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/FieldDecorator.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/FieldDecorator.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/FieldDecorator.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/FieldDecorator.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/FieldDecorator.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/GuidSerializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/GuidSerializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/GuidSerializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/GuidSerializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/GuidSerializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/GuidSerializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/GuidSerializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/GuidSerializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/IProtoSerializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/IProtoSerializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/IProtoSerializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/IProtoSerializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/IProtoSerializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/IProtoSerializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/IProtoSerializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/IProtoSerializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/IProtoTypeSerializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/IProtoTypeSerializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/IProtoTypeSerializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/IProtoTypeSerializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/IProtoTypeSerializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/IProtoTypeSerializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/IProtoTypeSerializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/IProtoTypeSerializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ISerializerProxy.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ISerializerProxy.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ISerializerProxy.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ISerializerProxy.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ISerializerProxy.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ISerializerProxy.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ISerializerProxy.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ISerializerProxy.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ImmutableCollectionDecorator.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ImmutableCollectionDecorator.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ImmutableCollectionDecorator.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ImmutableCollectionDecorator.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ImmutableCollectionDecorator.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ImmutableCollectionDecorator.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ImmutableCollectionDecorator.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ImmutableCollectionDecorator.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/Int16Serializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/Int16Serializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/Int16Serializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/Int16Serializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/Int16Serializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/Int16Serializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/Int16Serializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/Int16Serializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/Int32Serializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/Int32Serializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/Int32Serializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/Int32Serializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/Int32Serializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/Int32Serializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/Int32Serializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/Int32Serializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/Int64Serializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/Int64Serializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/Int64Serializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/Int64Serializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/Int64Serializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/Int64Serializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/Int64Serializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/Int64Serializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ListDecorator.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ListDecorator.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ListDecorator.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ListDecorator.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ListDecorator.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ListDecorator.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ListDecorator.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ListDecorator.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/MapDecorator.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/MapDecorator.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/MapDecorator.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/MapDecorator.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/MapDecorator.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/MapDecorator.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/MapDecorator.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/MapDecorator.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/MemberSpecifiedDecorator.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/MemberSpecifiedDecorator.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/MemberSpecifiedDecorator.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/MemberSpecifiedDecorator.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/MemberSpecifiedDecorator.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/MemberSpecifiedDecorator.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/MemberSpecifiedDecorator.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/MemberSpecifiedDecorator.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/NetObjectSerializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/NetObjectSerializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/NetObjectSerializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/NetObjectSerializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/NetObjectSerializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/NetObjectSerializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/NetObjectSerializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/NetObjectSerializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/NullDecorator.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/NullDecorator.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/NullDecorator.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/NullDecorator.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/NullDecorator.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/NullDecorator.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/NullDecorator.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/NullDecorator.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ParseableSerializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ParseableSerializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ParseableSerializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ParseableSerializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ParseableSerializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ParseableSerializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ParseableSerializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ParseableSerializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/PropertyDecorator.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/PropertyDecorator.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/PropertyDecorator.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/PropertyDecorator.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/PropertyDecorator.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/PropertyDecorator.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/PropertyDecorator.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/PropertyDecorator.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ProtoDecoratorBase.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ProtoDecoratorBase.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ProtoDecoratorBase.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ProtoDecoratorBase.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ProtoDecoratorBase.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ProtoDecoratorBase.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ProtoDecoratorBase.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ProtoDecoratorBase.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ReflectedUriDecorator.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ReflectedUriDecorator.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ReflectedUriDecorator.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ReflectedUriDecorator.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ReflectedUriDecorator.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ReflectedUriDecorator.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/ReflectedUriDecorator.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/ReflectedUriDecorator.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/SByteSerializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/SByteSerializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/SByteSerializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/SByteSerializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/SByteSerializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/SByteSerializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/SByteSerializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/SByteSerializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/SingleSerializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/SingleSerializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/SingleSerializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/SingleSerializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/SingleSerializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/SingleSerializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/SingleSerializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/SingleSerializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/StringSerializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/StringSerializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/StringSerializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/StringSerializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/StringSerializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/StringSerializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/StringSerializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/StringSerializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/SubItemSerializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/SubItemSerializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/SubItemSerializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/SubItemSerializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/SubItemSerializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/SubItemSerializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/SubItemSerializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/SubItemSerializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/SurrogateSerializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/SurrogateSerializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/SurrogateSerializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/SurrogateSerializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/SurrogateSerializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/SurrogateSerializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/SurrogateSerializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/SurrogateSerializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/SystemTypeSerializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/SystemTypeSerializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/SystemTypeSerializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/SystemTypeSerializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/SystemTypeSerializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/SystemTypeSerializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/SystemTypeSerializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/SystemTypeSerializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/TagDecorator.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/TagDecorator.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/TagDecorator.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/TagDecorator.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/TagDecorator.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/TagDecorator.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/TagDecorator.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/TagDecorator.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/TimeSpanSerializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/TimeSpanSerializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/TimeSpanSerializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/TimeSpanSerializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/TimeSpanSerializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/TimeSpanSerializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/TimeSpanSerializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/TimeSpanSerializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/TupleSerializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/TupleSerializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/TupleSerializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/TupleSerializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/TupleSerializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/TupleSerializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/TupleSerializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/TupleSerializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/TypeSerializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/TypeSerializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/TypeSerializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/TypeSerializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/TypeSerializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/TypeSerializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/TypeSerializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/TypeSerializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/UInt16Serializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/UInt16Serializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/UInt16Serializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/UInt16Serializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/UInt16Serializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/UInt16Serializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/UInt16Serializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/UInt16Serializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/UInt32Serializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/UInt32Serializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/UInt32Serializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/UInt32Serializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/UInt32Serializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/UInt32Serializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/UInt32Serializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/UInt32Serializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/UInt64Serializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/UInt64Serializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/UInt64Serializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/UInt64Serializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/UInt64Serializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/UInt64Serializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/UInt64Serializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/UInt64Serializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/UriDecorator.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/UriDecorator.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/UriDecorator.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/UriDecorator.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/UriDecorator.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/UriDecorator.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/Serializers/UriDecorator.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/Serializers/UriDecorator.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ServiceModel.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ServiceModel.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ServiceModel.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ServiceModel.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoBehaviorAttribute.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoBehaviorAttribute.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoBehaviorAttribute.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoBehaviorAttribute.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoBehaviorAttribute.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoBehaviorAttribute.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoBehaviorAttribute.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoBehaviorAttribute.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoBehaviorExtensionElement.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoBehaviorExtensionElement.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoBehaviorExtensionElement.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoBehaviorExtensionElement.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoBehaviorExtensionElement.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoBehaviorExtensionElement.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoBehaviorExtensionElement.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoBehaviorExtensionElement.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoEndpointBehavior.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoEndpointBehavior.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoEndpointBehavior.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoEndpointBehavior.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoEndpointBehavior.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoEndpointBehavior.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoEndpointBehavior.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoEndpointBehavior.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoOperationBehavior.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoOperationBehavior.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoOperationBehavior.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoOperationBehavior.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoOperationBehavior.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoOperationBehavior.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoOperationBehavior.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ServiceModel/ProtoOperationBehavior.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ServiceModel/XmlProtoSerializer.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ServiceModel/XmlProtoSerializer.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ServiceModel/XmlProtoSerializer.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ServiceModel/XmlProtoSerializer.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ServiceModel/XmlProtoSerializer.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ServiceModel/XmlProtoSerializer.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/ServiceModel/XmlProtoSerializer.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/ServiceModel/XmlProtoSerializer.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/SubItemToken.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/SubItemToken.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/SubItemToken.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/SubItemToken.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/SubItemToken.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/SubItemToken.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/SubItemToken.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/SubItemToken.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/WireType.cs b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/WireType.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/WireType.cs rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/WireType.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/WireType.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/WireType.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/WireType.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/WireType.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/protobuf-net.csproj b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/protobuf-net.csproj similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/protobuf-net.csproj rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/protobuf-net.csproj diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/protobuf-net.csproj.meta b/Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/protobuf-net.csproj.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/Protobuf-net/protobuf-net.csproj.meta rename to Assets/Scripts/NBC/Runtime/Plugins/Protobuf-net/protobuf-net.csproj.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket.meta b/Assets/Scripts/NBC/Runtime/Plugins/WSocket.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket.meta rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core.meta b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core.meta rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/CloseEventArgs.cs b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/CloseEventArgs.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/CloseEventArgs.cs rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/CloseEventArgs.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/CloseEventArgs.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/CloseEventArgs.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/CloseEventArgs.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/CloseEventArgs.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/CloseStatusCode.cs b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/CloseStatusCode.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/CloseStatusCode.cs rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/CloseStatusCode.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/CloseStatusCode.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/CloseStatusCode.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/CloseStatusCode.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/CloseStatusCode.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/ErrorEventArgs.cs b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/ErrorEventArgs.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/ErrorEventArgs.cs rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/ErrorEventArgs.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/ErrorEventArgs.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/ErrorEventArgs.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/ErrorEventArgs.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/ErrorEventArgs.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/IWebSocket.cs b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/IWebSocket.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/IWebSocket.cs rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/IWebSocket.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/IWebSocket.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/IWebSocket.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/IWebSocket.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/IWebSocket.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/MessageEventArgs.cs b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/MessageEventArgs.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/MessageEventArgs.cs rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/MessageEventArgs.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/MessageEventArgs.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/MessageEventArgs.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/MessageEventArgs.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/MessageEventArgs.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/Opcode.cs b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/Opcode.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/Opcode.cs rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/Opcode.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/Opcode.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/Opcode.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/Opcode.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/Opcode.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/OpenEventArgs.cs b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/OpenEventArgs.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/OpenEventArgs.cs rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/OpenEventArgs.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/OpenEventArgs.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/OpenEventArgs.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/OpenEventArgs.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/OpenEventArgs.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/Settings.cs b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/Settings.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/Settings.cs rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/Settings.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/Settings.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/Settings.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/Settings.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/Settings.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/WebSocketState.cs b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/WebSocketState.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/WebSocketState.cs rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/WebSocketState.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/WebSocketState.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/WebSocketState.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Core/WebSocketState.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Core/WebSocketState.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Implementation.meta b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Implementation.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Implementation.meta rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Implementation.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Implementation/NoWebGL.meta b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Implementation/NoWebGL.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Implementation/NoWebGL.meta rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Implementation/NoWebGL.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Implementation/NoWebGL/WebSocket.cs b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Implementation/NoWebGL/WebSocket.cs similarity index 98% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Implementation/NoWebGL/WebSocket.cs rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Implementation/NoWebGL/WebSocket.cs index 0f980f626..305473450 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Implementation/NoWebGL/WebSocket.cs +++ b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Implementation/NoWebGL/WebSocket.cs @@ -96,10 +96,14 @@ namespace UnityWebSocket public void CloseAsync() { - if (!isOpening) return; + if (!isOpening) + { + return; + } + closeProcessing = true; } - + public void SendAsync(byte[] data, int offset, int len) { if (!isOpening) return; @@ -183,10 +187,11 @@ namespace UnityWebSocket while (!closeProcessing && sendQueue.Count > 0 && sendQueue.TryDequeue(out var buffer)) { Log($"Send, type: {buffer.type}, size: {buffer.data.Length}, queue left: {sendQueue.Count}"); - await socket.SendAsync(new ArraySegment(buffer.data, buffer.offset, buffer.len), buffer.type, true, cts.Token); + await socket.SendAsync(new ArraySegment(buffer.data,buffer.offset, buffer.len), buffer.type, true, cts.Token); } Thread.Sleep(3); } + if (closeProcessing && socket != null && cts != null && !cts.IsCancellationRequested) { CleanSendQueue(); diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Implementation/NoWebGL/WebSocket.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Implementation/NoWebGL/WebSocket.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Implementation/NoWebGL/WebSocket.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Implementation/NoWebGL/WebSocket.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Implementation/NoWebGL/WebSocketManager.cs b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Implementation/NoWebGL/WebSocketManager.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Implementation/NoWebGL/WebSocketManager.cs rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Implementation/NoWebGL/WebSocketManager.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Implementation/NoWebGL/WebSocketManager.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Implementation/NoWebGL/WebSocketManager.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Implementation/NoWebGL/WebSocketManager.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Implementation/NoWebGL/WebSocketManager.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Implementation/WebGL.meta b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Implementation/WebGL.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Implementation/WebGL.meta rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Implementation/WebGL.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Implementation/WebGL/WebSocket.cs b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Implementation/WebGL/WebSocket.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Implementation/WebGL/WebSocket.cs rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Implementation/WebGL/WebSocket.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Implementation/WebGL/WebSocket.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Implementation/WebGL/WebSocket.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Implementation/WebGL/WebSocket.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Implementation/WebGL/WebSocket.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Implementation/WebGL/WebSocketManager.cs b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Implementation/WebGL/WebSocketManager.cs similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Implementation/WebGL/WebSocketManager.cs rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Implementation/WebGL/WebSocketManager.cs diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Implementation/WebGL/WebSocketManager.cs.meta b/Assets/Scripts/NBC/Runtime/Plugins/WSocket/Implementation/WebGL/WebSocketManager.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WSocket/Implementation/WebGL/WebSocketManager.cs.meta rename to Assets/Scripts/NBC/Runtime/Plugins/WSocket/Implementation/WebGL/WebSocketManager.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WebGL.meta b/Assets/Scripts/NBC/Runtime/Plugins/WebGL.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WebGL.meta rename to Assets/Scripts/NBC/Runtime/Plugins/WebGL.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WebGL/WebSocket.jslib b/Assets/Scripts/NBC/Runtime/Plugins/WebGL/WebSocket.jslib similarity index 99% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WebGL/WebSocket.jslib rename to Assets/Scripts/NBC/Runtime/Plugins/WebGL/WebSocket.jslib index 18460ecb5..e669cd3d1 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WebGL/WebSocket.jslib +++ b/Assets/Scripts/NBC/Runtime/Plugins/WebGL/WebSocket.jslib @@ -336,7 +336,6 @@ var WebSocketLibrary = * * @param instanceId Instance ID * @param bufferPtr Pointer to the message buffer - * @param offset The offset of the message in the buffer * @param length Length of the message in the buffer */ WebSocketSend: function(instanceId, bufferPtr, offset, length) diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WebGL/WebSocket.jslib.meta b/Assets/Scripts/NBC/Runtime/Plugins/WebGL/WebSocket.jslib.meta similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins/WebGL/WebSocket.jslib.meta rename to Assets/Scripts/NBC/Runtime/Plugins/WebGL/WebSocket.jslib.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI.meta b/Assets/Scripts/NBC/Runtime/UI.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI.meta rename to Assets/Scripts/NBC/Runtime/UI.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/Attributes.meta b/Assets/Scripts/NBC/Runtime/UI/Attributes.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/Attributes.meta rename to Assets/Scripts/NBC/Runtime/UI/Attributes.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/Attributes/AutoFindAttribute.cs b/Assets/Scripts/NBC/Runtime/UI/Attributes/AutoFindAttribute.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/Attributes/AutoFindAttribute.cs rename to Assets/Scripts/NBC/Runtime/UI/Attributes/AutoFindAttribute.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/Attributes/AutoFindAttribute.cs.meta b/Assets/Scripts/NBC/Runtime/UI/Attributes/AutoFindAttribute.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/Attributes/AutoFindAttribute.cs.meta rename to Assets/Scripts/NBC/Runtime/UI/Attributes/AutoFindAttribute.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/Component.meta b/Assets/Scripts/NBC/Runtime/UI/Component.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/Component.meta rename to Assets/Scripts/NBC/Runtime/UI/Component.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/Component/UIPanel.cs b/Assets/Scripts/NBC/Runtime/UI/Component/UIPanel.cs similarity index 99% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/Component/UIPanel.cs rename to Assets/Scripts/NBC/Runtime/UI/Component/UIPanel.cs index f7f869dd9..9630b7f9a 100644 --- a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/Component/UIPanel.cs +++ b/Assets/Scripts/NBC/Runtime/UI/Component/UIPanel.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using FairyGUI; -using NBC.Async; using NBC.Entitas; using NBC.Event; using UnityEngine; diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/Component/UIPanel.cs.meta b/Assets/Scripts/NBC/Runtime/UI/Component/UIPanel.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/Component/UIPanel.cs.meta rename to Assets/Scripts/NBC/Runtime/UI/Component/UIPanel.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/Const.meta b/Assets/Scripts/NBC/Runtime/UI/Const.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/Const.meta rename to Assets/Scripts/NBC/Runtime/UI/Const.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/Const/UIConst.cs b/Assets/Scripts/NBC/Runtime/UI/Const/UIConst.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/Const/UIConst.cs rename to Assets/Scripts/NBC/Runtime/UI/Const/UIConst.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/Const/UIConst.cs.meta b/Assets/Scripts/NBC/Runtime/UI/Const/UIConst.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/Const/UIConst.cs.meta rename to Assets/Scripts/NBC/Runtime/UI/Const/UIConst.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/Const/UIEvents.cs b/Assets/Scripts/NBC/Runtime/UI/Const/UIEvents.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/Const/UIEvents.cs rename to Assets/Scripts/NBC/Runtime/UI/Const/UIEvents.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/Const/UIEvents.cs.meta b/Assets/Scripts/NBC/Runtime/UI/Const/UIEvents.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/Const/UIEvents.cs.meta rename to Assets/Scripts/NBC/Runtime/UI/Const/UIEvents.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/Event.meta b/Assets/Scripts/NBC/Runtime/UI/Event.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/Event.meta rename to Assets/Scripts/NBC/Runtime/UI/Event.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/Event/UIEvent.cs b/Assets/Scripts/NBC/Runtime/UI/Event/UIEvent.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/Event/UIEvent.cs rename to Assets/Scripts/NBC/Runtime/UI/Event/UIEvent.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/Event/UIEvent.cs.meta b/Assets/Scripts/NBC/Runtime/UI/Event/UIEvent.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/Event/UIEvent.cs.meta rename to Assets/Scripts/NBC/Runtime/UI/Event/UIEvent.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/Extension.meta b/Assets/Scripts/NBC/Runtime/UI/Extension.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/Extension.meta rename to Assets/Scripts/NBC/Runtime/UI/Extension.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/Extension/UIAnimExtension.cs b/Assets/Scripts/NBC/Runtime/UI/Extension/UIAnimExtension.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/Extension/UIAnimExtension.cs rename to Assets/Scripts/NBC/Runtime/UI/Extension/UIAnimExtension.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/Extension/UIAnimExtension.cs.meta b/Assets/Scripts/NBC/Runtime/UI/Extension/UIAnimExtension.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/Extension/UIAnimExtension.cs.meta rename to Assets/Scripts/NBC/Runtime/UI/Extension/UIAnimExtension.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/Extension/UIExtension.cs b/Assets/Scripts/NBC/Runtime/UI/Extension/UIExtension.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/Extension/UIExtension.cs rename to Assets/Scripts/NBC/Runtime/UI/Extension/UIExtension.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/Extension/UIExtension.cs.meta b/Assets/Scripts/NBC/Runtime/UI/Extension/UIExtension.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/Extension/UIExtension.cs.meta rename to Assets/Scripts/NBC/Runtime/UI/Extension/UIExtension.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/Interfaces.meta b/Assets/Scripts/NBC/Runtime/UI/Interfaces.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/Interfaces.meta rename to Assets/Scripts/NBC/Runtime/UI/Interfaces.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/Interfaces/IBind.cs b/Assets/Scripts/NBC/Runtime/UI/Interfaces/IBind.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/Interfaces/IBind.cs rename to Assets/Scripts/NBC/Runtime/UI/Interfaces/IBind.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/Interfaces/IBind.cs.meta b/Assets/Scripts/NBC/Runtime/UI/Interfaces/IBind.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/Interfaces/IBind.cs.meta rename to Assets/Scripts/NBC/Runtime/UI/Interfaces/IBind.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/UIComponent.cs b/Assets/Scripts/NBC/Runtime/UI/UIComponent.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/UIComponent.cs rename to Assets/Scripts/NBC/Runtime/UI/UIComponent.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/UIComponent.cs.meta b/Assets/Scripts/NBC/Runtime/UI/UIComponent.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/UIComponent.cs.meta rename to Assets/Scripts/NBC/Runtime/UI/UIComponent.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/UILanguage.meta b/Assets/Scripts/NBC/Runtime/UI/UILanguage.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/UILanguage.meta rename to Assets/Scripts/NBC/Runtime/UI/UILanguage.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/UILanguage/UIComponentLanguagePack.cs b/Assets/Scripts/NBC/Runtime/UI/UILanguage/UIComponentLanguagePack.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/UILanguage/UIComponentLanguagePack.cs rename to Assets/Scripts/NBC/Runtime/UI/UILanguage/UIComponentLanguagePack.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/UILanguage/UIComponentLanguagePack.cs.meta b/Assets/Scripts/NBC/Runtime/UI/UILanguage/UIComponentLanguagePack.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/UILanguage/UIComponentLanguagePack.cs.meta rename to Assets/Scripts/NBC/Runtime/UI/UILanguage/UIComponentLanguagePack.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/UILanguage/UILanguage.cs b/Assets/Scripts/NBC/Runtime/UI/UILanguage/UILanguage.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/UILanguage/UILanguage.cs rename to Assets/Scripts/NBC/Runtime/UI/UILanguage/UILanguage.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/UILanguage/UILanguage.cs.meta b/Assets/Scripts/NBC/Runtime/UI/UILanguage/UILanguage.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/UILanguage/UILanguage.cs.meta rename to Assets/Scripts/NBC/Runtime/UI/UILanguage/UILanguage.cs.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/Utils.meta b/Assets/Scripts/NBC/Runtime/UI/Utils.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/Utils.meta rename to Assets/Scripts/NBC/Runtime/UI/Utils.meta diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/Utils/UIRunner.cs b/Assets/Scripts/NBC/Runtime/UI/Utils/UIRunner.cs similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/Utils/UIRunner.cs rename to Assets/Scripts/NBC/Runtime/UI/Utils/UIRunner.cs diff --git a/Assets/Scripts/ThirdParty/NBC/Runtime/UI/Utils/UIRunner.cs.meta b/Assets/Scripts/NBC/Runtime/UI/Utils/UIRunner.cs.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/Runtime/UI/Utils/UIRunner.cs.meta rename to Assets/Scripts/NBC/Runtime/UI/Utils/UIRunner.cs.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/csc.rsp b/Assets/Scripts/NBC/Runtime/csc.rsp similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/csc.rsp rename to Assets/Scripts/NBC/Runtime/csc.rsp diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/csc.rsp.meta b/Assets/Scripts/NBC/Runtime/csc.rsp.meta similarity index 74% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/csc.rsp.meta rename to Assets/Scripts/NBC/Runtime/csc.rsp.meta index bb98999cb..37b5f8eba 100644 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/csc.rsp.meta +++ b/Assets/Scripts/NBC/Runtime/csc.rsp.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d0521d112aa5ff94c882a03606308556 +guid: 839059bf7dc694c46b95d545f4de03c9 DefaultImporter: externalObjects: {} userData: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/package.json b/Assets/Scripts/NBC/package.json similarity index 100% rename from Assets/Scripts/ThirdParty/Fantasy.Unity/package.json rename to Assets/Scripts/NBC/package.json diff --git a/Assets/Scripts/ThirdParty/NBC/package.json.meta b/Assets/Scripts/NBC/package.json.meta similarity index 100% rename from Assets/Scripts/ThirdParty/NBC/package.json.meta rename to Assets/Scripts/NBC/package.json.meta diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/.gitattributes b/Assets/Scripts/ThirdParty/Fantasy.Unity/.gitattributes deleted file mode 100644 index 6b7f552a8..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/.gitattributes +++ /dev/null @@ -1,11 +0,0 @@ -# Unity YAML 文件使用 LF 换行符 -*.meta text eol=lf -*.asmdef text eol=lf -*.unity text eol=lf -*.prefab text eol=lf -*.mat text eol=lf -*.asset text eol=lf -*.json text eol=lf - -# Source Generator DLL 是二进制文件 -*.dll binary diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Fantasy.Editor.asmdef b/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Fantasy.Editor.asmdef deleted file mode 100644 index b6ddabbb6..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Fantasy.Editor.asmdef +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "Fantasy.Editor", - "rootNamespace": "", - "references": [ - "GUID:0b7224b83ba514121aa026f3857f820a" - ], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [], - "versionDefines": [], - "noEngineReferences": false -} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Fantasy.Editor.asmdef.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Fantasy.Editor.asmdef.meta deleted file mode 100644 index f4034842a..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Fantasy.Editor.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: b5d7370e11934b547a4e8dac960ea72e -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings/FantasySettingsProvider.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings/FantasySettingsProvider.cs deleted file mode 100644 index 10385c7a6..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Editor/Runtime/Settings/FantasySettingsProvider.cs +++ /dev/null @@ -1,725 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Reflection; -using UnityEditor; -using UnityEngine; -using UnityEngine.UIElements; - -namespace Fantasy -{ - public class FantasySettingsProvider : SettingsProvider - { - private SerializedObject _serializedObject; - private SerializedProperty _autoCopyAssembly; - private SerializedProperty _hotUpdatePath; - private SerializedProperty _hotUpdateAssemblyDefinitions; - private SerializedProperty _linkAssemblyDefinitions; - private SerializedProperty _includeAssembly; - private bool _showLinkXmlConfig = true; // 控制是否显示 Link.xml 配置 - public FantasySettingsProvider() : base("Project/Fantasy Settings", SettingsScope.Project) { } - - public override void OnActivate(string searchContext, VisualElement rootElement) - { - Init(); - base.OnActivate(searchContext, rootElement); - } - - public override void OnDeactivate() - { - base.OnDeactivate(); - FantasySettingsScriptableObject.Save(); - } - - private void Init() - { - _serializedObject?.Dispose(); - _serializedObject = new SerializedObject(FantasySettingsScriptableObject.Instance); - _autoCopyAssembly = _serializedObject.FindProperty("autoCopyAssembly"); - _hotUpdatePath = _serializedObject.FindProperty("hotUpdatePath"); - _hotUpdateAssemblyDefinitions = _serializedObject.FindProperty("hotUpdateAssemblyDefinitions"); - _linkAssemblyDefinitions = _serializedObject.FindProperty("linkAssemblyDefinitions"); - _includeAssembly = _serializedObject.FindProperty("includeAssembly"); - } - - public override void OnGUI(string searchContext) - { - if (_serializedObject == null || !_serializedObject.targetObject) - { - Init(); - } - - using (CreateSettingsWindowGUIScope()) - { - _serializedObject!.Update(); - - // ============ Fantasy 框架集成检测 ============ - DrawCscRspInstallationSection(); - DrawSectionDivider(); - EditorGUILayout.Space(10); - // ============ 程序集自动拷贝设置 ============ - EditorGUI.BeginChangeCheck(); - DrawAssemblyCopySection(); - DrawSectionDivider(); - // ============ Link.xml 生成设置 ============ - DrawLinkXmlSection(); - - if (EditorGUI.EndChangeCheck()) - { - _serializedObject.ApplyModifiedProperties(); - FantasySettingsScriptableObject.Save(); - EditorApplication.RepaintHierarchyWindow(); - } - - base.OnGUI(searchContext); - } - } - - private IDisposable CreateSettingsWindowGUIScope() - { - var unityEditorAssembly = System.Reflection.Assembly.GetAssembly(typeof(EditorWindow)); - var type = unityEditorAssembly.GetType("UnityEditor.SettingsWindow+GUIScope"); - return Activator.CreateInstance(type) as IDisposable; - } - - /// - /// 绘制 csc.rsp 安装状态区域 - /// - private void DrawCscRspInstallationSection() - { - bool isInstalled = CheckCscRspStatus(out bool fileExists, out bool hasDefine); - - // 状态框 - if (isInstalled) - { - // 已安装 - 绿色背景框 - GUIStyle boxStyle = new GUIStyle(GUI.skin.box) - { - padding = new RectOffset(10, 10, 10, 10), - margin = new RectOffset(0, 0, 5, 5) - }; - - Color originalColor = GUI.color; - GUI.color = new Color(0.7f, 1f, 0.7f); // 绿色背景 - - EditorGUILayout.BeginVertical(boxStyle); - GUI.color = originalColor; - - GUIStyle installedButtonStyle = new GUIStyle(GUI.skin.button) - { - fontSize = 13, - fontStyle = FontStyle.Bold, - fixedHeight = 35 - }; - - Color originalBgColor = GUI.backgroundColor; - GUI.backgroundColor = new Color(0.3f, 0.8f, 0.3f); // 绿色 - GUI.enabled = false; // 禁用按钮,只显示状态 - GUILayout.Button("✓ FANTASY_UNITY 已安装", installedButtonStyle); - GUI.enabled = true; - GUI.backgroundColor = originalBgColor; - - EditorGUILayout.Space(3); - EditorGUILayout.HelpBox("编译器配置正确,框架功能已启用", MessageType.Info); - - EditorGUILayout.EndVertical(); - } - else - { - // 未安装 - 橙黄色背景框 - GUIStyle boxStyle = new GUIStyle(GUI.skin.box) - { - padding = new RectOffset(10, 10, 10, 10), - margin = new RectOffset(0, 0, 5, 5) - }; - - Color originalColor = GUI.color; - GUI.color = Color.red; // 橙黄色背景 - - EditorGUILayout.BeginVertical(boxStyle); - GUI.color = originalColor; - - EditorGUILayout.Space(8); - - // 醒目的大按钮 - GUIStyle buttonStyle = new GUIStyle(GUI.skin.button) - { - fontSize = 13, - fontStyle = FontStyle.Bold, - fixedHeight = 35 - }; - - Color originalBgColor = GUI.backgroundColor; - GUI.backgroundColor = new Color(0.3f, 0.8f, 1f); - if (GUILayout.Button("点击安装 FANTASY_UNITY", buttonStyle)) - { - InstallFantasyUnityDefine(); - } - GUI.backgroundColor = originalBgColor; - - EditorGUILayout.Space(3); - EditorGUILayout.HelpBox("安装后可能需要重新编译项目才能生效", MessageType.Info); - - EditorGUILayout.EndVertical(); - } - } - - /// - /// 检测 csc.rsp 文件状态 - /// - /// 文件是否存在 - /// 是否包含 FANTASY_UNITY 定义 - /// 是否已正确安装 - private bool CheckCscRspStatus(out bool fileExists, out bool hasDefine) - { - string cscRspPath = Path.Combine(Application.dataPath, "csc.rsp"); - fileExists = File.Exists(cscRspPath); - hasDefine = false; - - if (fileExists) - { - string content = File.ReadAllText(cscRspPath); - // 使用正则表达式精确匹配 FANTASY_UNITY(确保是完整的单词,不是其他定义的一部分) - // 匹配条件:FANTASY_UNITY 后面是分号、空白字符、换行或文件结束 - hasDefine = System.Text.RegularExpressions.Regex.IsMatch( - content, - @"\bFANTASY_UNITY\b" - ); - } - - return fileExists && hasDefine; - } - - /// - /// 安装 FANTASY_UNITY 定义到 csc.rsp 文件 - /// - private void InstallFantasyUnityDefine() - { - string cscRspPath = Path.Combine(Application.dataPath, "csc.rsp"); - - try - { - if (!File.Exists(cscRspPath)) - { - // 创建新文件 - File.WriteAllText(cscRspPath, "-define:FANTASY_UNITY\n"); - } - else - { - // 读取现有内容 - string content = File.ReadAllText(cscRspPath); - - // 使用正则表达式精确检测,避免误判(例如 FANTASY_UNITY123) - bool hasFantasyUnity = System.Text.RegularExpressions.Regex.IsMatch( - content, - @"\bFANTASY_UNITY\b" - ); - - if (!hasFantasyUnity) - { - // 查找是否已有 -define: 行 - string[] lines = content.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); - bool defineLineFound = false; - - for (int i = 0; i < lines.Length; i++) - { - if (lines[i].TrimStart().StartsWith("-define:")) - { - // 添加到现有的 define 行 - if (lines[i].EndsWith(";")) - { - lines[i] = lines[i] + "FANTASY_UNITY"; - } - else - { - lines[i] = lines[i] + ";FANTASY_UNITY"; - } - defineLineFound = true; - break; - } - } - - if (defineLineFound) - { - content = string.Join("\n", lines) + "\n"; - } - else - { - // 添加新的 define 行到文件开头 - content = "-define:FANTASY_UNITY\n" + content; - } - - File.WriteAllText(cscRspPath, content); - } - } - - AssetDatabase.Refresh(); - EditorUtility.DisplayDialog("成功", "FANTASY_UNITY 已经安装成功。\n\n重新编译后生效。", "确定"); - } - catch (Exception ex) - { - Debug.LogError($"安装 FANTASY_UNITY 失败: {ex.Message}"); - EditorUtility.DisplayDialog("错误", $"安装失败:\n{ex.Message}", "确定"); - } - } - - /// - /// 绘制分隔线 - /// - private void DrawSectionDivider() - { - EditorGUILayout.Space(5); - - Rect rect = EditorGUILayout.GetControlRect(false, 1); - rect.height = 1; - - // 绘制细线 - EditorGUI.DrawRect(rect, new Color(0.5f, 0.5f, 0.5f, 0.3f)); - - EditorGUILayout.Space(5); - } - - /// - /// 绘制程序集自动拷贝设置区域 - /// - private void DrawAssemblyCopySection() - { - // 标题 - GUIStyle titleStyle = new GUIStyle(EditorStyles.boldLabel) - { - fontSize = 14, - alignment = TextAnchor.MiddleLeft - }; - EditorGUILayout.LabelField("程序集自动拷贝", titleStyle); - EditorGUILayout.Space(5); - - // 功能说明 - GUIStyle descStyle = new GUIStyle(EditorStyles.wordWrappedLabel) - { - fontSize = 11, - normal = { textColor = Color.gray } - }; - EditorGUILayout.LabelField("Unity 编译后自动将指定的程序集文件(DLL + PDB)复制到目标目录,用于热更新或其他用途", descStyle); - EditorGUILayout.Space(8); - - // 主开关区域 - GUIStyle boxStyle = new GUIStyle(GUI.skin.box) - { - padding = new RectOffset(12, 12, 12, 12), - margin = new RectOffset(0, 0, 0, 8) - }; - - EditorGUILayout.BeginVertical(boxStyle); - - // 开关 - 更大更明显 - EditorGUILayout.BeginHorizontal(); - - GUIStyle bigToggleStyle = new GUIStyle(EditorStyles.boldLabel) - { - fontSize = 13 - }; - - bool newValue = EditorGUILayout.ToggleLeft("启用自动拷贝", _autoCopyAssembly.boolValue, bigToggleStyle); - - if (newValue != _autoCopyAssembly.boolValue) - { - _autoCopyAssembly.boolValue = newValue; - } - - GUILayout.FlexibleSpace(); - - if (_autoCopyAssembly.boolValue) - { - GUIStyle statusLabel = new GUIStyle(EditorStyles.miniLabel) - { - fontSize = 11, - normal = { textColor = new Color(0f, 0.6f, 0f) } - }; - EditorGUILayout.LabelField("● 已启用", statusLabel, GUILayout.Width(60)); - } - else - { - GUIStyle statusLabel = new GUIStyle(EditorStyles.miniLabel) - { - fontSize = 11, - normal = { textColor = Color.gray } - }; - EditorGUILayout.LabelField("○ 已禁用", statusLabel, GUILayout.Width(60)); - } - EditorGUILayout.EndHorizontal(); - - // 如果启用了自动拷贝,显示详细配置 - if (_autoCopyAssembly.boolValue) - { - EditorGUILayout.Space(15); - - // 步骤 1:设置输出目录 - DrawStepHeader("1", "设置输出目录"); - EditorGUILayout.BeginHorizontal(); - EditorGUILayout.PropertyField(_hotUpdatePath, GUIContent.none); - if (GUILayout.Button("选择文件夹", GUILayout.Width(80))) - { - string path = EditorUtility.OpenFolderPanel("选择程序集输出目录", _hotUpdatePath.stringValue, ""); - if (!string.IsNullOrEmpty(path)) - { - _hotUpdatePath.stringValue = path; - } - } - EditorGUILayout.EndHorizontal(); - - // 路径状态提示 - if (string.IsNullOrEmpty(_hotUpdatePath.stringValue)) - { - EditorGUILayout.Space(3); - GUIStyle warningStyle = new GUIStyle(EditorStyles.miniLabel) - { - normal = { textColor = new Color(0.8f, 0.4f, 0f) } - }; - EditorGUILayout.LabelField("⚠ 请先设置输出目录", warningStyle); - } - else if (!Directory.Exists(_hotUpdatePath.stringValue)) - { - EditorGUILayout.Space(3); - GUIStyle warningStyle = new GUIStyle(EditorStyles.miniLabel) - { - normal = { textColor = new Color(0.6f, 0.6f, 0f) } - }; - EditorGUILayout.LabelField("ℹ 目录不存在,编译时将自动创建", warningStyle); - } - else - { - EditorGUILayout.Space(3); - GUIStyle successStyle = new GUIStyle(EditorStyles.miniLabel) - { - normal = { textColor = new Color(0f, 0.6f, 0f) } - }; - EditorGUILayout.LabelField("✓ 目录已配置", successStyle); - } - - EditorGUILayout.Space(15); - - // 步骤 2:选择要拷贝的程序集 - DrawStepHeader("2", "程序集列表"); - - GUIStyle hintStyle = new GUIStyle(EditorStyles.miniLabel) - { - fontSize = 10, - normal = { textColor = Color.gray } - }; - EditorGUILayout.LabelField("选择需要自动拷贝的热更新程序集", hintStyle); - EditorGUILayout.Space(10); - - // 程序集列表区域 - if (_hotUpdateAssemblyDefinitions.arraySize == 0) - { - // 空状态提示框 - Color originalColor = GUI.color; - GUI.color = new Color(0.95f, 0.95f, 0.95f); - EditorGUILayout.BeginVertical(GUI.skin.box); - GUI.color = originalColor; - - EditorGUILayout.Space(10); - - GUIStyle emptyIconStyle = new GUIStyle(EditorStyles.boldLabel) - { - fontSize = 20, - alignment = TextAnchor.MiddleCenter, - normal = { textColor = new Color(0.6f, 0.6f, 0.6f) } - }; - EditorGUILayout.LabelField("📦", emptyIconStyle); - - GUIStyle emptyTextStyle = new GUIStyle(EditorStyles.label) - { - fontSize = 11, - alignment = TextAnchor.MiddleCenter, - normal = { textColor = Color.gray } - }; - EditorGUILayout.LabelField("暂未添加任何程序集", emptyTextStyle); - - EditorGUILayout.Space(5); - - GUIStyle addHintStyle = new GUIStyle(EditorStyles.miniLabel) - { - fontSize = 10, - alignment = TextAnchor.MiddleCenter, - normal = { textColor = new Color(0.3f, 0.6f, 1f) } - }; - EditorGUILayout.LabelField("点击下方的 + 按钮添加程序集", addHintStyle); - - EditorGUILayout.Space(10); - - EditorGUILayout.EndVertical(); - EditorGUILayout.Space(5); - } - - // 程序集列表 - EditorGUILayout.PropertyField(_hotUpdateAssemblyDefinitions, new GUIContent(""), true); - - if (_hotUpdateAssemblyDefinitions.arraySize > 0) - { - EditorGUILayout.Space(5); - GUIStyle successStyle = new GUIStyle(EditorStyles.miniLabel) - { - normal = { textColor = new Color(0f, 0.6f, 0f) } - }; - EditorGUILayout.LabelField($"✓ 已添加 {_hotUpdateAssemblyDefinitions.arraySize} 个程序集", successStyle); - } - - // 配置完成状态总结 - bool isConfigured = !string.IsNullOrEmpty(_hotUpdatePath.stringValue) && _hotUpdateAssemblyDefinitions.arraySize > 0; - - if (isConfigured) - { - Color originalColor = GUI.color; - GUI.color = new Color(0.8f, 1f, 0.8f); - EditorGUILayout.BeginVertical(GUI.skin.box); - GUI.color = originalColor; - - GUIStyle summaryStyle = new GUIStyle(EditorStyles.miniLabel) - { - fontSize = 11, - normal = { textColor = new Color(0f, 0.5f, 0f) } - }; - EditorGUILayout.LabelField($"✓ 配置完成!编译后将自动拷贝 {_hotUpdateAssemblyDefinitions.arraySize} 个程序集到目标目录", summaryStyle); - - EditorGUILayout.EndVertical(); - } - } - else - { - EditorGUILayout.Space(8); - EditorGUILayout.HelpBox("启用后可在 Unity 编译完成时自动拷贝程序集文件", MessageType.Info); - } - - EditorGUILayout.EndVertical(); - } - - /// - /// 绘制步骤标题 - /// - private void DrawStepHeader(string stepNumber, string title) - { - EditorGUILayout.BeginHorizontal(); - - // 步骤编号 - GUIStyle stepStyle = new GUIStyle(EditorStyles.boldLabel) - { - fontSize = 12, - normal = { textColor = new Color(0.3f, 0.6f, 1f) } - }; - EditorGUILayout.LabelField($"步骤 {stepNumber}:", stepStyle, GUILayout.Width(60)); - - // 步骤标题 - GUIStyle titleStyle = new GUIStyle(EditorStyles.boldLabel) - { - fontSize = 12 - }; - EditorGUILayout.LabelField(title, titleStyle); - - EditorGUILayout.EndHorizontal(); - EditorGUILayout.Space(5); - } - - /// - /// 绘制 Link.xml 生成设置区域 - /// - private void DrawLinkXmlSection() - { - // 标题 - GUIStyle titleStyle = new GUIStyle(EditorStyles.boldLabel) - { - fontSize = 14, - alignment = TextAnchor.MiddleLeft - }; - EditorGUILayout.LabelField("Link.xml 代码裁剪配置", titleStyle); - EditorGUILayout.Space(5); - - // 功能说明 - GUIStyle descStyle = new GUIStyle(EditorStyles.wordWrappedLabel) - { - fontSize = 11, - normal = { textColor = Color.gray } - }; - EditorGUILayout.LabelField("配置 Link.xml 文件以防止 IL2CPP 编译时过度裁剪反射或动态调用的代码,确保运行时正常", descStyle); - EditorGUILayout.Space(8); - - GUIStyle boxStyle = new GUIStyle(GUI.skin.box) - { - padding = new RectOffset(12, 12, 12, 12), - margin = new RectOffset(0, 0, 0, 8) - }; - - EditorGUILayout.BeginVertical(boxStyle); - - // 显示配置开关 - EditorGUILayout.BeginHorizontal(); - - GUIStyle bigToggleStyle = new GUIStyle(EditorStyles.boldLabel) - { - fontSize = 13 - }; - - _showLinkXmlConfig = EditorGUILayout.ToggleLeft("显示配置", _showLinkXmlConfig, bigToggleStyle); - - GUILayout.FlexibleSpace(); - - if (_showLinkXmlConfig) - { - GUIStyle statusLabel = new GUIStyle(EditorStyles.miniLabel) - { - fontSize = 11, - normal = { textColor = new Color(0.3f, 0.6f, 1f) } - }; - EditorGUILayout.LabelField("● 已展开", statusLabel, GUILayout.Width(60)); - } - else - { - GUIStyle statusLabel = new GUIStyle(EditorStyles.miniLabel) - { - fontSize = 11, - normal = { textColor = Color.gray } - }; - EditorGUILayout.LabelField("○ 已折叠", statusLabel, GUILayout.Width(60)); - } - EditorGUILayout.EndHorizontal(); - - // 如果显示配置,则展示详细内容 - if (_showLinkXmlConfig) - { - EditorGUILayout.Space(15); - - // 程序集定义配置标题 - GUIStyle sectionTitleStyle = new GUIStyle(EditorStyles.boldLabel) - { - fontSize = 13 - }; - EditorGUILayout.LabelField("需要保护的程序集", sectionTitleStyle); - EditorGUILayout.Space(3); - - GUIStyle hintStyle = new GUIStyle(EditorStyles.miniLabel) - { - fontSize = 10, - normal = { textColor = Color.gray } - }; - EditorGUILayout.LabelField("选择需要在 IL2CPP 编译时防止代码裁剪的程序集", hintStyle); - EditorGUILayout.Space(3); - - // 默认包含程序集说明 - EditorGUILayout.BeginHorizontal(); - GUILayout.Space(5); - GUIStyle defaultInfoStyle = new GUIStyle(EditorStyles.miniLabel) - { - fontSize = 10, - normal = { textColor = new Color(0.4f, 0.6f, 0.8f) } - }; - EditorGUILayout.LabelField("ℹ 默认包含:Assembly-CSharp、Fantasy.Unity", defaultInfoStyle); - EditorGUILayout.EndHorizontal(); - EditorGUILayout.Space(10); - - // 程序集列表区域 - if (_linkAssemblyDefinitions.arraySize == 0) - { - // 空状态提示框 - Color originalColor = GUI.color; - GUI.color = new Color(0.95f, 0.95f, 0.95f); - EditorGUILayout.BeginVertical(GUI.skin.box); - GUI.color = originalColor; - - EditorGUILayout.Space(10); - - GUIStyle emptyIconStyle = new GUIStyle(EditorStyles.boldLabel) - { - fontSize = 20, - alignment = TextAnchor.MiddleCenter, - normal = { textColor = new Color(0.6f, 0.6f, 0.6f) } - }; - EditorGUILayout.LabelField("📋", emptyIconStyle); - - GUIStyle emptyTextStyle = new GUIStyle(EditorStyles.label) - { - fontSize = 11, - alignment = TextAnchor.MiddleCenter, - normal = { textColor = Color.gray } - }; - EditorGUILayout.LabelField("暂未添加任何程序集", emptyTextStyle); - - EditorGUILayout.Space(5); - - GUIStyle addHintStyle = new GUIStyle(EditorStyles.miniLabel) - { - fontSize = 10, - alignment = TextAnchor.MiddleCenter, - normal = { textColor = new Color(0.3f, 0.6f, 1f) } - }; - EditorGUILayout.LabelField("点击下方的 + 按钮添加程序集", addHintStyle); - - EditorGUILayout.Space(10); - - EditorGUILayout.EndVertical(); - EditorGUILayout.Space(5); - } - - // 程序集列表 - EditorGUILayout.PropertyField(_linkAssemblyDefinitions, new GUIContent(""), true); - - if (_linkAssemblyDefinitions.arraySize > 0) - { - EditorGUILayout.Space(5); - GUIStyle successStyle = new GUIStyle(EditorStyles.miniLabel) - { - normal = { textColor = new Color(0f, 0.6f, 0f) } - }; - EditorGUILayout.LabelField($"✓ 已添加 {_linkAssemblyDefinitions.arraySize} 个程序集", successStyle); - } - - EditorGUILayout.Space(15); - - // 生成按钮区域 - EditorGUILayout.BeginHorizontal(); - GUILayout.FlexibleSpace(); - - GUIStyle buttonStyle = new GUIStyle(GUI.skin.button) - { - fontSize = 13, - fontStyle = FontStyle.Bold, - fixedHeight = 35, - fixedWidth = 200 - }; - - Color originalBgColor = GUI.backgroundColor; - GUI.backgroundColor = new Color(0.4f, 0.7f, 1f); - if (GUILayout.Button("生成 Link.xml 文件", buttonStyle)) - { - LinkXmlGenerator.GenerateLinkXml(); - EditorUtility.DisplayDialog("操作成功", "Link.xml 文件已生成", "确定"); - } - GUI.backgroundColor = originalBgColor; - GUILayout.FlexibleSpace(); - EditorGUILayout.EndHorizontal(); - } - else - { - EditorGUILayout.Space(8); - EditorGUILayout.HelpBox("点击上方开关展开配置", MessageType.Info); - } - - EditorGUILayout.EndVertical(); - } - - static FantasySettingsProvider _provider; - - [SettingsProvider] - public static SettingsProvider CreateMyCustomSettingsProvider() - { - if (FantasySettingsScriptableObject.Instance && _provider == null) - { - _provider = new FantasySettingsProvider(); - using (var so = new SerializedObject(FantasySettingsScriptableObject.Instance)) - { - _provider.keywords = GetSearchKeywordsFromSerializedObject(so); - } - } - return _provider; - } - } -} diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Fantasy.Unity.asmdef b/Assets/Scripts/ThirdParty/Fantasy.Unity/Fantasy.Unity.asmdef deleted file mode 100644 index d6e883d68..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Fantasy.Unity.asmdef +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "Fantasy.Unity", - "rootNamespace": "", - "references": [], - "includePlatforms": [], - "excludePlatforms": [], - "allowUnsafeCode": true, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [], - "versionDefines": [], - "noEngineReferences": false, - "defineSymbols": [ - "FANTASY_UNITY" - ] -} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Fantasy.Unity.asmdef.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Fantasy.Unity.asmdef.meta deleted file mode 100644 index 50b11f2c2..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Fantasy.Unity.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 705397a8cd8604d49b6c4a4bf342f3fd -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/LICENSE.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/LICENSE.meta deleted file mode 100644 index 4adcc46c8..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/LICENSE.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 17eeea30b6cc1f44f99ca12d5eff0726 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/README.md.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/README.md.meta deleted file mode 100644 index 246082924..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/README.md.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 14fc44c000caf3c479b744d281d3696e -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/RoslynAnalyzers.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/RoslynAnalyzers.meta deleted file mode 100644 index daf7f7f9a..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/RoslynAnalyzers.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: f4307bf646a547f41b0c813349fce9ed -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/RoslynAnalyzers/Fantasy.SourceGenerator.dll b/Assets/Scripts/ThirdParty/Fantasy.Unity/RoslynAnalyzers/Fantasy.SourceGenerator.dll deleted file mode 100644 index d0eb4ea728de495743d2cf26943b74af62f7b2a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75776 zcmeEvd0_yA!yAtj3rsCqj7^~~WbCjCza;wJZ zabLGbdr6I|54t8RRqs;DtFbqofP6jjGw`j{P{|vbZX!s({OdzG@cidiYcFC|{-6G~ zK%(&PB=oz88T9)e8Ik>OtxFXFH~n~*TAp1t5L~a6-%;)de3Aoh>WOdd0lc>k^rB4W zYSC?11A1+fnKavg5ZXYaOmq~!9sg#4`X)2pnLtI-sz9^wU|deUnT}?XJ&%0FKhkEX z0@V(pp8J7PnJuNtppsEWq)e%Rnz+u&7?mGihVI5zxNqKpPCXNkw+q}kFxS&rj`i?N zRH|&UM;(FD(LAJvxFY2kATY$`-HCPejBTtOw{r+G2fb%OT9U(1IJS=^5!8<=Xwn;{@86Oa?{ zIA2*osGwn_@>hKv@_>1n6#=#Rma&!Q7=9-(S?@R%t;MJP(l7r{CNOAc6k8 zZq~E0XT>7`XZ1=uk!mMh4P&^ zMK^a;@|x$Pxw#ujq8j6ymt=xh02IQC{pOdD_nLnsrp7^PusB6(q4{M1DKZ}ikRtOp zPGD(?qvTgk;NJiet2CW0Lmaj4bpVM|rGhn|#0o+~lzHq>wb`EtgSJR55(on2C;~$P zu?i_qz}qlE8D=M{Y2F%UT_`n#VSWdI9$Q7nqoTJoUGWO!t+`}WG|c-PC5go(#W0_B z;3^VJG}6I#!~CtIhEp&MGgO9APt#4-AfFob2LRmWrR5g?Q}~R2KY?Q1+7t9O48bfK zho$-e^gOjqhefKkDig~lyVVugdtf#~*<$`CCZkP<8^$D8yLOI2xmYj5JaTM$@j8&VMb%cc z+Z{ODMrab;mgYM3jkc^nHGr-H(q%S`qcK>DRE%-J@R;iXc+D+D4Tt%&#+!)!d4#rx zdSAU8eZa+%eYFk+MWx10eCur$HL*Pcr%MfN-;|!*kz+T0XyrQ z%{rr{4of1iz)@P_D7JCg&b<*#BpMvz^6eaz+0GONFpwle100G#(4+x)gLYpnFo#G(b=rBEe|h{O7g=K0b8Ph zEUzZ7JL3;$yD_EX>CRM{C&_oUd6svPe>)rlPox!tYKO)cZu4Q<1aas5+u;Fu$cVXus4l!^Y>jBu zEn~xWVXY|GEs?3{+16+2xe~64D>5xzN-~ZFcx>1E@4x@zkW$w{c#kTa zI0`uRLdG^aQMteyLq*h0-%;Qes$uSpP%pIL-1lM}+jGg-51<|?yW_OJwnfe`!jDAr zR@Uqcc#ruKlq}83^8p=#lm6{+T|M-Y>0wu%ItQ9fGo_Bl=Nx?Q!RI&lG*4mIMoIwx z)F_MxpR3G=kP^M<_j`ddmPpE1b4l+JZ501LO{W3OY`WJBG6 zsRzYA^vZ7NEkEdnQH0N4pel-^JH3gcvCs|G`a97Kpsb*@AaV>cdQX(NSSl~EDlvu% z`eesT9E*J8G@opE8W``B{Z0clKH2UxQ0$Z4P5^GUQB|1N|0p88a0EcG_#fk7KP0Rl zi_AgqMKIEq|G|=-<1>pdX7O=oI<}7`jBcYl;SM;vfckoq)1?ke=&MH~V3WiD01?{% zfb-yNdMTTJOq#MJQjB`ye-xP@3d*m2)$`F0$b_8d@l}I3oTUK5$$ZQOrn1e*StjQ$0Mvp3l!!-KMe*rCUw=gF$2Ib;2`Bg=* z`8kwWSTPNp%3O3*)cj=>lo}i|Q07tYkSB2xvZX$YHXmInZAnf>Mx1RDg}%%DA%BBg zMH3;fc+lp0t|mR_h9aQmAtQ#TqO34f2(DHJqsxJ(6J8bw1saZ0faVhlhJv|01f_>c zy7LufMWG_yL#a@^0IiOl3*%Z5j4EGV+k=W3wg;Y^*8U@qIq3a3SZCQDmh6Np=PbU8 z#S1aY*glrfnT_s*f9I@oHR~*rIxLBR^U(-~b=aOVKoa}F4RkjB1e-3FrYvEkWXC?g z!Fr%set9~)*ym<+rDGqiRyydpFok!-M81$u1hgQ!(F%wPB@ii;!xJ44jR+N*J@z6u zh5=odf~uk;5%gS+iIw@IVFW!^b|``#D~s^PZ-qC0JG_y2_f-%C7SP@fBme$?*xPSn zCYknjRI_bw=OdT0w}_o3uEC}z-}Tn_Ncqk-y<5>VC(d~g^TkAIckg7^R-6M%o{n=E znZkT7fsh2F9k7c_kxKt5*L;vOMZr>q*QDuMP8b<{f&B!wQ5gw*F2%gmfE)=0)g0PAn{cDy4~!=4hfVB@?w= zG^-g~(|*lP&^kbz&~EuPgNhT5?k`S2G{Aiz6%BA3=qDQB-OSyf3HNXr`|%8@v%~`M zA+aBS9@f*^k6E%4&Z4vU3oKp^y&2obk_dW>?u4i4taAtJtdKe^Av2@&z8w2;4ItT% z;l??eevwUAN>i3Z!l;K>fO>WYEEReRspKgr4@eqR94DMC%dq&&_3F-Zz{8o_^yXgG30n&zQbnm3508{qrc&1qrfA~>9~iqLXtwKnJ;wQ zUly9JsO@(g0T!BH2S$e^?;xkQ$U^wM2v8hi;vPb^gtL>_^l!}^|$-eBo{iR&>Kw>+MZ>@O z%-2}MdC;WL&6(u;Jy0%numT6^_BMy5kK9hvv78r20MHloyO6`QVNbeH?)Jr>h!fo+%jSF^(E} z21p&CIR}+6)zQ$l=D4SIUVCP&(F%;C*T^GmE-pM~5UEY*%ukMJ3mN;4W} z=x{i_aE{uHCc^41$R8%FJ(|_$XjXf&6yeaUeh5RRjv5^7%g5tt)P9$trWqeUV2BUKGXy?}f~^Ajn0m z{w1xRt0rT$1v*lbt_pp0>K z!)<8jm&1p0IZ!Dsz&Yf-7@xlLbeIzc)h?l{E8s+k)d z%HCQ0^Y1quC1oE!qx$bn1y(Gedm)W3oQ;*=&P-XT5+_?c+$sx|;UR-iDA~!1 zf#xqmWI#eu9uwZ41h5}yVRMVlA{4~d<4K%{ zaUx^D!k`bFmWvx-aTGy~k=TKv#7@%TiH=7Qa6Yq)DBK<`cXHzD7LB0&FMe@&Ds=cs zR_IVJ*D;nqJzY)Pto`YH&xb&QGGek;J1WBVf|%?8HM<_9jO}B|&XY5Xzr*4_DP~Dz zET*;-r@lI{(p@~lI=iF}OBfhL85B5TvIsfC=R@XaHhq*$FOa4z;jdmUBz36;Auap_==~(Y^HSM4s+Z3p|9;IMpu%x=3!=|-Mokz`A$7iKD~y+7 zwD+(XeE}wI3(yB=w4;|aqa9EC`m~MlrEJX27}l3%V-RE*>UP(TQ952TREc}X6>f>$ zxCdNoCod;)%XEZBhBT5PO|<<8Wf@%|c4`PI z*yGF5g$|_4ysFfHa2Rc~&pfA}<~Wzo{46{qKW8#@!dZr9O(1dwM&i(j(HhpJSQAJP zpSTi9X%>INrD2;t;WU5FK(`28D{p6}tk&iaVmb21AF7Rf9DPBm^sK<8s{n_*A%F5q z(B3ixC81)7CgOfWA<|KZ7V?~%$+I`s9Tfx>MJ&f&R$xe8P zdf(8+Pq6rEDP{>Hkmyd_M>*>}$vO~gbion^C(#H36GuFB1R#lra3AGt`Xe^oBTZSt z>kNHId=jJYJSCH? zACs(Wge;as5SvB$By_aMAHiJ~A83$6LEX=9u=2@Ip>{Ej->$=VSz+^Mfh#SHTu&%~ zP&#n~b0wuEksFbzI_N1Y4i#%6fB8Aob=0Vc;J6LusdPx>zmVz0;<#{jm+qo6vw}Vh zDbOdUI9X}%g^D0%Jhz^RlllWO!)uFPK0+!_xXns@R@i%?wc|1hXPEbx20GuO;9I z${X^;0^YjtI&arDv@QsKUxs#f3)VA#?%9fpNuMUJagwHePgt zuaQq)x#Ew{-o51g)6%GAf4HdT-~&H;G>x)%ar&%o+Ickzb4Wf7tq*wJJ5GagKo_u| z1-u8n&j6c*4G%=HJ4UTdf;I-efr7ID8zXNa2Jiy{UgzzAJaCTt(sHjZN9jR#abe^0 zj%Uo_FDN*P=p+3Ic);CQ>NRIzRpjhaUh9v#^!CJY;a~H&70{+3Y$W!Bvc@taae&`J zBk>)4SIMK*fvDnjocQJS_=ZKteO&S>nWd4y0e&FyC=#gePk@t|ksotW7kdL~dW@Zx z7!|T`k?#V6Y~a=d4;locqiy{6fX7RybdUl@W#R|;lB4nzuiR=n`aBYSCVyt}7zV?^ z<7ZPmMnxQ&)8z{K5^LGh$AFPL=5FgfSY;&PuLpMc(S_mOQAkrpx`$zmql9i_JCW{H zQf8$2;AWi7b;I1GO2t6~vl*%k4OX5iEjT$mdwx7BaSV3?8$w_l#xPV2?VH)&Exgf< zrB(s~KmflYalGPt`xE)5L8aA!xs)0vohX0hsv^H0?Vtz3@Iq=3L;+}T*j7`^W^HOt z+Rcc-UBK@XR7U2@w@i(5r%dR%GY~=zccVUKjTY!rf2(1d7aoP6-fCm627zw#ETsC` zkBr)!_c+vrJA*yK9l(?MrC#4nc&f+GN0;%_8NSL@L7(@kjw4<-5DgYW=t$GZbpPG# zUu2@v>N*0)1!Sh_F~m90bEt?cag?&J8R!d}4$kz<3#G3ba4S$Ci-4UQ9On(jwJ0i( z83dH!%^J#jPGR72DpNGOvzlv4$qPC({m}`sY@XhnGiPhEoDcNNuJ?E`+#ic8=50BR zO!;*U=Yo_?#@ozjU!difA}V2zbidM)r^JsbPDX`Rj}gXpY`q@5PT}4m86b*mgk*py zwh@v6qQpi>=95OHw8a-&;EVO}#ZvnxWXPW;&<0Z(G8!h-KlbU`T@;vd!zVVx8>_#@ zrCg^4L}ax2o@7K{_D*a{c3{o>z+94Pz41O#;hNM3yqfs)l=i!KRB=Slj%t1t>;TU_ zMu}%fSiTE(KxY7ZcMQk3wtrr=3N*pA@OgwN7^9=bKw>TOVqgMZiSoP^@(4ugS7q?# z`7DfHWI!5V7QJp=?v_U+{J!KS;6&n^lHJJmjo^?e>PNWw(uj8=zQHQ*#0oby0R28s zE9ij_26^5N+Z*5;RE*1EPw?8!5gKWJ8Nwi&Gy+*jI7+JAy2!H~Ry=U!3^-GKj}7cO z4J(U7Z?Xk84(kC@@B=DMKLL}B$WH-G#EP%?5Yej=cv&Wk22i7!Ws5y*(;b<`G)~p-3_yJ=Wags;Entooi$8$bnn)K z{DSx@3(x-D!qNos7O5i)UO9LtUTm$2p_}T}($!_j)Wo?Kf0khR$c`mYiVN}G2kV|G zRxnc{R!{`*#8GZJ?X>oKw{pnV3m_v$wum&hlK0<4E+ zy-6SiG6uhgsyBs%(Vl^qe4!Wns;w!aBFW3pf!L*{f%7*#)4(4zj^aDnTv`^QxL&U{wfNY1lU{g%13mb@b zNCxV{rhpa>_j%T2MEuE0>iC5T( zD7maB=}EuSNjjk8+uRLFBSK2tJpQzFd~GC6i(6ClDmrU8$#Z-5>gT2FUaBe%8sEIdO3%(q(%N1Qx zVDOyPyQBmNF4(RSSS%Qj&mrFjk)c#tn*!7=0xZ>T0>5cMKFy3?D~Im=1|;X`9+BpE zC?GlZgGHY0zeRfG$<#d2odr00(Yl9~%GJGZpfpSO9t3JY-Mf=RIdo5NndEYYHocBT)J#vjfo!Hq zlH(b*ell1hXd!)pjV5;}mwU&;N7Wa0c=ojb=x|b%#Epm|f1M&8L zOlsUB4z}*4$#IKRB>sr{Y2Eu4X>#ZuhuXmeI!5WzVye5;vZ}igdDXhd1?N7^^<56# z;{uBAalv+Rv7meVk?%VR9YQM8x;GVA>K^t&t$SZ*CP(-F1d?-fkH~&>k42vCe@1%c zLh4=c~wJS#hrKyDDB`|$1$dNt#zVGANW*~)@>x;MztLTjL6@R<({x(70Y-g ziq6z5&JzK{-%*-)2T34`Gv9w8gELVh@lR=F9ew^b;|S1xhqgowkJ@KthQe41LdLTL zD2lhC#BFTnfIRu3%EI}_?;Hqy?!>>OcZ~inGCW*)kK;y5aZvwnaXb z3)w=qK8G^4pT_9K~)Tw9j0mWP@`L4k? zA82Nu1^ATWQ;*LIeAw25PZ>VgJn`?2A;eKeo++AI;Z-*mGYyw8omcesurk$$F}>=c zqR*D#snU`!hrBrBX8L*&(*nsqBjK#dy4baE}zhg?jr3o$(n7_Yj`m=G#a#~P;JtFA{rpyFjLHBnlsHVofW8&F3K zWzChLt3cs(u8nStXl!&}tzIuDSIYgYUv9Aef!aN_UbQ5|e#S{FpPRIO0zG@xF3dfk z&Kk0#^1rOM50(lIE|&g0`1UZbIvYIks*eYW`C-`@^ybA_UUdcPfHw3QQ176Jfcl-J zk0C8p!$D`Mx<#m+A@qC?JqOgiGT#De)r+)L?UXtz-5mEJ^c+yr!aFL}0rh<^`~1124}+`Fd#OJQJtt&FUiGJ9QhtoA&T~iu>RF+|UB$M) zu4Jpz{dKs>sTIzw_fH6wsw0K|Zy@!mrLqd2sv)(H2|u4NKcNa-75v{ZdWjlWRaaK3 zs-@L?Qs*@P300-aFPNVIQ>qq8{%b<{nKF7y0Y{%wMhdUSxL(y-O*woEYf2d%C#mQk zE>FBgJ1UQXL_>Z7t%1}LqQ(qW&tN5wK_0RWs6!w(w4o2sTQyTF7NEq7+C$Z~!&X(N zq4gG2BxTaucymRMzBcQP@~igTF{Yd7iuQUUk)w6*eA&7V`?-s zOQ3cs^TVc+vcFcc%ume)^gx-0=E-;`7mvkkgX&C_;anb^Sb*JYgL01?s@g4Rqx_EG z;-FIdU`{sy8mjg{{TJYUUO=guBM^76?5k2XS|uH2WARKse~oam^fFOhCN+0R%}In( zy&QpGlVr_{rRLFUkJNlaY92=@Rr3UOyOb@Kvf1iOjBi8RRa0R6VpS{q zCVAsXUmnhMNm;yVq`6B80 zGNj8~*CSnJ+>Z3e#@(QBl!tUa?$$LQan$^t)O<#2{>nksTcGFFp-i8Y^hKoOu#QaA zG;rK^9KF3Oy%kn-+_LKQ9LHC$>>FLqbOh3o>UDT(&{RtyA<;eA;nsk-ikDn{yR~6oQ#-o z-HUvWu^;L0jUOUCMZJWvP63BUs=rnIz8Yto$a~dK{qd^B^$-?yan-%UXf;kvLGM<( zl$nB5jZ0mSf>`#+6jXqAw+Zwc*Ul0zYQ8Ga9`)_=q8dZ}VU)tZJ?i{|@*0n-=N1j< zQ49=EW53srKU`I;L#9z5YRC7#3T(pQoXRIQf;10NRL;g&J#$FSB0N1)HPT7 zR@79h`Xe;-bU}Mft*V`>p@N!)H6v8J1%0LT?3z0D7Yn+4#MYX6^@nM!sYe*4{vnVa zVU)W6NZrf1rMqfIt1rOY)ib)ZW{kRlP9>=JRa{?#pWJNL&}{|R*Gy0^h+oASU0)Mb zCmpBDIsi4Qw=L)?%x{v~2~XM{eX_b#AU*nIHCtRAa`3jADQf@mx))!?eKph6PvBZ> zTJEbkTCJU>p+BR~W7V}V#4Hbss@4dcuUpm0_{;pmktRpQ`geH2AwN?mEq;;S~$Lh?yVdj zK1Hpi`v}Na(Ew=wY7O01&=5XV{l$VF1a!KpKSP&Yh|$kbQ?Uuzqo1j!3$&-|>%&ej zI#c234gaoFn*zs%&s6&@=zKtH)U-9a>{Ec&s&81()uCgOBjZ=U)--P?N=RzE1tEV0HK`wc3Ji37!@1RQFg= z66Xb7>K_7;g9Y%W%iB2K#cF1FTlj3%Y(cHz^TVdvXhBC63{|GuYC)?47lxDSbqjjf zdw#fA4QUl&}<8OqhwEbi`r~K$;#`)=cwB(XuEe$c&mEaf@Y$ZZR#%;^lJ5I z08NkUKDSq&A3jg5vY;CZ_5eE1g4PtAAKsyEu%M;kJ%ILG&>4VsDz%=yd{;eCa=AKR z4HxKQJf-UbG*v_XgF}DeI$s@UL6xD;h0j;BE$E2yU%2|zd<&Xa{<(0UT46yKp=_5r z!-778vR!Ju1-)MO3)cmz+k)IEyFi_zA+f@{)y)E3qyAd*rSNX`Gl8@$U8sKTsCl9K zy+FGWyWA7LQ2kw?UFhW-;fvMe4V>R~>TAJA!dI$m1=77-rS=M>b>%8`hd}J*$?#R` zUJF|7dN%wC^?(J%jF-coRQoOHIpeqCYt*of9D%*;Q=d`|0`2nOQS;C6^{QEy`5!5~ zTwSkbSkTW4-$z-i1(l%e2DQY3MxyKnwOSy(DmSVx2((KTS9@!3RKFJJI{#TCifeCD zf3l!60o|-T9i-*E>SW&~#%I)Q3%a&)SnX%ja)Ey1y0)^W_Ot44fiA|bRbRVTeO(~( zY%HMXt+E$tqP6?f?*-C4yH&lT%VdpiRq8B`r+Id(@>|eq*VNkE)ldtH88x+^SG5-O zobj>RFQ~Hx;&_W{zo-d)Zz4HFdf`dX2uRHs~_H8QfF*O_i{q3xd}H+G;^( zVT~SCeHOGGYxJPH%!1zbUk;CCj|I6<_K>>Cf)c*Z)P76dVnOHnJ`d#_P2|R`&`-UjM81DfO&Cn%B>$S9F>GW8mjA>h~6OGI;ikdfS2$KHu=4 zsrM}CTwf4SK|-kZ|2}XzPBn@x=)J)E;b&Ea1r-NNhd-xASWq|^1{4uU^ZI$!Bar6x z^UBAg65;ju;XhYp7Ifx_@xxzG4FYLizo>4vAoBV}b-zI5^_1biQYV}(l!4dH!(UP- z3PfHX4``QF_Cn2^;V-K%2&8%anz~2q^%a43Bi4K}{FeHr1#NZh8U8o*9ShoF+&ugp^?eI^+qiZ3Kh*G~re&@A+VFp= z=>lEs|5e4ehQF(3YY4OqRqv{`0)1EA)#gS0`9yjVOB`ja&*p8e^q~x+TQ?&&zmHHaCD%NwsxE8sp3lm(t(*?Y6o7 z;I_6h-S)q#2Fj1g>PJ)JR`)tu>AbV%ydk7>D^lm^I&b&jchWHEymJ)t$L{TbgPvom z$)7PuZH_rHxjp<^IQEO-Tq*u@sfwZO`EoD&nO2xN3wy*1WJFDaUJ*P9Yt7eQqk%9k zl}$+|e>OR0^r-Z#SKo=(dEJkeklgh5I8$(`(_}`gWG*^?rIjB#6u*5VD@D9ZB+Wo9 z$^0^KM*p*W_^E&BP?!4jkaSun7^a4r7bgB$k<~lEJ(r5eIj+t}1FTb1J#?sBJtO!V zf~>PiX17x0d20zVxoHxIy)N|$x4q&n6+>G?-2*z^_`^Uv?d3`psH1&6KYUZ@*L5zE zd67$oT8TRsGoqw-1-Sbeib>Y;4rDLTBCne;+OT7+C4E0B$$C(ca4}UFnW)3l= zA0ySz;76Y!^Wuzb+0&TAodr*;44fyhpD0p~x>RQ8oRKqsxU;)B$l1M9Xh{D&fzxt!x$+K3*$7En3(Hc{1uixNGGX1 z1~F#~{$91MY%!joy?59;b+7W)Zd3=&l8ND@EAsz3%R`NHg8zuhw0e(wppJ2WQ z4EwoP?J4^u-Zfwk(P;2D?8b${R&uBTl0!DHQLoH^oGt^>xm!hc1&bVR8!U%gg7&RDLl z2{#+0@MB1CshI^#xE8I9F9%)fdE=gNm+`Xk!-}M_T75Qr3F>^I@(QC}#_g1}N7D1G z(pze(-RDWq7fR0;N^h&x(huvl4)>K(=NQ+Q0-ta{V0^Ch zI`=l@Z+E*~eIqV0T(140XIxiG57){lH%oe(q<6|F_e&4=OPz-V|EQ!-NcuEVmwEv; z|Lu8IYCf&5bq^_UxjDzDrH4NV{twc_(=rQ}>*$)x3*J+nA(t5MsVj&6tDwVmen@$r zaz#cIAYJ4QdLM9YK)TB?szY9nYeI00_kd9zKGORG*T2HQaQ(owqGYD`ZHzvo;3?O- ziuvAZcX@cFH{`xy_(tzYw`auJ-U+U&E6zcy3BfD9FS|B}_5w4(|2gjg)$G3$>4qWq zc^@zyE&Z1FP1ln{p73_KHkAC-TjV;az`SuxSK{no2?77e&|3gOch~54cH>sMB z9)=XWtvKRx>20;7?UFv_I;C<^VW;G)-JcA$74{(SQs>E77s^=GMr+N@g;%=B&nsQz z=LF+;@TbT1si9vkyih2)R_fm@^?Q)_1a3pVDsZQ(enhizC+6D#3~9bu(pLAnnpog| znb-ZO-y3*H+O`@eRbCo+6qp_ECj@h7XKZnygv(8P}wTouG>LR!u?jPNaJ_306J2RqzfFTWq@=sAyp8;-fTxHl^U*R-(R;3W#!*OrU>sX?qidgk4oZ(ISYEWv zJ#5J7l3!C)Wcb4gq$m5f6_rcAT=F-%&Kz+uFxOUoqNvtjKeYz?X^?z_3pd_U+S-xI;*8lyX4y?zglXxOWG;*JEi`7k>T?MbDm(TjT@_>>Drb` z>Vjr%D8AO<8r^JAs-JS*5x%haN`v}K$zKt?4W)M!-zlYc8k7x}YcecG34T%i+2Ru1 zb^Qxzttu=j!F#90Ret%ME$_Uzbf%0QbRq3QbRrCItutVT+O)i{3B|P#V!2b zs>kEGliTZ>uy=*4ns5RY8qtJbQ>;NcS{;Kls%9dcsxC)*occV{S?ViD=c#WaT_*U` zkA6iXZGvgTUElb+xZrmSez)Lv1HZ8DBEjD(_*(^kEAYK_w+sFb z!9Ri4 z{46WaR&yjDlU6a;73%#FZBnOA@NLp|mz3_3(%n+JTS|9J>0V&o8nI96?2|gTN}XG! z&aG1C4ki1e)yqYchB;7Bi2fVC*K-ck+=9rJ8?~?p3$?uc= zKFJ@D`~k_o>|@WbB7JLw%g_Et`iW_gbgiFj5%aVEm|*(+T#;RVjbVw z@DLd|6A;cwexIZV0>Tr?zbt7>P-;rLKS=stl2jEjUoYtlN!Lo+C+S{|FQ)w5R?Hcx z66WhAogryo347Qp>3&IHlJwP*Yk*fnq<=|gNIDxo3H{cHwL`eFYX#FTm_EVu31+XP z`vtRK@-IpLCCRIy(x;>|B;7xhRJ|lAeo7Ge{gS>UsVXIAMk!mZm9$UN3roqRy^`NA z=}VHTGU;E^8IrD*v`^B#Wu$zsCaVIxk7uj^}dT8qq$SrDN)to~ZiN=ha>6E9znVw$y7bk8!fG+W3U=j^S~ScOT_m z;r@~vuZnw)^epqlJx_Rs6&z8pxS*@x=7QI~lYO7{eaZJDU%9{0f0_Swe|h2l!XFhr zQ#d8?rNH}v6M_qa=LIhcULL$Qct`M&;2Xg|1>X$@ipq*=it36M7TsC&SkXUKdRNWMz`R)aTcl$p)tHNe zzX#?W!9*p!)b|%)bZL2j^)L1P6R8R^Ul;s0(pM_HBMdxw;|2|DkQ!<&C_zMs)KKg2 zmpfh9H+{&rBmQ)$I8y$SIexQU^@3Ix{#G4+R2_dZa0v4J(*=h5Bw|!UT>~$`rLIM4 z;8tlE^4B3XaEnxl{0&GA#E8|%--OhFml8&L7k)$5rM`^Rz+W1uL;fD52I9z($bSW? zq3(lE;ZpY_HSpZbSUfFw6y8KRRsCB1S&eb+c8xG58#|4=jRVFrM#x>~zQp~w`vv!3 z+_OCMJQsSd^L)|sN6+6pzJiGbtp(Q>)Oug`j_{55E%C*D+kFrD9`hCZzw7_G|1bVi z3oj_VyzrXB&lUc)@ZG|pfiZ#3!1;k|0yhVq2s{%Q7n~Ga6P!?Ve9`)%^NVgMy1nS$ zqKAuqQuJKWt3_`X8O4Rg!-_{2A6tA<@#12$czf}_;`@p{eLP)o{(GyOo>ltaL&b04 z1VTT_Xk#D4vxLk`frb20v5C{I?0PPoMe(m&`0y~L9~}0>WAuZ&h4`iULhv^L-!TB* z2Jp+KLGU%G>hT$g(}q#_jK)fi5%~+@iK7ts8p50F+tnOAbJ>c|JbV_Yt*%BqiMR&& z7(R3GBws5&^YB@q9yc1*>&6=7WBANb&$?UjnTO8;^_sg8ulB7$K8DX6wa3$n&pdn< zsLy&D)wet`7s62%eT;~<8QRfxLgb)=;?@ccAOhOew~FnzHQB# z*&WHvow04RI%CPC)MJAwxeWxxvLje_V!UTrd~?i<^~9IQ)^*00Z`&Mi?OvZ?*HVEs zr|O#BaaLOx?>Q%7Zdz<6dJ=7k&PAJNCEDXl>i|H_Pmak>2z)GjCaMmdy=i)J#lk=tW7gQCUasORCctbN;sbub3-rd3%hJaPRV5? zP?~2sWmDEnQ44!JJISH7Q&j7mZggm-ptE~pJr=NNb5BR2JJ!is-EF4O8S7jb>+Fq# zV_Q1f<7S?sq@!#Odh6`y*)}WDg>})@t?_yiY;3Pr`?77_J+ZCxJCZ%@a%nu)zNou% zn+n6b9=kn)*hi`KFfQt4ggx( zIAvt!#kc8+#yU)Zvpb|9W^Mz((Nn`t%^emf&HJ3PDQl+cVW%pxq_-!2QY^XgsA=GD z4^lK!(-$P#dpqODtLcl)jxCVUR$D}3ByD!QC)UxKJYH?#GOSsnT6*xb_&W478|#K1 z+SIabNf6jHE792*7pjv@mL#bS@t!rU$z?t0s!b&~x2cx)b~Rm#{qdXDteF{W+k{8Y z=XS(9fv3DJjCI9xOXhU9Q2;9~bXcp#nVb@v^PbOmV7uF8tdPR3m zK~H+kl2+~Rcu%qitcjT5le1c zIA{6n`1(xTiiNGqPtCzvh=p)bQ`XknFhx~5+Qi)S~s$wQL?*gawXsGjYJ0;|_%8w*$dJtldX?;5s?sQ#QhYsbt57?pRMR za?2C5z|hWFm=8Q2**w%NGmdT1VVKf>g>6C9?D)Fg4IAR-Ofzv#lA1>k18v$n;N@i_ zyVk|q+vDvizePNu4s6VJcaEY|r4`(6Q;;on5wt&W1lh{L+XUr$%Idy#OUdt17|vc-b$=~&mnm?2#{a~p(-vMe6C zOq zses`OT zqpbs-YZn6Y1QlxAq&m9WI(ysW+B&O**#TEA)~Uok&W^WrN{7qhUEB)W5IMvsic_q_wPHYp#W$1*r33}oyHp9oW5wqh-MB;KzVO42KZtHGySZK9uGmWVe zgGN1O0s~8*lwaGz%@LQ*Dxgu$Tfi0~$tE-|-cGj!5{OYcdXfS#l2)@~@IVpG)9+iJ z*c9(pmgI_P%-OoxM67}`0lDgynyc323aEsH<~FL$QLL$Jf-SM4NaimfOHHY%fKsvyf9P2tgpCfK#{j4JCaSamTiog zn{E38Kjv&Tt1})m)hytl&f33Ujz1zITe0ovo2sR^Ct(-2p9C`&H_;2vQN$A3=P=nT zpMlr)Qz$(|7E;>*(mb=bqf-I852RCuv&qV2g=kwpMdA!)Ri_5n)nx%K zmS*&mQDBEfC&fFV^_FWPx?y3QT{`3Lj4m?@T9fk==b$f}5Pd$A-cHO^_yK2!);E2? z)t^RWs)E%q8n-%*+0xi75la_1WZHpr*p@Ulld);MZ7m(sNf$P?aYjvT@}JBSi)c}e(?$u^v429elAYVS z9SDbfXP78w6+1u|-_cQEZAj_xLvunOQYRJs&1BpLGBy_5ctf%>kNeXFaDA{9X6_o` zieS^Vx-w4vXxB9fw9}O9^byhmgsAZ8iDPpIXlHS_3*XDC)|F`QSl_`0CWF9CWlgHg zag+ARg|=wP{)~)1^o>D`U zOL!pxUboMc@Cz1(9;@ZaTR8F~eRI*>gY!S#Lu;~yK0d)k>(0XAI&?)2*&r+U-3f}AqDs;kq6+AJ*OPxQ2(OC%v>RpWYDQ}UvOd=o5Clx@u_CouG{D~tJ#45Sd(s}Xz;D9ea>TnFi?qe(hfExx;JT8 zO-Z5Mv@_AR$;zjj*o9!S4wCfdC3AC>Q3!HNwDHKri)Q7b!5xW%a!Vj2)?iEHI0jeQoO1h3Mj18>S_Q$`v%Mw*|RzZ@x-qiNnu$I1+5?f!R5VE~W3bc4_M zqa~QlI%^Fm5jMmco5A-OxWTp2@@Aq2S7ig>cI1+&`t@oS z0=G=0#FV=1IhR_>FtL;CStY>tNXd3Ir z@qnzhw3=saGB$T-+F05~@~R0nHIFHO^m4T2rnYjQGG%1$J=*iJ`Dkkh*V$FPOsqHc z3csFFNf(hLZ^Of!9GkSq@w?*AT1_g`)8Q*R3ACogqz%InnWWr{sC7v`%Q`ySyUO&a z=*OugEtp+@UY?!>_Z045dbcBWnos0nhdNirP4ADczArglK{AEPN>_=g?U-=Grhw9! z;ucQ@Vb@zQtxf1syGt~KTpZgK(tTx;!(O=+#AG?xj!d8m;u%!n=tAf%Dwk|EzD1}@ z_t=_uda91J*&CZSg%k~Y4r&%1kq!|p)~ZLZ=~B9c3H(O`x<+Q1O-VcdLdTMU``{e4 zXs*GyzNji0-6H{p?TJmZ(Al_}iDPi?d;2B&PthDt?Y z=1Ne&wQ%cov>hS+ZEv0RN)68^F80c(zI}SPB!OJAw1;h54coqO$&(<4cKdLb-uAQ) zz4Th+skfAW(U`E)x652Y6=t-f<08^V&yWn-hDbn*}FIjj}IuFvUCP-oy*$2q&KMX<$*lW~ndeGvO0COn$ENIl+Q?r*1pRt|Bx z)YxYx^jEhYzxGX|r^8g#TtF9uu39e5w&~UqN3%?M(z_`o)49LZV~3lqR0mx-N^x#) zdR)Eebjl++yI;QLGO_3sk<8r{boYI0aGS24aJJud5+>a#@<$KyBq4XBcyRO}GfQp1 zPVY)~-J|dW9g&=AG72U;?I@Ab)|7(k@zc*IfH|Y^7o|s`gwy!1rD#AGlh#=8?Y2kO zC>Fz(nY2SkN0^(MZTan>E1OHU>S*_vy>FG3j>zWM14~1xN%v2iPm4es(F5{aeRqup zVHCcR_;HnmSmNb)acm7Xh}n`~1bwf^%TMESYAi#|7POd+bUsc)7NSl5n!46f)S&?7 zuhWXsW&M<$f}UrB>+`|OFWJ&(&nbK6l)-_Wc$;TjiCnp}OEdem7d?Mzu8`=3f52Aj z{)inZs%pn8HfIK|{ZUMgk@b2=I@OclhP44NlIb?JB1^r*jl=xgRP%CrCcKK8Vr$h zASX7@Y)6MS!)dkYgXIoL8Pf}|IevJpbIJYoV8|U<5f))fAo1K8^Kp1!l^CdX?(}mf z@a%s+0ZlabHHNWx8s2g}4}UU)?P(AbtFyP(xw27myIdxlE4Rw!uoHU*Gx24Z4$q-! zpt!*=$G5hExg=1uIQ_xa&s~dMyx!os5UnK7AWU>;dxXqqnr6m&dXr;-5SNzc;F~q; zMSUqcHtCE!xoJ2<^_Zw``cy^L4J@i^%D}>y%M?|a-_)uJgEgzF+NteMbFHFIO?H;# zp`-C|44XRPKQn7;f|F)jAM#l!b)0h!1J%qkr{e}*t$|E~S}^cR4%9XeB_|F{30v?& z=TH_xojNd8gY72|h4_X3{!~*n9*)|o4bI+mL_v>+N7LLUb^Mm?4=sQmXU20{$F=4% z_Mo0p>TG{WopNXcb*NEzh@Q3@q%|V3Yqs8JQ^(WP2K@1=?0UdWJ@g7?S}C-Fo(|64 zLfuBEJ`AkWsNM3P=_z{nm~*_t(?7JHbU2cO`ilnU-r;E-`a5Ib{yw1|P=9sc8-?`I)!+iANQOtA zdnIL0iJCRoXx6@bw$BR?@J(f?W@c%swh6Q=d9A~7c6dA3V;UXqPG*4FchQGoTJjOi zL$qw8kwrGA*S(|5*cAANtxSr*rdtA47KAw`UCyhCsja7Rhiz2 zXejvbh3w-e^sj7#>bYg0l^9eHt-6PSm1R&pZOG>*4c6*1EYvQb9Vqs1c^~UfZS!q9 z|7U&e^JBet3?wigjzSGaplE#?|8E)f!#4kCfpxqxpaq`QzXhhl#RpS(^fIs=7MnX~ zAe%erzD^uSk@RuYplDh&78Z;q1`v$FdoluxbPw`e(~+js z&`;Lu%W9rKf}LgoULPi+7_OPvKPqm zu4JY#4?f1`sV6Tn@slbtnQacy&3xS67JTOe0Q7^LOG1^2rxr*@sUQ9bJj}`#?vH9L z-cjYMiG(_p&Y7kie>JtqA*43f^kZo@l+8mmGXI<$y^ijW5=WiBs}B`f^e<((aYa5! z<3o}5?xWARc?+Zq38P5AKd&+=}+$ZZ85dKQ8V48j8URI$zwadV#VW9`+$++!pDcWeOj;V zMEjGN%syoEoiIyy!>}N;&&*fSU?4;G^#C8K>*TTLVYzG^JAKlq!;swL^o5vB`bo9C z$LTpo^qFmP-N5uluDS-^jx+B)vp1*1-jq*RAZs(Y$G#{nnRmQuQY&^8uI}J^P_2hk zJ9j+CCXT%@^F5@wa+TNy*N!*-q)3O8)Tv(CMtelRoO!-hdlqVQ)md+@Jm{0effV<+ zOkU&dqG8&;JMB7TtZ&!hkmB^3k?5k{8R% zX8SmuH&88D)D2*!%{1;Fyd&bh7av{VeS^FqaAKy?vV?aM+I!BV$;l%8s+dsD+M>{v z9Ls)Bm3I{Mm%&K97Uq17CbR#g{mg#Ak@|2i?CdiAcG^JX^7hwehTiyS&+$6P1+)vGVCv*AI+n7^Tr$dSLONUh2!O6*Bme{GOnGcUT_4XqXfbsft zha$lK`_=n7`Ia>kiJZp9srSDV!*)Zv8f-_h~?ECPB z{D_#+@j)oe)Q!P1Bj^2*!KhB=P#+N!Di=X@_}GSth?G0JelTBEw!)lpf6KxbJD=G* zl-Hg)%f({S)1CoMbf#x*yJz{2ZCz6a?vGlL<)=?Q{I_z{DVdvZzQa!2`5TxX`#gkC zd%$Bk#M8^U)H}TXzFh-{M*|b$Trv*he5WOM*nXJ5;KLk4;S~LY_os$y-`hE_w6Cp> z&RoDue>#5~S)fU}*I7^q?j*d2PMchNF&*Qy4m8eSdy$dDx%08dQwuUjvGKMDI_G1T zMKA+<)(I#zX{G}TA*{=Gv9rpDo2ZwLQF<~@@w1#(`!%$YjAH5ro^iHXY5MpM$zZrX zz>KmSZ<{7ibjk;puw1QhD&xoh6J^v2nBJZ3Mbr57%VxPG^rM)k4m`~dJ|2E%`VdMw z*uK>_cuFd z2w-zWg>u?AW>b;&DH&4oBtQKascK~OKiHSKcmj4<^^ZQB+73>Zd6#ay^wFJvU)Zs3 z#p(y*&vY7-T^*UyL}P7V9cSuD|6@|}y75V0EYFd**@?AJ&~UPP%#Rl0&v~_7bLQTq zJFfP%-E{hAPG7d@!Ywn_6>cD1EGv3{%bCC1^@XMXI`fC;9%U{*J-OuF^FU+Y9Rm@W zjy8Fls(%vY6gm3XH~?Fda({a~+zFm|>Gueh!-A4%`|+L$fb}nsn7}hesh3~LbS^bx z7f${h?U?j^idEA_-`O31u#;!ktj>IY5<;!z;TzA5bo-{mnpnhYrNehQQ5o-DO>RHF zY|9dx-;{%2E?RZ^owP4-wH{s`1o=g*X=VbsxvY;2*%+P~$2rzQG!XA1U5y);X)Fn0VzMG?jvohiM8 zTRu2neV6>t5})tNRVFaNw$_3*;6W{aXHo~jYSE##Ovj}`^!V| znhnrg`*%{0g{}W^M^tBjwEgFqQDr}`u;VE*{<=&0)po~gc}H^n_2$8yj$*90EN)B` zVdoDtHOaMeCt{ZVTJc&MwiPEG+evxGyH9p4UR(aZ_O328 zj_V5FJNq*;EA2!xk`f!Q)O8vsE@|`^*|7s@s>V)~63b~MyGl`THkx&;W-U!tawE|- zoq;XXVFM1-rG^xe2hrxikW&2Mhfwkm`VvD;$U~uq2AV<&A-Ld&LYwqE=g!^TSt)-` zp{3Pocjo?_bME=OckVrNHA6bqPc~8`zPN+tCYw?1fIHUd<)0;qZkPO_bC=*Ik{$Yd z^!1LD&(PDZWL!Ua@2;t@fn>SnIM&QpRm53cNj^b)JKAA7GBrh2`GFs&ekkd9M&yU_Pb9=uVfWPoapx!47co+ zGDSlcws|AcV30wfDh5S52YB1eI)*pt7zP+|GQw~iG*8E@Na08siKCe^3?psgkTRuX ziZsvvB|Z%(D2HN29_yQk7c;hyRSkFTb@@SGd|*iadF4QX%gR`AsCMn@#^ z)PmtOgD4*7NXiR_H)m|`X(2T6E*OKt=_3RNE^uLOKJ=P=$hP zX4|N^v+itTBi2dhoR|mHm8jAU`&a zZ?rV(Z`7!t)TrOoh!2e*6Lao+ek`)ju2_i0^&K-b%C!@nz#@Sn0^8wNy$-=QDV5RIYaD!ZP{6*2Ts^Y6p3Dv=wJq$e5>GO$kgUN?q_ z=IDX0Tj1h%wFJ=_8bfHLqrs5sqBB+zi05Koj?VQJ)ewU+P==|)bB2*uBNMgbMdz93 zHD-zjj_^8q7YSn*NgR@jy9uO1Mw15HAnlTjs*vo0%y!cP7HKI$gK&w6zbI)6968)% zMB@|tMs==4=>_Pn?(|>`nv5MTtfM6Mc1p0fhV|QY4?ukav>lDFV#=H>9$S*HV#zmgh?!eT_eLL zer1Pg>5kJmY#IrrH#(Kx=umotmEO=wZ?r4Dv5C?f9ZGN9Yq~6^QbGiaMlPw8>4P0Wg)ffXM-DA+KrAav&jVY@H!(l8U+uNqu)zxKn89B^eQWohy z{CU$0!bm$I1|DuZVSfu98Uql|YaIvkT8zoUjeeacDnDgDQBPBDjK(wrc2a49IT9Tx zl}e#e$LcaM`Fn}QSnowEdf)|trkjQ9X;XTW8BCzzCB*v`$AXs_7!@Z;OW_r8!ppo#3qMu6PjS?zZfc~O4 z2*wsL1(KLM7NylIvYc~lOjA*dFFc%lPP8}Yt7d!>A!x4%R7H?84R@7CAe(yA8`53v z;+xk!t#L5wSuABE0n~_r(5cjL9l?mPPfd8y zM9Y^Zv@dajd})F$9PRJtX?S!Hdct5rBWHwfOgK_~=3v}s7|43-hrJ(PzU%6DtkK`@ zJ9=U7)E?`#`;Yy|eJ6MCt(^Yl02-Pl{JMz`KGhe#^Djc)5bbF_J%VwC!2ITU49PaW4=8XrdO1fcYr z{pihCTko0ce0P`bk!ovb@*myknOrLR{pH@Jb~mEM>dN#eY@q%%M8EPtj}x1>UxkhJ zHi<9C!&sAt1E5KCJ7wK^&zyRj%Z-iA^ftu*{rAjap``xO0-v;`gFy#Oh>b#EY*b!Uxi4uwzV zQP_&X$GJFAPY4u1nKOE0)V2xw9I#I$;C&76ZwBw9(F$-@5;%dz2{ywCfU|01=|Djb z5+zI^*EDi%Gvu0)#a#}y*dW}WI7(CBZZwe_n<6*s z5r<$VU!Y}0hAblS z9YxF6h|UPbu0wI8h6wOVN#LPGt9C?r1uE7F7K-;KIsA(CIF{QE1!SRZK035+p2Tgp zVhS}BdBHsy5U^3AY?Lczr8|qN9Mhb0XF(K^QBptRZxkbitvKEaUglgzYwtC@=)a71 zzOqeHb3nYpa^M~anllPu1ot*5KI|h2qfyg6PLD&hVL{N|Kou}>j*5~qa4U)@vajYO z*nkt{i)k#_DL%!$3n7qIli6}t`EDYWc5#7%U@j4HX9jD;ASKEEAk^co5|2F!lvssZ zY{qJ>8_~(5B ztan365Lb2Tn*=}+r9)VnJ2|7m1A(fVYHXy?;F>7UQHAI}>e9?fMDdn52dYtOH|_xL zMsVjcQcij|G;8ffIF2-m5?g1i97;V!$dbaM(E;}>g%mT!&EKt-f~lp&gRAr9U}a%x zappvI>A7VIIFpBwhosm(G<9%hdZo1Jm#Y5PkCv;;fV=MpV?(%cFyr(+SS_6_KetqU z=D@;oP${iVA?p%KQR5T=T9D$F2TO}9rRBAu>7`TE`SL^M#d5W@vV=`AIVmzn78h35 zgy=@YqeCO~hYdAS3~}bp<4=u@?;G7aHtLU*=f_6;{rmQn=jk^-HokY{_?Un9o_qF} zkB{S_K~mtNh9lUA6zYQp=t@Ury(*c0qv2$mu4n?Ae4sD;urVmV)e*d#eADw^u+h^b1`{tD$fBh3- z3?EsBDTj|MqYOW==iLj_dXi)L~_6O_U+;CZvExSU;XXsN&wmP=XpvObuM|XwZY*Dz7H%_ z4^%3LN(+nP+Q_^(8EA;m(gqypj_K+4 zY0*TBZQ8oodZ@#V&>g|(DVuT~<;9rZ|4;NrvAuJo`6E6GfNyOXQj=-D)#{7N)!c}P zy|xDEK7#gXGrD?eLI9nSgim9OA;vWBE>Cj%hvRaZ)DyJU3*~5w;f?d5?4~w&(VLa& z2_Y@%z9?Nh-V;l032&&vzM5XAmRmZ$6U$)opK-h*d{od2?MHz%0*U649zl9PYW8tn zpT|)%4%iXkjsfCsgyrr594)D-e+j^ojXO687STKOzXMRPW}~ecnGU!tcH{Jt?r_bD Kt;GL>2L1(&GPjZd diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/RoslynAnalyzers/Fantasy.SourceGenerator.dll.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/RoslynAnalyzers/Fantasy.SourceGenerator.dll.meta deleted file mode 100644 index 36a7b1876..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/RoslynAnalyzers/Fantasy.SourceGenerator.dll.meta +++ /dev/null @@ -1,84 +0,0 @@ -fileFormatVersion: 2 -guid: c8d353ed0a972a74f9eae2f1f2d3038b -PluginImporter: - externalObjects: {} - serializedVersion: 2 - iconMap: {} - executionOrder: {} - defineConstraints: [] - isPreloaded: 0 - isOverridable: 0 - isExplicitlyReferenced: 0 - validateReferences: 0 - platformData: - - first: - : Any - second: - enabled: 0 - settings: - Exclude Android: 1 - Exclude Editor: 1 - Exclude Linux64: 1 - Exclude OSXUniversal: 1 - Exclude WebGL: 1 - Exclude Win: 1 - Exclude Win64: 1 - - first: - Android: Android - second: - enabled: 0 - settings: - CPU: ARMv7 - - first: - Any: - second: - enabled: 0 - settings: {} - - first: - Editor: Editor - second: - enabled: 0 - settings: - CPU: AnyCPU - DefaultValueInitialized: true - OS: AnyOS - - first: - Standalone: Linux64 - second: - enabled: 0 - settings: - CPU: None - - first: - Standalone: OSXUniversal - second: - enabled: 0 - settings: - CPU: None - - first: - Standalone: Win - second: - enabled: 0 - settings: - CPU: None - - first: - Standalone: Win64 - second: - enabled: 0 - settings: - CPU: None - - first: - WebGL: WebGL - second: - enabled: 0 - settings: {} - - first: - Windows Store Apps: WindowsStoreApps - second: - enabled: 0 - settings: - CPU: AnyCPU - userData: - assetBundleName: - assetBundleVariant: - labels: - - RoslynAnalyzer diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime.meta deleted file mode 100644 index f01866db7..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 017fdce3acc39044f8f22b0b65dc5b70 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core.meta deleted file mode 100644 index 054e84332..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 37819076a3bcb9c48ab7d3856f48f94f -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/AssemblyLifecycle.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/AssemblyLifecycle.cs deleted file mode 100644 index 6bd0ee332..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/AssemblyLifecycle.cs +++ /dev/null @@ -1,91 +0,0 @@ -using System.Collections.Concurrent; -using System.Collections.Generic; -using Fantasy.Async; - -namespace Fantasy.Assembly -{ - /// - /// 程序集生命周期管理类 - /// 管理所有注册的程序集生命周期回调,在程序集加载、卸载时触发相应的回调方法 - /// - public static class AssemblyLifecycle - { -#if FANTASY_WEBGL - /// - /// 程序集生命周期回调集合(WebGL 单线程版本) - /// - private static readonly Dictionary AssemblyLifecycles = new Dictionary(); -#else - /// - /// 程序集生命周期回调集合(线程安全版本) - /// 使用 ConcurrentDictionary 当作 Set 使用,Value 无实际意义 - /// - private static readonly ConcurrentDictionary AssemblyLifecycles = new ConcurrentDictionary(); -#endif - /// - /// 触发程序集加载事件 - /// 遍历所有已注册的生命周期回调,调用其 OnLoad 方法 - /// - /// 程序集清单对象 - /// 异步任务 - internal static async FTask OnLoad(AssemblyManifest assemblyManifest) - { - foreach (var (assemblyLifecycle, _) in AssemblyLifecycles) - { - await assemblyLifecycle.OnLoad(assemblyManifest); - } - } - - /// - /// 触发程序集卸载事件 - /// 遍历所有已注册的生命周期回调,调用其 OnUnload 方法,并清理程序集清单 - /// - /// 程序集清单对象 - /// 异步任务 - internal static async FTask OnUnLoad(AssemblyManifest assemblyManifest) - { - foreach (var (assemblyLifecycle, _) in AssemblyLifecycles) - { - await assemblyLifecycle.OnUnload(assemblyManifest); - } - assemblyManifest.Clear(); - } - - /// - /// 添加程序集生命周期回调 - /// 添加后会立即对所有已加载的程序集触发 Load 回调 - /// - /// 实现 IAssemblyLifecycle 接口的生命周期回调对象 - internal static async FTask Add(IAssemblyLifecycle assemblyLifecycle) - { -#if FANTASY_WEBGL - AssemblyLifecycles.Add(assemblyLifecycle, 0); -#else - AssemblyLifecycles.TryAdd(assemblyLifecycle, 0); -#endif - foreach (var (_, assemblyManifest) in AssemblyManifest.Manifests) - { - await assemblyLifecycle.OnLoad(assemblyManifest); - } - } - - /// - /// 移除程序集生命周期回调 - /// 移除后该回调将不再接收程序集的加载、卸载、重载事件 - /// - /// 要移除的生命周期回调对象 - internal static void Remove(IAssemblyLifecycle assemblyLifecycle) - { - AssemblyLifecycles.Remove(assemblyLifecycle, out _); - } - - /// - /// 释放所有程序集生命周期回调 - /// 清空所有已注册的生命周期回调集合 - /// - public static void Dispose() - { - AssemblyLifecycles.Clear(); - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/AssemblyManifest.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/AssemblyManifest.cs deleted file mode 100644 index ef4712419..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/AssemblyManifest.cs +++ /dev/null @@ -1,256 +0,0 @@ -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using Fantasy.Async; -using Fantasy.DataStructure.Collection; -using Fantasy.Entitas; -// ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract -#pragma warning disable CS8602 // Dereference of a possibly null reference. -#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. -#pragma warning disable CS8601 // Possible null reference assignment. -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring as nullable. -#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. -#pragma warning disable CS8603 // Possible null reference return. - -namespace Fantasy.Assembly -{ - /// - /// 程序集清单类 - /// 封装程序集的元数据和各种系统注册器,用于统一管理程序集的生命周期和系统注册 - /// - public sealed class AssemblyManifest - { - /// - /// 程序集唯一标识符 - /// 通过程序集名称的哈希值生成 - /// - public long AssemblyManifestId { get; private set; } - - /// - /// 程序集实例 - /// - public System.Reflection.Assembly Assembly { get; private set; } - - /// - /// ProtoBuf 序列化类型注册器 - /// - internal INetworkProtocolRegistrar NetworkProtocolRegistrar { get; set; } - - /// - /// 事件系统注册器 - /// - internal IEventSystemRegistrar EventSystemRegistrar { get; set; } - - /// - /// 实体系统注册器 - /// - internal IEntitySystemRegistrar EntitySystemRegistrar { get; set; } - - /// - /// 消息分发器注册器 - /// - internal IMessageHandlerResolver MessageHandlerResolver { get; set; } - - /// - /// 实体类型集合注册器 - /// - internal IEntityTypeCollectionRegistrar EntityTypeCollectionRegistrar { get; set; } - - /// - /// 网络协议 OpCode 解析器接口 - /// - internal INetworkProtocolOpCodeResolver NetworkProtocolOpCodeResolver { get; set; } - - - /// - /// 网络协议 Response 解析器接口 - /// - internal INetworkProtocolResponseTypeResolver NetworkProtocolResponseTypeResolver { get; set; } - -#if FANTASY_NET - /// - /// 分表注册器 - /// - internal ISeparateTableRegistrar SeparateTableRegistrar { get; set; } -#endif -#if FANTASY_WEBGL - /// - /// 程序集清单集合(WebGL 单线程版本) - /// Key: 程序集唯一标识, Value: 程序集清单对象 - /// - private static readonly Dictionary Manifests = new Dictionary(); -#else - /// - /// 程序集清单集合(线程安全版本) - /// Key: 程序集唯一标识, Value: 程序集清单对象 - /// - internal static readonly ConcurrentDictionary Manifests = new ConcurrentDictionary(); -#endif - /// - /// 清理程序集清单内部资源 - /// 释放所有注册器并清空引用 - /// - internal void Clear() - { - EventSystemRegistrar?.Dispose(); - - Assembly = null; - NetworkProtocolRegistrar = null; - EventSystemRegistrar = null; - EntitySystemRegistrar = null; - MessageHandlerResolver = null; - EntityTypeCollectionRegistrar = null; -#if FANTASY_NET - SeparateTableRegistrar = null; -#endif - } - - #region static - -#if FANTASY_NET - /// - /// 注册程序集清单 - /// 此方法由 Source Generator 生成的 ModuleInitializer 自动调用 - /// 直接创建并缓存完整的 AssemblyManifest - /// - /// 程序集唯一标识(通过程序集名称哈希生成) - /// 程序集实例 - /// 网络协议注册器 - /// 事件系统注册器 - /// 实体系统注册器 - /// 消息分发器注册器 - /// 实体类型集合注册器 - /// 分表注册器 - /// 网络协议 OpCode 解析器接口 - /// 网络协议 Response 解析器接口 - public static void Register( - long assemblyManifestId, - System.Reflection.Assembly assembly, - INetworkProtocolRegistrar networkProtocolRegistrar, - IEventSystemRegistrar eventSystemRegistrar, - IEntitySystemRegistrar entitySystemRegistrar, - IMessageHandlerResolver messageHandlerResolver, - IEntityTypeCollectionRegistrar entityTypeCollectionRegistrar, - ISeparateTableRegistrar separateTableRegistrar, - INetworkProtocolOpCodeResolver networkProtocolOpCodeResolver, - INetworkProtocolResponseTypeResolver networkProtocolResponseTypeResolver) - { - var manifest = new AssemblyManifest - { - Assembly = assembly, - AssemblyManifestId = assemblyManifestId, - NetworkProtocolRegistrar = networkProtocolRegistrar, - EventSystemRegistrar = eventSystemRegistrar, - EntitySystemRegistrar = entitySystemRegistrar, - MessageHandlerResolver = messageHandlerResolver, - EntityTypeCollectionRegistrar = entityTypeCollectionRegistrar, - SeparateTableRegistrar = separateTableRegistrar, - NetworkProtocolOpCodeResolver = networkProtocolOpCodeResolver, - NetworkProtocolResponseTypeResolver = networkProtocolResponseTypeResolver - }; - - Manifests.TryAdd(assemblyManifestId, manifest); - AssemblyLifecycle.OnLoad(manifest).Coroutine(); - } -#endif -#if FANTASY_UNITY - /// - /// 注册程序集清单 - /// 此方法由 Source Generator 生成的 ModuleInitializer 自动调用 - /// 直接创建并缓存完整的 AssemblyManifest - /// - /// 程序集唯一标识(通过程序集名称哈希生成) - /// 程序集实例 - /// 网络协议注册器 - /// 事件系统注册器 - /// 实体系统注册器 - /// 消息分发器注册器 - /// 实体类型集合注册器 - /// 网络协议 OpCode 解析器接口 - /// 网络协议 Response 解析器接口 - public static void Register( - long assemblyManifestId, - System.Reflection.Assembly assembly, - INetworkProtocolRegistrar networkProtocolRegistrar, - IEventSystemRegistrar eventSystemRegistrar, - IEntitySystemRegistrar entitySystemRegistrar, - IMessageHandlerResolver messageHandlerResolver, - IEntityTypeCollectionRegistrar entityTypeCollectionRegistrar, - INetworkProtocolOpCodeResolver networkProtocolOpCodeResolver, - INetworkProtocolResponseTypeResolver networkProtocolResponseTypeResolver) - { - var manifest = new AssemblyManifest - { - Assembly = assembly, - AssemblyManifestId = assemblyManifestId, - NetworkProtocolRegistrar = networkProtocolRegistrar, - EventSystemRegistrar = eventSystemRegistrar, - EntitySystemRegistrar = entitySystemRegistrar, - MessageHandlerResolver = messageHandlerResolver, - EntityTypeCollectionRegistrar = entityTypeCollectionRegistrar, - NetworkProtocolOpCodeResolver = networkProtocolOpCodeResolver, - NetworkProtocolResponseTypeResolver = networkProtocolResponseTypeResolver - }; -#if FANTASY_WEBGL - Manifests[assemblyManifestId] = manifest; -#else - Manifests.TryAdd(assemblyManifestId, manifest); -#endif - AssemblyLifecycle.OnLoad(manifest).Coroutine(); - } -#endif - /// - /// 取消注册指定程序集的清单 - /// - /// 程序集唯一标识 - public static void Unregister(long assemblyManifestId) - { -#if FANTASY_WEBGL - if (Manifests.TryGetValue(assemblyManifestId, out var manifest)) - { - AssemblyLifecycle.OnUnLoad(manifest).Coroutine(); - Manifests.Remove(assemblyManifestId); - } -#else - if (Manifests.TryRemove(assemblyManifestId, out var manifest)) - { - AssemblyLifecycle.OnUnLoad(manifest).Coroutine(); - } -#endif - } - - /// - /// 获取当前框架注册的所有程序集清单 - /// 通过迭代器模式返回所有已注册的程序集清单对象 - /// - public static IEnumerable GetAssemblyManifest - { - get - { - foreach (var (_, assemblyManifest) in Manifests) - { - yield return assemblyManifest; - } - } - } - - /// - /// 释放所有程序集清单资源 - /// 卸载所有已注册的程序集,触发卸载事件,清理所有注册器和生命周期回调 - /// - /// 异步任务 - public static async FTask Dispose() - { - foreach (var (_, assemblyManifest) in Manifests) - { - await AssemblyLifecycle.OnUnLoad(assemblyManifest); - assemblyManifest.Clear(); - } - - Manifests.Clear(); - AssemblyLifecycle.Dispose(); - } - - #endregion - } -} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface.meta deleted file mode 100644 index dabfccbfd..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 21c355b8a670428478a4d839823fda39 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IAssemblyLifecycle.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IAssemblyLifecycle.cs deleted file mode 100644 index 57d7ad99a..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IAssemblyLifecycle.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using Fantasy.Async; - -namespace Fantasy.Assembly -{ - /// - /// 程序集生命周期回调接口 - /// 实现此接口的类型可以接收程序集的加载、卸载、重载事件通知 - /// 通过 AssemblySystem.Add() 注册后,在程序集状态变化时会自动调用对应的生命周期方法 - /// - internal interface IAssemblyLifecycle - { - /// - /// 程序集加载或重载时调用 - /// 当新的程序集被加载到框架中时触发此回调,重新加载已存在的程序集时也会调用 - /// - /// 程序集清单对象,包含程序集的元数据和注册器 - /// 异步任务 - FTask OnLoad(AssemblyManifest assemblyManifest); - - /// - /// 程序集卸载时调用 - /// 当程序集从框架中卸载时触发此回调,应在此方法中清理该程序集相关的资源 - /// - /// 程序集清单对象,包含程序集的元数据和注册器 - /// 异步任务 - FTask OnUnload(AssemblyManifest assemblyManifest); - } -} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IEntitySystemRegistrar.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IEntitySystemRegistrar.cs deleted file mode 100644 index 8c2f8c725..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IEntitySystemRegistrar.cs +++ /dev/null @@ -1,73 +0,0 @@ -using System; -using System.Collections.Generic; -using Fantasy.Entitas; -using Fantasy.Entitas.Interface; - -namespace Fantasy.Assembly -{ - /// - /// 实体系统注册器接口 - /// 由 Source Generator 自动生成实现类,用于在程序集加载时注册实体系统 - /// - public interface IEntitySystemRegistrar - { -#if FANTASY_NET - /// - /// 注册该程序集中的所有实体系统 - /// - /// Awake 系统容器 - /// Update 系统容器 - /// Destroy 系统容器 - /// Deserialize 系统容器 - void RegisterSystems( - Dictionary> awakeSystems, - Dictionary> updateSystems, - Dictionary> destroySystems, - Dictionary> deserializeSystems); - - /// - /// 取消注册该程序集中的所有实体系统(热重载卸载时调用) - /// - /// Awake 系统容器 - /// Update 系统容器 - /// Destroy 系统容器 - /// Deserialize 系统容器 - void UnRegisterSystems( - Dictionary> awakeSystems, - Dictionary> updateSystems, - Dictionary> destroySystems, - Dictionary> deserializeSystems); -#endif -#if FANTASY_UNITY - /// - /// 注册该程序集中的所有实体系统 - /// - /// Awake 系统容器 - /// Update 系统容器 - /// Destroy 系统容器 - /// Deserialize 系统容器 - /// LateUpdate 系统容器 - void RegisterSystems( - Dictionary> awakeSystems, - Dictionary> updateSystems, - Dictionary> destroySystems, - Dictionary> deserializeSystems, - Dictionary> lateUpdateSystems); - - /// - /// 取消注册该程序集中的所有实体系统(热重载卸载时调用) - /// - /// Awake 系统容器 - /// Update 系统容器 - /// Destroy 系统容器 - /// Deserialize 系统容器 - /// LateUpdate 系统容器 - void UnRegisterSystems( - Dictionary> awakeSystems, - Dictionary> updateSystems, - Dictionary> destroySystems, - Dictionary> deserializeSystems, - Dictionary> lateUpdateSystems); -#endif - } -} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IEntityTypeCollectionRegistrar.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IEntityTypeCollectionRegistrar.cs deleted file mode 100644 index 32297d8e1..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IEntityTypeCollectionRegistrar.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Fantasy.Assembly -{ - /// - /// 实体类型集合注册器接口 - /// 由 Source Generator 自动生成实现类,用于收集和提供程序集中定义的所有实体类型 - /// - public interface IEntityTypeCollectionRegistrar - { - /// - /// 获取该程序集中定义的所有实体类型 - /// 返回继承自 Entity 的所有类型列表 - /// - /// 实体类型列表 - List GetEntityTypes(); - } -} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IEntityTypeCollectionRegistrar.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IEntityTypeCollectionRegistrar.cs.meta deleted file mode 100644 index a0b76d095..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IEntityTypeCollectionRegistrar.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 15eca5c104b90d548b156fe72a8ab7df -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IEventSystemRegistrar.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IEventSystemRegistrar.cs deleted file mode 100644 index 1fdd602b4..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IEventSystemRegistrar.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using Fantasy.DataStructure.Collection; -using Fantasy.Event; - -namespace Fantasy.Assembly -{ - /// - /// 事件系统注册器接口 - /// 由 Source Generator 自动生成实现类,用于在程序集加载时注册事件系统 - /// - public interface IEventSystemRegistrar : IDisposable - { - /// - /// 注册该程序集中的所有事件系统 - /// - /// 同步事件容器 - /// 异步事件容器 - /// 领域事件容器 - void RegisterSystems( - OneToManyList events, - OneToManyList asyncEvents, - OneToManyList sphereEvents); - - /// - /// 取消注册该程序集中的所有事件系统(热重载卸载时调用) - /// - /// 同步事件容器 - /// 异步事件容器 - /// 领域事件容器 - void UnRegisterSystems( - OneToManyList events, - OneToManyList asyncEvents, - OneToManyList sphereEvents); - } -} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IEventSystemRegistrar.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IEventSystemRegistrar.cs.meta deleted file mode 100644 index e84253c7c..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IEventSystemRegistrar.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 54d9defaadec9b043bf8b3efea1f0373 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IMessageHandlerResolver.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IMessageHandlerResolver.cs deleted file mode 100644 index 9a12fa145..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IMessageHandlerResolver.cs +++ /dev/null @@ -1,49 +0,0 @@ -using System; -using System.Collections.Generic; -using Fantasy.DataStructure.Dictionary; -using Fantasy.Entitas; -using Fantasy.Network; -using Fantasy.Network.Interface; -using Fantasy.Async; - -namespace Fantasy.Assembly -{ - /// - /// 消息分发器注册器接口 - /// 由 Source Generator 自动生成实现类,用于在程序集加载时注册网络消息处理器 - /// - public interface IMessageHandlerResolver - { - /// - /// - /// - /// - int GetMessageHandlerCount(); - /// - /// - /// - /// - /// - /// - /// - /// - bool MessageHandler(Session session, uint rpcId, uint protocolCode, object message); -#if FANTASY_NET - /// - /// - /// - /// - int GetRouteMessageHandlerCount(); - /// - /// - /// - /// - /// - /// - /// - /// - /// - FTask RouteMessageHandler(Session session, Entity entity, uint rpcId, uint protocolCode, object message); -#endif - } -} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IMessageHandlerResolver.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IMessageHandlerResolver.cs.meta deleted file mode 100644 index fc5e76df3..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/IMessageHandlerResolver.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2fa889cb07e1d344ca1b5e592c991575 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/INetworkProtocolOpCodeResolver.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/INetworkProtocolOpCodeResolver.cs deleted file mode 100644 index 6251037d2..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/INetworkProtocolOpCodeResolver.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; - -namespace Fantasy.Assembly -{ - /// - /// 网络协议 OpCode 解析器接口 - /// 用于通过生成的 switch 表达式实现高性能的 OpCode 到 Type 的解析 - /// - /// - /// 此接口由 SourceGenerator 自动生成的类实现。 - /// 每个包含网络协议的程序集都会生成自己的解析器实现。 - /// 生成的实现使用 switch 表达式而不是字典查找,以获得更好的性能。 - /// - public interface INetworkProtocolOpCodeResolver - { - /// - /// 获取当前OpCode数量 - /// - /// 返回对应的OpCode数量 - int GetOpCodeCount(); - /// - /// 获取当前RouteType数量 - /// - /// 返回对应的RouteType数量 - int GetCustomRouteTypeCount(); - /// - /// 根据指定的 OpCode 获取对应的 Type - /// - /// 网络协议操作码 - /// OpCode 对应的类型;如果未找到则返回 null - Type GetOpCodeType(uint opCode); - /// - /// 根据指定的 OpCode 获取对应的 CustomRouteType - /// - /// 网络协议操作码 - /// OpCode 对应的CustomRouteType;如果未找到则返回 null - int? GetCustomRouteType(uint opCode); - - } -} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/INetworkProtocolOpCodeResolver.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/INetworkProtocolOpCodeResolver.cs.meta deleted file mode 100644 index 2abbe9f9d..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/INetworkProtocolOpCodeResolver.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5bc0a3c95fad0b54bafc40ad4efd9df3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/INetworkProtocolRegistrar.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/INetworkProtocolRegistrar.cs deleted file mode 100644 index 24b8cb091..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/INetworkProtocolRegistrar.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Fantasy.Assembly -{ - /// - /// NetworkProtocol 类型注册器接口 - /// 由 Source Generator 自动生成实现类,用于收集和提供程序集中需要 NetworkProtocol 序列化的类型 - /// - public interface INetworkProtocolRegistrar - { - /// - /// 获取该程序集中需要 NetworkProtocol 序列化的所有类型 - /// 返回所有使用 NetworkProtocol 序列化特性标记的类型列表 - /// - /// NetworkProtocol 序列化类型列表 - List GetNetworkProtocolTypes(); - } -} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/INetworkProtocolRegistrar.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/INetworkProtocolRegistrar.cs.meta deleted file mode 100644 index 60548b066..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/INetworkProtocolRegistrar.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 455bad26fa79b644ba8415cb1ba700fd -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/INetworkProtocolResponseTypeResolver.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/INetworkProtocolResponseTypeResolver.cs deleted file mode 100644 index 0385244ee..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/INetworkProtocolResponseTypeResolver.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System; - -namespace Fantasy.Assembly -{ - /// - /// 网络协议响应类型解析器接口 - /// 用于根据 OpCode 解析对应的响应消息类型 - /// 此接口通常由 NetworkProtocol SourceGenerator 自动生成实现 - /// - public interface INetworkProtocolResponseTypeResolver - { - /// - /// 获取已注册的 Response 总数 - /// - /// 协议系统中可用的 OpCode 数量 - int GetRequestCount(); - - /// - /// 获取指定 OpCode 对应的响应消息类型 - /// 用于在处理网络消息时确定期望的响应类型 - /// - /// 要解析的 OpCode - /// 响应消息的类型,如果该 OpCode 没有关联响应类型则返回 null - Type GetResponseType(uint opCode); - } -} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/INetworkProtocolResponseTypeResolver.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/INetworkProtocolResponseTypeResolver.cs.meta deleted file mode 100644 index 496979846..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/INetworkProtocolResponseTypeResolver.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 214fdb11ed5d07649973f5d6ad14a792 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/ISeparateTableRegistrar.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/ISeparateTableRegistrar.cs deleted file mode 100644 index 821050e30..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/ISeparateTableRegistrar.cs +++ /dev/null @@ -1,34 +0,0 @@ -#if FANTASY_NET -namespace Fantasy.Assembly; - -/// -/// 分表注册器接口,用于自动注册标记了 SeparateTableAttribute 的实体类型。 -/// 通过 Source Generator 自动生成实现类,替代运行时反射,提升性能。 -/// -public interface ISeparateTableRegistrar -{ - /// - /// 分表信息记录,包含父实体类型、子实体类型和数据库集合名称。 - /// - /// 父实体的类型,表示子实体属于哪个父实体。 - /// 子实体的类型,即标记了 SeparateTableAttribute 的实体类型。 - /// 在数据库中使用的集合名称。 - public sealed record SeparateTableInfo(Type RootType, Type EntityType, string TableName); - - /// - /// 注册所有分表信息。 - /// 返回包含所有标记了 SeparateTableAttribute 的实体及其配置信息的列表。 - /// - /// 分表信息列表。 - List Register(); - - /// - /// 反注册所有分表信息。 - /// 返回需要移除的分表信息列表。 - /// - /// 分表信息列表。 - List UnRegister(); -} - - -#endif diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/ISeparateTableRegistrar.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/ISeparateTableRegistrar.cs.meta deleted file mode 100644 index 288556955..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Assembly/Interface/ISeparateTableRegistrar.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e44ea41d753b8454bba7ca941bc4e3d6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Benchmark.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Benchmark.meta deleted file mode 100644 index 81a76676f..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Benchmark.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 40a9658e852cd49428c3c3d2495f92b7 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Benchmark/Handler.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Benchmark/Handler.meta deleted file mode 100644 index 741d97c1c..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Benchmark/Handler.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 38db8c2397499654db6dd3b6c3711060 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Benchmark/Handler/BenchmarkRequestHandler.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Benchmark/Handler/BenchmarkRequestHandler.cs deleted file mode 100644 index 85325479d..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Benchmark/Handler/BenchmarkRequestHandler.cs +++ /dev/null @@ -1,25 +0,0 @@ -using Fantasy.Async; -using Fantasy.InnerMessage; -using Fantasy.Network.Interface; - -#if FANTASY_NET -namespace Fantasy.Network.Benchmark.Handler; - -/// -/// BenchmarkRequestHandler -/// -public sealed class BenchmarkRequestHandler : MessageRPC -{ - /// - /// Run方法 - /// - /// - /// - /// - /// - protected override async FTask Run(Session session, BenchmarkRequest request, BenchmarkResponse response, Action reply) - { - await FTask.CompletedTask; - } -} -#endif diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Benchmark/Handler/BenchmarkRequestHandler.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Benchmark/Handler/BenchmarkRequestHandler.cs.meta deleted file mode 100644 index 881058548..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Benchmark/Handler/BenchmarkRequestHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 819edfe1cb956754986be6db2e67ba07 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase.meta deleted file mode 100644 index 5a4bdb5b9..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 4961a2a852e804ad69bad45492f22555 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/DataBaseType.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/DataBaseType.cs deleted file mode 100644 index 2fb03ec8c..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/DataBaseType.cs +++ /dev/null @@ -1,20 +0,0 @@ -// ReSharper disable CheckNamespace -// ReSharper disable InconsistentNaming -#if FANTASY_NET -namespace Fantasy.DataBase; - -/// -/// 数据库类型 -/// -public enum DataBaseType -{ - /// - /// 默认 - /// - None = 0, - /// - /// MongoDB - /// - MongoDB = 1 -} -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/DataBaseType.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/DataBaseType.cs.meta deleted file mode 100644 index baac3320b..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/DataBaseType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: abd508d980707405bb2d5bbfee14b6b8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/IDataBase.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/IDataBase.cs deleted file mode 100644 index 6a2fe8b96..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/IDataBase.cs +++ /dev/null @@ -1,210 +0,0 @@ -#if FANTASY_NET -using System; -using System.Collections.Generic; -using System.Linq.Expressions; -using Fantasy.Async; -using Fantasy.Entitas; -using MongoDB.Driver; -// ReSharper disable InconsistentNaming -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring as nullable. - -#pragma warning disable CS8625 - -namespace Fantasy.DataBase -{ - /// - /// 数据库设置助手 - /// - public static class DataBaseSetting - { - /// - /// 初始化自定义委托,当设置了这个委托后,就不会自动创建MongoClient,需要自己在委托里创建MongoClient。 - /// - public static Func? MongoDBCustomInitialize; - } - - /// - /// MongoDB自定义连接参数 - /// - public sealed class DataBaseCustomConfig - { - /// - /// 当前Scene - /// - public Scene Scene; - /// - /// 连接字符串 - /// - public string ConnectionString; - /// - /// 数据库名字 - /// - public string DBName; - } - - /// - /// 表示用于执行各种数据库操作的数据库接口。 - /// - public interface IDataBase : IDisposable - { - /// - /// 获得当前数据的类型 - /// - public DataBaseType GetDataBaseType { get;} - /// - /// 获得对应数据的操作实例 - /// - /// 如MongoDB就是IMongoDatabase - public object GetDataBaseInstance { get;} - /// - /// 初始化数据库连接。 - /// - IDataBase Initialize(Scene scene, string connectionString, string dbName); - /// - /// 在指定的集合中检索类型 的实体数量。 - /// - FTask Count(string collection = null) where T : Entity; - /// - /// 在指定的集合中检索满足给定筛选条件的类型 的实体数量。 - /// - FTask Count(Expression> filter, string collection = null) where T : Entity; - /// - /// 检查指定集合中是否存在类型 的实体。 - /// - FTask Exist(string collection = null) where T : Entity; - /// - /// 检查指定集合中是否存在满足给定筛选条件的类型 的实体。 - /// - FTask Exist(Expression> filter, string collection = null) where T : Entity; - /// - /// 从指定集合中检索指定 ID 的类型 的实体,不锁定。 - /// - FTask QueryNotLock(long id, bool isDeserialize = false, string collection = null) where T : Entity; - /// - /// 从指定集合中检索指定 ID 的类型 的实体。 - /// - FTask Query(long id, bool isDeserialize = false, string collection = null) where T : Entity; - /// - /// 按页查询满足给定筛选条件的类型 的实体数量和日期。 - /// - FTask<(int count, List dates)> QueryCountAndDatesByPage(Expression> filter, int pageIndex, int pageSize, bool isDeserialize = false, string collection = null) where T : Entity; - /// - /// 按页查询满足给定筛选条件的类型 的实体数量和日期。 - /// - FTask<(int count, List dates)> QueryCountAndDatesByPage(Expression> filter, int pageIndex, int pageSize, string[] cols, bool isDeserialize = false, string collection = null) where T : Entity; - /// - /// 分页查询指定集合中满足给定筛选条件的类型 的实体列表。 - /// - FTask> QueryByPage(Expression> filter, int pageIndex, int pageSize, bool isDeserialize = false, string collection = null) where T : Entity; - /// - /// 分页查询指定集合中满足给定筛选条件的类型 的实体列表,仅返回指定列的数据。 - /// - FTask> QueryByPage(Expression> filter, int pageIndex, int pageSize, string[] cols, bool isDeserialize = false, string collection = null) where T : Entity; - /// - /// 从指定集合中按页查询满足给定筛选条件的类型 的实体列表,按指定字段排序。 - /// - FTask> QueryByPageOrderBy(Expression> filter, int pageIndex, int pageSize, Expression> orderByExpression, bool isAsc = true, bool isDeserialize = false, string collection = null) where T : Entity; - /// - /// 检索满足给定筛选条件的类型 的第一个实体,从指定集合中。 - /// - FTask First(Expression> filter, bool isDeserialize = false, string collection = null) where T : Entity; - /// - /// 查询指定集合中满足给定 JSON 查询字符串的类型 的第一个实体,仅返回指定列的数据。 - /// - FTask First(string json, string[] cols, bool isDeserialize = false, string collection = null) where T : Entity; - /// - /// 从指定集合中按页查询满足给定筛选条件的类型 的实体列表,按指定字段排序。 - /// - FTask> QueryOrderBy(Expression> filter, Expression> orderByExpression, bool isAsc = true, bool isDeserialize = false, string collection = null) where T : Entity; - /// - /// 从指定集合中按页查询满足给定筛选条件的类型 的实体列表。 - /// - FTask> Query(Expression> filter, bool isDeserialize = false, string collection = null) where T : Entity; - /// - /// 查询指定集合中满足给定筛选条件的类型 实体列表,仅返回指定字段的数据。 - /// - FTask> Query(Expression> filter, Expression>[] cols, bool isDeserialize = false, string collection = null) where T : Entity; - /// - /// 查询指定 ID 的多个集合,将结果存储在给定的实体列表中。 - /// - FTask Query(long id, List collectionNames, List result, bool isDeserialize = false); - /// - /// 根据给定的 JSON 查询字符串查询指定集合中的类型 实体列表。 - /// - FTask> QueryJson(string json, bool isDeserialize = false, string collection = null) where T : Entity; - /// - /// 根据给定的 JSON 查询字符串查询指定集合中的类型 实体列表,仅返回指定列的数据。 - /// - FTask> QueryJson(string json, string[] cols, bool isDeserialize = false, string collection = null) where T : Entity; - /// - /// 根据给定的 JSON 查询字符串查询指定集合中的类型 实体列表,通过指定的任务 ID 进行标识。 - /// - FTask> QueryJson(long taskId, string json, bool isDeserialize = false, string collection = null) where T : Entity; - /// - /// 查询指定集合中满足给定筛选条件的类型 实体列表,仅返回指定列的数据。 - /// - FTask> Query(Expression> filter, string[] cols, bool isDeserialize = false, string collection = null) where T : Entity; - /// - /// 保存类型 实体到指定集合中,如果集合不存在将自动创建。 - /// - FTask Save(T entity, string collection = null) where T : Entity, new(); - /// - /// 保存一组实体到数据库中,根据实体列表的 ID 进行区分和存储。 - /// - FTask Save(long id, List entities); - /// - /// 通过事务会话将类型 实体保存到指定集合中,如果集合不存在将自动创建。 - /// - FTask Save(object transactionSession, T entity, string collection = null) where T : Entity; - /// - /// 向指定集合中插入一个类型 实体,如果集合不存在将自动创建。 - /// - FTask Insert(T entity, string collection = null) where T : Entity, new(); - /// - /// 批量插入一组类型 实体到指定集合中,如果集合不存在将自动创建。 - /// - FTask InsertBatch(IEnumerable list, string collection = null) where T : Entity, new(); - /// - /// 通过事务会话,批量插入一组类型 实体到指定集合中,如果集合不存在将自动创建。 - /// - FTask InsertBatch(object transactionSession, IEnumerable list, string collection = null) where T : Entity, new(); - /// - /// 通过事务会话,根据指定的 ID 从数据库中删除指定类型 实体。 - /// - FTask Remove(object transactionSession, long id, string collection = null) where T : Entity, new(); - /// - /// 根据指定的 ID 从数据库中删除指定类型 实体。 - /// - FTask Remove(long id, string collection = null) where T : Entity, new(); - /// - /// 通过事务会话,根据给定的筛选条件从数据库中删除指定类型 实体。 - /// - FTask Remove(long coroutineLockQueueKey, object transactionSession, Expression> filter, string collection = null) where T : Entity, new(); - /// - /// 根据给定的筛选条件从数据库中删除指定类型 实体。 - /// - FTask Remove(long coroutineLockQueueKey, Expression> filter, string collection = null) where T : Entity, new(); - /// - /// 根据给定的筛选条件计算指定集合中类型 实体某个属性的总和。 - /// - FTask Sum(Expression> filter, Expression> sumExpression, string collection = null) where T : Entity; - /// - /// 在指定的集合中创建索引,以提高类型 实体的查询性能。 - /// - FTask CreateIndex(string collection, params object[] keys) where T : Entity; - /// - /// 在默认集合中创建索引,以提高类型 实体的查询性能。 - /// - FTask CreateIndex(params object[] keys) where T : Entity; - /// - /// 创建指定类型 的数据库,用于存储实体。 - /// - FTask CreateDB() where T : Entity; - /// - /// 根据指定类型创建数据库,用于存储实体。 - /// - FTask CreateDB(Type type); - } -} - -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/IDataBase.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/IDataBase.cs.meta deleted file mode 100644 index 9be13ba16..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/IDataBase.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 83202aeeb0df040de8735030956ca861 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/MongoDataBase.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/MongoDataBase.cs deleted file mode 100644 index 49948f498..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/MongoDataBase.cs +++ /dev/null @@ -1,1081 +0,0 @@ -#if FANTASY_NET -using System.Linq.Expressions; -using Fantasy.Async; -using Fantasy.DataStructure.Collection; -using Fantasy.Entitas; -using Fantasy.Helper; -using Fantasy.Serialize; -using MongoDB.Bson; -using MongoDB.Driver; -#pragma warning disable CS8602 // Dereference of a possibly null reference. -#pragma warning disable CS8603 // Possible null reference return. -#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. - -namespace Fantasy.DataBase -{ - /// - /// 使用 MongoDB 数据库的实现。 - /// - public sealed class MongoDataBase : IDataBase - { - private const int DefaultTaskSize = 1024; - private Scene _scene; - private MongoClient _mongoClient; - private ISerialize _serializer; - private IMongoDatabase _mongoDatabase; - private CoroutineLock _dataBaseLock; - private readonly HashSet _collections = new HashSet(); - /// - /// 获得当前数据的类型 - /// - public DataBaseType GetDataBaseType { get; } = DataBaseType.MongoDB; - /// - /// 获得对应数据的操作实例 - /// - public object GetDataBaseInstance => _mongoDatabase; - /// - /// 初始化 MongoDB 数据库连接并记录所有集合名。 - /// - /// 场景对象。 - /// 数据库连接字符串。 - /// 数据库名称。 - /// 初始化后的数据库实例。 - public IDataBase Initialize(Scene scene, string connectionString, string dbName) - { - _scene = scene; - _mongoClient = DataBaseSetting.MongoDBCustomInitialize != null - ? DataBaseSetting.MongoDBCustomInitialize(new DataBaseCustomConfig() - { - Scene = scene, ConnectionString = connectionString, DBName = dbName - }) - : new MongoClient(connectionString); - _mongoDatabase = _mongoClient.GetDatabase(dbName); - _dataBaseLock = scene.CoroutineLockComponent.Create(GetType().TypeHandle.Value.ToInt64()); - // 记录所有集合名 - _collections.UnionWith(_mongoDatabase.ListCollectionNames().ToList()); - _serializer = SerializerManager.GetSerializer(FantasySerializerType.Bson); - return this; - } - - /// - /// 销毁释放资源。 - /// - public void Dispose() - { - // 优先释放协程锁。 - _dataBaseLock.Dispose(); - // 清理资源。 - _scene = null; - _serializer = null; - _mongoDatabase = null; - _dataBaseLock = null; - _collections.Clear(); - _mongoClient.Dispose(); - } - - #region Other - - /// - /// 对满足条件的文档中的某个数值字段进行求和操作。 - /// - /// 实体类型。 - /// 用于筛选文档的表达式。 - /// 要对其进行求和的字段表达式。 - /// 集合名称,可选。如果未指定,将使用实体类型的名称。 - /// 满足条件的文档中指定字段的求和结果。 - public async FTask Sum(Expression> filter, Expression> sumExpression, string collection = null) where T : Entity - { - var member = (MemberExpression)((UnaryExpression)sumExpression.Body).Operand; - var projection = new BsonDocument("_id", "null").Add("Result", new BsonDocument("$sum", $"${member.Member.Name}")); - var data = await GetCollection(collection).Aggregate().Match(filter).Group(projection).FirstOrDefaultAsync(); - return data == null ? 0 : Convert.ToInt64(data["Result"]); - } - - #endregion - - #region GetCollection - - /// - /// 获取指定集合中的 MongoDB 文档的 IMongoCollection 对象。 - /// - /// 实体类型。 - /// 集合名称,可选。如果未指定,将使用实体类型的名称。 - /// IMongoCollection 对象。 - private IMongoCollection GetCollection(string collection = null) - { - return _mongoDatabase.GetCollection(collection ?? typeof(T).Name); - } - - /// - /// 获取指定集合中的 MongoDB 文档的 IMongoCollection 对象,其中实体类型为 Entity。 - /// - /// 集合名称。 - /// IMongoCollection 对象。 - private IMongoCollection GetCollection(string name) - { - return _mongoDatabase.GetCollection(name); - } - - #endregion - - #region Count - - /// - /// 统计指定集合中满足条件的文档数量。 - /// - /// 实体类型。 - /// 集合名称,可选。如果未指定,将使用实体类型的名称。 - /// 满足条件的文档数量。 - public async FTask Count(string collection = null) where T : Entity - { - return await GetCollection(collection).CountDocumentsAsync(d => true); - } - - /// - /// 统计指定集合中满足条件的文档数量。 - /// - /// 实体类型。 - /// 用于筛选文档的表达式。 - /// 集合名称,可选。如果未指定,将使用实体类型的名称。 - /// 满足条件的文档数量。 - public async FTask Count(Expression> filter, string collection = null) where T : Entity - { - return await GetCollection(collection).CountDocumentsAsync(filter); - } - - #endregion - - #region Exist - - /// - /// 判断指定集合中是否存在文档。 - /// - /// 实体类型。 - /// 集合名称,可选。如果未指定,将使用实体类型的名称。 - /// 如果存在文档则返回 true,否则返回 false。 - public async FTask Exist(string collection = null) where T : Entity - { - return await Count(collection) > 0; - } - - /// - /// 判断指定集合中是否存在满足条件的文档。 - /// - /// 实体类型。 - /// 用于筛选文档的表达式。 - /// 集合名称,可选。如果未指定,将使用实体类型的名称。 - /// 如果存在满足条件的文档则返回 true,否则返回 false。 - public async FTask Exist(Expression> filter, string collection = null) where T : Entity - { - return await Count(filter, collection) > 0; - } - - #endregion - - #region Query - - /// - /// 在不加数据库锁定的情况下,查询指定 ID 的文档。 - /// - /// 文档实体类型。 - /// 要查询的文档 ID。 - /// 是否在查询后反序列化,执行反序列化后会自动将实体注册到框架系统中,并且能正常使用组件相关功能。 - /// 集合名称。 - /// 查询到的文档。 - public async FTask QueryNotLock(long id, bool isDeserialize = false, string collection = null) where T : Entity - { - var cursor = await GetCollection(collection).FindAsync(d => d.Id == id); - var v = await cursor.FirstOrDefaultAsync(); - - if (isDeserialize && v != null) - { - v.Deserialize(_scene); - } - - return v; - } - - /// - /// 查询指定 ID 的文档,并加数据库锁定以确保数据一致性。 - /// - /// 文档实体类型。 - /// 要查询的文档 ID。 - /// 是否在查询后反序列化,执行反序列化后会自动将实体注册到框架系统中,并且能正常使用组件相关功能。 - /// 集合名称。 - /// 查询到的文档。 - public async FTask Query(long id, bool isDeserialize = false, string collection = null) where T : Entity - { - using (await _dataBaseLock.Wait(id)) - { - var cursor = await GetCollection(collection).FindAsync(d => d.Id == id); - var v = await cursor.FirstOrDefaultAsync(); - - if (isDeserialize && v != null) - { - v.Deserialize(_scene); - } - - return v; - } - } - - /// - /// 通过分页查询并返回满足条件的文档数量和日期列表(不加锁)。 - /// - /// 文档实体类型。 - /// 查询过滤条件。 - /// 页码。 - /// 每页大小。 - /// 是否在查询后反序列化,执行反序列化后会自动将实体注册到框架系统中,并且能正常使用组件相关功能。 - /// 集合名称。 - /// 满足条件的文档数量和日期列表。 - public async FTask<(int count, List dates)> QueryCountAndDatesByPage(Expression> filter, int pageIndex, int pageSize, bool isDeserialize = false, string collection = null) where T : Entity - { - using (await _dataBaseLock.Wait(RandomHelper.RandInt64() % DefaultTaskSize)) - { - var count = await Count(filter); - var dates = await QueryByPage(filter, pageIndex, pageSize, isDeserialize, collection); - return ((int)count, dates); - } - } - - /// - /// 通过分页查询并返回满足条件的文档数量和日期列表(加锁)。 - /// - /// 文档实体类型。 - /// 查询过滤条件。 - /// 页码。 - /// 每页大小。 - /// 要查询的列名称数组。 - /// 是否在查询后反序列化,执行反序列化后会自动将实体注册到框架系统中,并且能正常使用组件相关功能。 - /// 集合名称。 - /// 满足条件的文档数量和日期列表。 - public async FTask<(int count, List dates)> QueryCountAndDatesByPage(Expression> filter, int pageIndex, int pageSize, string[] cols, bool isDeserialize = false, string collection = null) where T : Entity - { - using (await _dataBaseLock.Wait(RandomHelper.RandInt64() % DefaultTaskSize)) - { - var count = await Count(filter); - var dates = await QueryByPage(filter, pageIndex, pageSize, cols, isDeserialize, collection); - return ((int)count, dates); - } - } - - /// - /// 通过分页查询并返回满足条件的文档列表(不加锁)。 - /// - /// 文档实体类型。 - /// 查询过滤条件。 - /// 页码。 - /// 每页大小。 - /// 是否在查询后反序列化,执行反序列化后会自动将实体注册到框架系统中,并且能正常使用组件相关功能。 - /// 集合名称。 - /// 满足条件的文档列表。 - public async FTask> QueryByPage(Expression> filter, int pageIndex, int pageSize, bool isDeserialize = false, string collection = null) where T : Entity - { - using (await _dataBaseLock.Wait(RandomHelper.RandInt64() % DefaultTaskSize)) - { - var list = await GetCollection(collection).Find(filter).Skip((pageIndex - 1) * pageSize) - .Limit(pageSize) - .ToListAsync(); - - if (!isDeserialize || list is not { Count: > 0 }) - { - return list; - } - - foreach (var entity in list) - { - entity.Deserialize(_scene); - } - - return list; - } - } - - /// - /// 通过分页查询并返回满足条件的文档列表(加锁)。 - /// - /// 文档实体类型。 - /// 查询过滤条件。 - /// 页码。 - /// 每页大小。 - /// 要查询的列名称数组。 - /// 是否在查询后反序列化,执行反序列化后会自动将实体注册到框架系统中,并且能正常使用组件相关功能。 - /// 集合名称。 - /// 满足条件的文档列表。 - public async FTask> QueryByPage(Expression> filter, int pageIndex, int pageSize, string[] cols, bool isDeserialize = false, string collection = null) where T : Entity - { - using (await _dataBaseLock.Wait(RandomHelper.RandInt64() % DefaultTaskSize)) - { - var projection = Builders.Projection.Include(""); - - foreach (var col in cols) - { - projection = projection.Include(col); - } - - var list = await GetCollection(collection).Find(filter).Project(projection) - .Skip((pageIndex - 1) * pageSize).Limit(pageSize).ToListAsync(); - - if (!isDeserialize || list is not { Count: > 0 }) - { - return list; - } - - foreach (var entity in list) - { - entity.Deserialize(_scene); - } - - return list; - } - } - - /// - /// 通过分页查询并返回满足条件的文档列表,并按指定表达式进行排序(加锁)。 - /// - /// 文档实体类型。 - /// 查询过滤条件。 - /// 页码。 - /// 每页大小。 - /// 排序表达式。 - /// 是否升序排序。 - /// 是否在查询后反序列化,执行反序列化后会自动将实体注册到框架系统中,并且能正常使用组件相关功能。 - /// 集合名称。 - /// 满足条件的文档列表。 - public async FTask> QueryByPageOrderBy(Expression> filter, int pageIndex, int pageSize, Expression> orderByExpression, bool isAsc = true, bool isDeserialize = false, string collection = null) where T : Entity - { - using (await _dataBaseLock.Wait(RandomHelper.RandInt64() % DefaultTaskSize)) - { - List list; - - if (isAsc) - { - list = await GetCollection(collection).Find(filter).SortBy(orderByExpression).Skip((pageIndex - 1) * pageSize).Limit(pageSize).ToListAsync(); - } - else - { - list = await GetCollection(collection).Find(filter).SortByDescending(orderByExpression).Skip((pageIndex - 1) * pageSize).Limit(pageSize).ToListAsync(); - } - - if (!isDeserialize || list is not { Count: > 0 }) - { - return list; - } - - foreach (var entity in list) - { - entity.Deserialize(_scene); - } - - return list; - } - } - - /// - /// 通过指定过滤条件查询并返回满足条件的第一个文档(加锁)。 - /// - /// 文档实体类型。 - /// 查询过滤条件。 - /// 是否在查询后反序列化,执行反序列化后会自动将实体注册到框架系统中,并且能正常使用组件相关功能。 - /// 集合名称。 - /// 满足条件的第一个文档,如果未找到则为 null。 - public async FTask First(Expression> filter, bool isDeserialize = false, string collection = null) where T : Entity - { - using (await _dataBaseLock.Wait(RandomHelper.RandInt64() % DefaultTaskSize)) - { - var cursor = await GetCollection(collection).FindAsync(filter); - var t = await cursor.FirstOrDefaultAsync(); - - if (isDeserialize && t != null) - { - t.Deserialize(_scene); - } - - return t; - } - } - - /// - /// 通过指定 JSON 格式查询并返回满足条件的第一个文档(加锁)。 - /// - /// 文档实体类型。 - /// JSON 查询条件。 - /// 要查询的列名称数组。 - /// 是否在查询后反序列化,执行反序列化后会自动将实体注册到框架系统中,并且能正常使用组件相关功能。 - /// 集合名称。 - /// 满足条件的第一个文档。 - public async FTask First(string json, string[] cols, bool isDeserialize = false, string collection = null) where T : Entity - { - using (await _dataBaseLock.Wait(RandomHelper.RandInt64() % DefaultTaskSize)) - { - var projection = Builders.Projection.Include(""); - - foreach (var col in cols) - { - projection = projection.Include(col); - } - - var options = new FindOptions { Projection = projection }; - - FilterDefinition filterDefinition = new JsonFilterDefinition(json); - - var cursor = await GetCollection(collection).FindAsync(filterDefinition, options); - var t = await cursor.FirstOrDefaultAsync(); - - if (isDeserialize && t != null) - { - t.Deserialize(_scene); - } - - return t; - } - } - - /// - /// 通过指定过滤条件查询并返回满足条件的文档列表,并按指定表达式进行排序(加锁)。 - /// - /// 文档实体类型。 - /// 查询过滤条件。 - /// 排序表达式。 - /// 是否升序排序。 - /// 是否在查询后反序列化,执行反序列化后会自动将实体注册到框架系统中,并且能正常使用组件相关功能。 - /// 集合名称。 - /// 满足条件的文档列表。 - public async FTask> QueryOrderBy(Expression> filter, Expression> orderByExpression, bool isAsc = true, bool isDeserialize = false, string collection = null) where T : Entity - { - using (await _dataBaseLock.Wait(RandomHelper.RandInt64() % DefaultTaskSize)) - { - List list; - - if (isAsc) - { - list = await GetCollection(collection).Find(filter).SortBy(orderByExpression).ToListAsync(); - } - else - { - list = await GetCollection(collection).Find(filter).SortByDescending(orderByExpression).ToListAsync(); - } - - if (!isDeserialize || list is not { Count: > 0 }) - { - return list; - } - - foreach (var entity in list) - { - entity.Deserialize(_scene); - } - - return list; - } - } - - /// - /// 通过指定过滤条件查询并返回满足条件的文档列表(加锁)。 - /// - /// 文档实体类型。 - /// 查询过滤条件。 - /// 是否在查询后反序列化,执行反序列化后会自动将实体注册到框架系统中,并且能正常使用组件相关功能。 - /// 集合名称。 - /// 满足条件的文档列表。 - public async FTask> Query(Expression> filter, bool isDeserialize = false, string collection = null) where T : Entity - { - using (await _dataBaseLock.Wait(RandomHelper.RandInt64() % DefaultTaskSize)) - { - var cursor = await GetCollection(collection).FindAsync(filter); - var list = await cursor.ToListAsync(); - - if (!isDeserialize || list is not { Count: > 0 }) - { - return list; - } - - foreach (var entity in list) - { - entity.Deserialize(_scene); - } - - return list; - } - } - - /// - /// 根据指定 ID 加锁查询多个集合中的文档。 - /// - /// 文档 ID。 - /// 要查询的集合名称列表。 - /// 查询结果存储列表。 - /// 是否在查询后反序列化,执行反序列化后会自动将实体注册到框架系统中,并且能正常使用组件相关功能。 - public async FTask Query(long id, List? collectionNames, List result, bool isDeserialize = false) - { - using (await _dataBaseLock.Wait(id)) - { - if (collectionNames == null || collectionNames.Count == 0) - { - return; - } - - foreach (var collectionName in collectionNames) - { - var cursor = await GetCollection(collectionName).FindAsync(d => d.Id == id); - - var e = await cursor.FirstOrDefaultAsync(); - - if (e == null) - { - continue; - } - - if (isDeserialize) - { - e.Deserialize(_scene); - } - - result.Add(e); - } - } - } - - /// - /// 根据指定的 JSON 查询条件查询并返回满足条件的文档列表(加锁)。 - /// - /// 文档实体类型。 - /// JSON 查询条件。 - /// 是否在查询后反序列化,执行反序列化后会自动将实体注册到框架系统中,并且能正常使用组件相关功能。 - /// 集合名称。 - /// 满足条件的文档列表。 - public async FTask> QueryJson(string json, bool isDeserialize = false, string collection = null) where T : Entity - { - using (await _dataBaseLock.Wait(RandomHelper.RandInt64() % DefaultTaskSize)) - { - FilterDefinition filterDefinition = new JsonFilterDefinition(json); - var cursor = await GetCollection(collection).FindAsync(filterDefinition); - var list = await cursor.ToListAsync(); - - if (!isDeserialize || list is not { Count: > 0 }) - { - return list; - } - - foreach (var entity in list) - { - entity.Deserialize(_scene); - } - - return list; - } - } - - /// - /// 根据指定的 JSON 查询条件查询并返回满足条件的文档列表,并选择指定的列(加锁)。 - /// - /// 文档实体类型。 - /// JSON 查询条件。 - /// 要查询的列名称数组。 - /// 是否在查询后反序列化,执行反序列化后会自动将实体注册到框架系统中,并且能正常使用组件相关功能。 - /// 集合名称。 - /// 满足条件的文档列表。 - public async FTask> QueryJson(string json, string[] cols, bool isDeserialize = false, string collection = null) where T : Entity - { - using (await _dataBaseLock.Wait(RandomHelper.RandInt64() % DefaultTaskSize)) - { - var projection = Builders.Projection.Include(""); - - foreach (var col in cols) - { - projection = projection.Include(col); - } - - var options = new FindOptions { Projection = projection }; - - FilterDefinition filterDefinition = new JsonFilterDefinition(json); - - var cursor = await GetCollection(collection).FindAsync(filterDefinition, options); - var list = await cursor.ToListAsync(); - - if (!isDeserialize || list is not { Count: > 0 }) - { - return list; - } - - foreach (var entity in list) - { - entity.Deserialize(_scene); - } - - return list; - } - } - - /// - /// 根据指定的 JSON 查询条件和任务 ID 查询并返回满足条件的文档列表(加锁)。 - /// - /// 文档实体类型。 - /// 任务 ID。 - /// JSON 查询条件。 - /// 是否在查询后反序列化,执行反序列化后会自动将实体注册到框架系统中,并且能正常使用组件相关功能。 - /// 集合名称。 - /// 满足条件的文档列表。 - public async FTask> QueryJson(long taskId, string json, bool isDeserialize = false, string collection = null) where T : Entity - { - using (await _dataBaseLock.Wait(taskId)) - { - FilterDefinition filterDefinition = new JsonFilterDefinition(json); - var cursor = await GetCollection(collection).FindAsync(filterDefinition); - var list = await cursor.ToListAsync(); - - if (!isDeserialize || list is not { Count: > 0 }) - { - return list; - } - - foreach (var entity in list) - { - entity.Deserialize(_scene); - } - - return list; - } - } - - /// - /// 根据指定过滤条件查询并返回满足条件的文档列表,选择指定的列(加锁)。 - /// - /// 文档实体类型。 - /// 查询过滤条件。 - /// 要查询的列名称数组。 - /// 是否在查询后反序列化,执行反序列化后会自动将实体注册到框架系统中,并且能正常使用组件相关功能。 - /// 集合名称。 - /// 满足条件的文档列表。 - public async FTask> Query(Expression> filter, string[] cols, bool isDeserialize = false, string collection = null) where T : Entity - { - using (await _dataBaseLock.Wait(RandomHelper.RandInt64() % DefaultTaskSize)) - { - var projection = Builders.Projection.Include("_id"); - - foreach (var t in cols) - { - projection = projection.Include(t); - } - - var list = await GetCollection(collection).Find(filter).Project(projection).ToListAsync(); - - if (!isDeserialize || list is not { Count: > 0 }) - { - return list; - } - - foreach (var entity in list) - { - entity.Deserialize(_scene); - } - - return list; - } - } - - /// - /// 根据指定过滤条件查询并返回满足条件的文档列表,选择指定的列(加锁)。 - /// - /// 文档实体类型。 - /// 查询过滤条件。 - /// 要查询的列名称数组。 - /// 是否在查询后反序列化,执行反序列化后会自动将实体注册到框架系统中,并且能正常使用组件相关功能。 - /// 集合名称。 - /// - public async FTask> Query(Expression> filter, Expression>[] cols, bool isDeserialize = false, string collection = null) where T : Entity - { - using (await _dataBaseLock.Wait(RandomHelper.RandInt64() % DefaultTaskSize)) - { - var projection = Builders.Projection.Include("_id"); - - foreach (var col in cols) - { - if (col.Body is not MemberExpression memberExpression) - { - throw new ArgumentException("Lambda expression must be a member access expression."); - } - - projection = projection.Include(memberExpression.Member.Name); - } - - var list = await GetCollection(collection).Find(filter).Project(projection).ToListAsync(); - - if (!isDeserialize || list is not { Count: > 0 }) - { - return list; - } - - foreach (var entity in list) - { - entity.Deserialize(_scene); - } - - return list; - } - } - - #endregion - - #region Save - - /// - /// 保存实体对象到数据库(加锁)。 - /// - /// 实体类型。 - /// 事务会话对象。 - /// 要保存的实体对象。 - /// 集合名称。 - public async FTask Save(object transactionSession, T? entity, string collection = null) where T : Entity - { - if (entity == null) - { - Log.Error($"save entity is null: {typeof(T).Name}"); - return; - } - - var clone = _serializer.Clone(entity); - - using (await _dataBaseLock.Wait(clone.Id)) - { - await GetCollection(collection).ReplaceOneAsync( - (IClientSessionHandle)transactionSession, d => d.Id == clone.Id, clone, - new ReplaceOptions { IsUpsert = true }); - } - } - - /// - /// 保存实体对象到数据库(加锁)。 - /// - /// 实体类型。 - /// 要保存的实体对象。 - /// 集合名称。 - public async FTask Save(T? entity, string collection = null) where T : Entity, new() - { - if (entity == null) - { - Log.Error($"save entity is null: {typeof(T).Name}"); - - return; - } - - var clone = _serializer.Clone(entity); - - using (await _dataBaseLock.Wait(clone.Id)) - { - await GetCollection(collection).ReplaceOneAsync(d => d.Id == clone.Id, clone, new ReplaceOptions { IsUpsert = true }); - } - } - - /// - /// 保存实体对象到数据库(加锁)。 - /// - /// 保存的条件表达式。 - /// 实体类型。 - /// 集合名称。 - /// - public async FTask Save(Expression> filter, T? entity, string collection = null) where T : Entity, new() - { - if (entity == null) - { - Log.Error($"save entity is null: {typeof(T).Name}"); - return; - } - - T clone = _serializer.Clone(entity); - - using (await _dataBaseLock.Wait(clone.Id)) - { - await GetCollection(collection).ReplaceOneAsync(filter, clone, new ReplaceOptions { IsUpsert = true }); - } - } - - /// - /// 保存多个实体对象到数据库(加锁)。 - /// - /// 文档 ID。 - /// 要保存的实体对象列表。 - public async FTask Save(long id, List? entities) - { - if (entities == null || entities.Count == 0) - { - Log.Error("save entity is null"); - return; - } - - using var listPool = ListPool.Create(); - - foreach (var entity in entities) - { - listPool.Add(_serializer.Clone(entity)); - } - - using (await _dataBaseLock.Wait(id)) - { - foreach (var clone in listPool) - { - try - { - await GetCollection(clone.GetType().Name).ReplaceOneAsync(d => d.Id == clone.Id, clone, new ReplaceOptions { IsUpsert = true }); - } - catch (Exception e) - { - Log.Error($"Save List Entity Error: {clone.GetType().Name} {clone}\n{e}"); - } - } - } - } - - #endregion - - #region Insert - - /// - /// 插入单个实体对象到数据库(加锁)。 - /// - /// 实体类型。 - /// 要插入的实体对象。 - /// 集合名称。 - public async FTask Insert(T? entity, string collection = null) where T : Entity, new() - { - if (entity == null) - { - Log.Error($"insert entity is null: {typeof(T).Name}"); - return; - } - - var clone = _serializer.Clone(entity); - - using (await _dataBaseLock.Wait(entity.Id)) - { - await GetCollection(collection).InsertOneAsync(clone); - } - } - - /// - /// 批量插入实体对象列表到数据库(加锁)。 - /// - /// 实体类型。 - /// 要插入的实体对象列表。 - /// 集合名称。 - public async FTask InsertBatch(IEnumerable list, string collection = null) where T : Entity, new() - { - using (await _dataBaseLock.Wait(RandomHelper.RandInt64() % DefaultTaskSize)) - { - await GetCollection(collection).InsertManyAsync(list); - } - } - - /// - /// 批量插入实体对象列表到数据库(加锁)。 - /// - /// 实体类型。 - /// 事务会话对象。 - /// 要插入的实体对象列表。 - /// 集合名称。 - public async FTask InsertBatch(object transactionSession, IEnumerable list, string collection = null) - where T : Entity, new() - { - using (await _dataBaseLock.Wait(RandomHelper.RandInt64() % DefaultTaskSize)) - { - await GetCollection(collection).InsertManyAsync((IClientSessionHandle)transactionSession, list); - } - } - - /// - /// 插入BsonDocument到数据库(加锁)。 - /// - /// - /// - /// - public async Task Insert(BsonDocument bsonDocument, long taskId) where T : Entity - { - using (await _dataBaseLock.Wait(taskId)) - { - await GetCollection(typeof(T).Name).InsertOneAsync(bsonDocument); - } - } - - #endregion - - #region Remove - - /// - /// 根据ID删除单个实体对象(加锁)。 - /// - /// 实体类型。 - /// 事务会话对象。 - /// 要删除的实体的ID。 - /// 集合名称。 - /// 删除的实体数量。 - public async FTask Remove(object transactionSession, long id, string collection = null) - where T : Entity, new() - { - using (await _dataBaseLock.Wait(id)) - { - var result = await GetCollection(collection) - .DeleteOneAsync((IClientSessionHandle)transactionSession, d => d.Id == id); - return result.DeletedCount; - } - } - - /// - /// 根据ID删除单个实体对象(加锁)。 - /// - /// 实体类型。 - /// 要删除的实体的ID。 - /// 集合名称。 - /// 删除的实体数量。 - public async FTask Remove(long id, string collection = null) where T : Entity, new() - { - using (await _dataBaseLock.Wait(id)) - { - var result = await GetCollection(collection).DeleteOneAsync(d => d.Id == id); - return result.DeletedCount; - } - } - - /// - /// 根据ID和筛选条件删除多个实体对象(加锁)。 - /// - /// 实体类型。 - /// 异步锁Id。 - /// 事务会话对象。 - /// 筛选条件。 - /// 集合名称。 - /// 删除的实体数量。 - public async FTask Remove(long coroutineLockQueueKey, object transactionSession, - Expression> filter, string collection = null) where T : Entity, new() - { - using (await _dataBaseLock.Wait(coroutineLockQueueKey)) - { - var result = await GetCollection(collection) - .DeleteManyAsync((IClientSessionHandle)transactionSession, filter); - return result.DeletedCount; - } - } - - /// - /// 根据ID和筛选条件删除多个实体对象(加锁)。 - /// - /// 实体类型。 - /// 异步锁Id。 - /// 筛选条件。 - /// 集合名称。 - /// 删除的实体数量。 - public async FTask Remove(long coroutineLockQueueKey, Expression> filter, - string collection = null) where T : Entity, new() - { - using (await _dataBaseLock.Wait(coroutineLockQueueKey)) - { - var result = await GetCollection(collection).DeleteManyAsync(filter); - return result.DeletedCount; - } - } - - #endregion - - #region Index - - /// - /// 创建数据库索引(加锁)。 - /// - /// - /// - /// - /// - /// 使用例子(可多个): - /// 1 : Builders.IndexKeys.Ascending(d=>d.Id) - /// 2 : Builders.IndexKeys.Descending(d=>d.Id).Ascending(d=>d.Name) - /// 3 : Builders.IndexKeys.Descending(d=>d.Id),Builders.IndexKeys.Descending(d=>d.Name) - /// - public async FTask CreateIndex(string collection, params object[]? keys) where T : Entity - { - if (keys == null || keys.Length <= 0) - { - return; - } - - var indexModels = new List>(); - - foreach (object key in keys) - { - IndexKeysDefinition indexKeysDefinition = (IndexKeysDefinition)key; - - indexModels.Add(new CreateIndexModel(indexKeysDefinition)); - } - - await GetCollection(collection).Indexes.CreateManyAsync(indexModels); - } - - /// - /// 创建数据库的索引(加锁)。 - /// - /// 实体类型。 - /// 索引键定义。 - public async FTask CreateIndex(params object[]? keys) where T : Entity - { - if (keys == null) - { - return; - } - - List> indexModels = new List>(); - - foreach (object key in keys) - { - IndexKeysDefinition indexKeysDefinition = (IndexKeysDefinition)key; - - indexModels.Add(new CreateIndexModel(indexKeysDefinition)); - } - - await GetCollection().Indexes.CreateManyAsync(indexModels); - } - - #endregion - - #region CreateDB - - /// - /// 创建数据库集合(如果不存在)。 - /// - /// 实体类型。 - public async FTask CreateDB() where T : Entity - { - // 已经存在数据库表 - string name = typeof(T).Name; - - if (_collections.Contains(name)) - { - return; - } - - await _mongoDatabase.CreateCollectionAsync(name); - - _collections.Add(name); - } - - /// - /// 创建数据库集合(如果不存在)。 - /// - /// 实体类型。 - public async FTask CreateDB(Type type) - { - string name = type.Name; - - if (_collections.Contains(name)) - { - return; - } - - await _mongoDatabase.CreateCollectionAsync(name); - - _collections.Add(name); - } - - #endregion - } -} -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/MongoDataBase.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/MongoDataBase.cs.meta deleted file mode 100644 index b26748a94..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/MongoDataBase.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 366dcc82090f0466da2c2b8d0e6fa2c2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/World.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/World.cs deleted file mode 100644 index c53351f7f..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/World.cs +++ /dev/null @@ -1,77 +0,0 @@ -#pragma warning disable CS8603 // Possible null reference return. -#if FANTASY_NET -using Fantasy.Platform.Net; - -namespace Fantasy.DataBase -{ - /// - /// 表示一个游戏世界。 - /// - public sealed class World : IDisposable - { - /// - /// 获取游戏世界的唯一标识。 - /// - public byte Id { get; private init; } - /// - /// 获取游戏世界的数据库接口。 - /// - public IDataBase DataBase { get; private init; } - /// - /// 获取游戏世界的配置信息。 - /// - public WorldConfig Config => WorldConfigData.Instance.Get(Id); - - /// - /// 使用指定的配置信息创建一个游戏世界实例。 - /// - /// - /// - private World(Scene scene, byte worldConfigId) - { - Id = worldConfigId; - var worldConfig = Config; - var dbType = worldConfig.DbType.ToLower(); - - switch (dbType) - { - case "mongodb": - { - DataBase = new MongoDataBase(); - DataBase.Initialize(scene, worldConfig.DbConnection, worldConfig.DbName); - break; - } - default: - { - throw new Exception("No supported database"); - } - } - } - - /// - /// 创建一个指定唯一标识的游戏世界实例。 - /// - /// - /// 游戏世界的唯一标识。 - /// 游戏世界实例。 - internal static World Create(Scene scene, byte id) - { - if (!WorldConfigData.Instance.TryGet(id, out var worldConfigData)) - { - return null; - } - - return string.IsNullOrEmpty(worldConfigData.DbConnection) ? null : new World(scene, id); - } - - /// - /// 释放游戏世界资源。 - /// - public void Dispose() - { - DataBase.Dispose(); - } - } -} - -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/World.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/World.cs.meta deleted file mode 100644 index 00bf0522c..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/DataBase/World.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6f02362ef34274e508386e3cdc247927 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EntityComponent.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EntityComponent.meta deleted file mode 100644 index 15386923c..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EntityComponent.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 688b34a295a02d347a0731df976c2536 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EntityComponent/EntityComponent.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EntityComponent/EntityComponent.cs deleted file mode 100644 index cb1ee99f2..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EntityComponent/EntityComponent.cs +++ /dev/null @@ -1,476 +0,0 @@ -using System; -using System.Collections.Generic; -using Fantasy.Assembly; -using Fantasy.Async; -using Fantasy.Entitas.Interface; -// ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract -// ReSharper disable ForCanBeConvertedToForeach -#pragma warning disable CS0649 // Field is never assigned to, and will always have its default value -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring as nullable. -#pragma warning disable CS8602 // Dereference of a possibly null reference. - -namespace Fantasy.Entitas -{ - /// - /// 更新队列节点,用于存储需要每帧更新的实体信息 - /// - internal sealed class UpdateQueueNode - { - /// - /// 实体类型 - /// - public long TypeHashCode; - /// - /// 实体运行时ID - /// - public long RunTimeId; - } - /// - /// 实体组件系统管理器,负责管理所有实体的生命周期和系统调度 - /// 支持程序集热重载、实体生命周期事件和每帧更新循环 - /// -#if FANTASY_UNITY - public sealed class EntityComponent : Entity, ISceneUpdate, ISceneLateUpdate, IAssemblyLifecycle -#else - public sealed class EntityComponent : Entity, ISceneUpdate, IAssemblyLifecycle -#endif - { - /// - /// 已加载的程序集清单ID集合 - /// - private readonly HashSet _assemblyManifests = new(); - /// - /// 实体唤醒系统字典,Key为实体类型TypeHashCode,Value为对应的唤醒系统 - /// - private readonly Dictionary> _awakeSystems = new(); - /// - /// 实体更新系统字典,Key为实体类型TypeHashCode,Value为对应的更新系统 - /// - private readonly Dictionary> _updateSystems = new(); - /// - /// 实体销毁系统字典,Key为实体类型TypeHashCode,Value为对应的销毁系统 - /// - private readonly Dictionary> _destroySystems = new(); - /// - /// 实体反序列化系统字典,Key为实体类型TypeHashCode,Value为对应的反序列化系统 - /// - private readonly Dictionary> _deserializeSystems = new(); - /// - /// 更新队列,使用链表实现循环遍历和O(1)删除 - /// - private readonly LinkedList _updateQueue = new(); - /// - /// 更新节点字典,Key为实体RuntimeId,Value为对应的链表节点,用于快速查找和删除 - /// - private readonly Dictionary> _updateNodes = new(); -#if FANTASY_UNITY - private readonly Dictionary> _lateUpdateSystems = new(); - /// - /// Late更新队列,使用链表实现循环遍历和O(1)删除 - /// - private readonly LinkedList _lateUpdateQueue = new(); - /// - /// Late更新节点字典,Key为实体RuntimeId,Value为对应的链表节点,用于快速查找和删除 - /// - private readonly Dictionary> _lateUpdateNodes = new(); -#endif - /// - /// 销毁时会清理组件里的所有数据 - /// - public override void Dispose() - { - if (IsDisposed) - { - return; - } - - _assemblyManifests.Clear(); - _awakeSystems.Clear(); - _updateSystems.Clear(); - _destroySystems.Clear(); - - _updateQueue.Clear(); - _updateNodes.Clear(); -#if FANTASY_UNITY - _lateUpdateSystems.Clear(); - _lateUpdateQueue.Clear(); - _lateUpdateNodes.Clear(); -#endif - AssemblyLifecycle.Remove(this); - base.Dispose(); - } - - #region AssemblyManifest - - /// - /// 初始化EntityComponent,将其注册到程序集系统中 - /// - /// 返回初始化后的EntityComponent实例 - internal async FTask Initialize() - { - await AssemblyLifecycle.Add(this); - return this; - } - - /// - /// 加载程序集,注册该程序集中的所有实体系统 - /// 支持热重载:如果程序集已加载,会先卸载再重新加载 - /// - /// 程序集清单对象,包含程序集的元数据和注册器 - /// 异步任务 - public FTask OnLoad(AssemblyManifest assemblyManifest) - { - var task = FTask.Create(false); - var assemblyManifestId = assemblyManifest.AssemblyManifestId; - Scene?.ThreadSynchronizationContext.Post(() => - { - // 如果程序集已加载,先卸载旧的 - if (_assemblyManifests.Contains(assemblyManifestId)) - { - OnUnLoadInner(assemblyManifest); - } -#if FANTASY_NET - assemblyManifest.EntitySystemRegistrar.RegisterSystems( - _awakeSystems, - _updateSystems, - _destroySystems, - _deserializeSystems); -#endif -#if FANTASY_UNITY - assemblyManifest.EntitySystemRegistrar.RegisterSystems( - _awakeSystems, - _updateSystems, - _destroySystems, - _deserializeSystems, - _lateUpdateSystems); -#endif - _assemblyManifests.Add(assemblyManifestId); - task.SetResult(); - }); - return task; - } - - /// - /// 卸载程序集,取消注册该程序集中的所有实体系统 - /// - /// 程序集清单对象,包含程序集的元数据和注册器 - /// 异步任务 - public FTask OnUnload(AssemblyManifest assemblyManifest) - { - var task = FTask.Create(false); - Scene?.ThreadSynchronizationContext.Post(() => - { - OnUnLoadInner(assemblyManifest); - task.SetResult(); - }); - return task; - } - - /// - /// 卸载程序集的内部实现 - /// 会清理该程序集注册的所有系统,并移除更新队列中对应的实体 - /// - /// 程序集清单对象,包含程序集的元数据和注册器 - private void OnUnLoadInner(AssemblyManifest assemblyManifest) - { -#if FANTASY_NET - assemblyManifest.EntitySystemRegistrar.UnRegisterSystems( - _awakeSystems, - _updateSystems, - _destroySystems, - _deserializeSystems); -#endif -#if FANTASY_UNITY - assemblyManifest.EntitySystemRegistrar.UnRegisterSystems( - _awakeSystems, - _updateSystems, - _destroySystems, - _deserializeSystems, - _lateUpdateSystems); -#endif - _assemblyManifests.Remove(assemblyManifest.AssemblyManifestId); - // 清理更新队列中已失效的节点(系统被卸载后,对应实体的更新系统不再存在) - var node = _updateQueue.First; - while (node != null) - { - var next = node.Next; - if (!_updateSystems.ContainsKey(node.Value.TypeHashCode)) - { - _updateQueue.Remove(node); - _updateNodes.Remove(node.Value.RunTimeId); - } - node = next; - } -#if FANTASY_UNITY - var lateNode = _lateUpdateQueue.First; - while (lateNode != null) - { - var next = lateNode.Next; - if (!_lateUpdateSystems.ContainsKey(lateNode.Value.TypeHashCode)) - { - _lateUpdateQueue.Remove(lateNode); - _lateUpdateNodes.Remove(lateNode.Value.RunTimeId); - } - lateNode = next; - } -#endif - } - - #endregion - - #region Event - - /// - /// 触发实体的唤醒事件,调用对应的AwakeSystem - /// - /// 需要唤醒的实体 - public void Awake(Entity entity) - { - if (!_awakeSystems.TryGetValue(entity.TypeHashCode, out var awakeSystem)) - { - return; - } - - try - { - awakeSystem(entity); - } - catch (Exception e) - { - Log.Error($"{entity.Type.FullName} Error {e}"); - } - } - - /// - /// 触发实体的销毁事件,调用对应的DestroySystem - /// - /// 需要销毁的实体 - public void Destroy(Entity entity) - { - if (!_destroySystems.TryGetValue(entity.TypeHashCode, out var system)) - { - return; - } - - try - { - system(entity); - } - catch (Exception e) - { - Log.Error($"{entity.Type.FullName} Destroy Error {e}"); - } - } - - /// - /// 触发实体的反序列化事件,调用对应的DeserializeSystem - /// - /// 需要反序列化的实体 - public void Deserialize(Entity entity) - { - if (!_deserializeSystems.TryGetValue(entity.TypeHashCode, out var system)) - { - return; - } - - try - { - system(entity); - } - catch (Exception e) - { - Log.Error($"{entity.Type.FullName} Deserialize Error {e}"); - } - } - - #endregion - - #region Update - - /// - /// 注册实体到每帧更新循环 - /// 实体将在每帧Update时执行对应的UpdateSystem - /// - /// 需要注册更新的实体 - public void RegisterUpdate(Entity entity) - { - var typeHashCode = entity.TypeHashCode; - // 检查该实体类型是否有对应的更新系统 - if (!_updateSystems.ContainsKey(typeHashCode)) - { - return; - } - - var runtimeId = entity.RuntimeId; - // 防止重复注册 - if (_updateNodes.ContainsKey(runtimeId)) - { - return; - } - - // 创建节点并加入链表尾部 - var nodeData = new UpdateQueueNode { TypeHashCode = typeHashCode, RunTimeId = runtimeId }; - var node = _updateQueue.AddLast(nodeData); - _updateNodes.Add(runtimeId, node); - } - - /// - /// 从每帧更新循环中注销实体 - /// 实体将不再执行UpdateSystem - /// - /// 需要注销更新的实体 - public void UnregisterUpdate(Entity entity) - { - if (!_updateNodes.Remove(entity.RuntimeId, out var node)) - { - return; - } - - // 利用链表节点实现O(1)时间复杂度删除 - _updateQueue.Remove(node); - } - - /// - /// 每帧更新循环,遍历所有已注册的实体并调用对应的UpdateSystem - /// 使用链表实现循环队列,已删除的实体会自动清理 - /// - public void Update() - { - var scene = Scene; - var node = _updateQueue.First; - var count = _updateQueue.Count; - - // 遍历当前所有节点,count确保只遍历本帧的节点 - while (count-- > 0 && node != null) - { - var next = node.Next; // 提前保存下一个节点,防止当前节点被删除 - var data = node.Value; - - // 检查更新系统是否存在(可能被热重载卸载) - if (!_updateSystems.TryGetValue(data.TypeHashCode, out var updateSystem)) - { - node = next; - continue; - } - - var entity = scene.GetEntity(data.RunTimeId); - - // 如果实体已销毁,自动清理 - if (entity == null || entity.IsDisposed) - { - _updateQueue.Remove(node); - _updateNodes.Remove(data.RunTimeId); - } - else - { - try - { - updateSystem.Invoke(entity); - } - catch (Exception e) - { - Log.Error($"Update Error {e}"); - } - } - - node = next; - } - } - - #endregion - - #region LateUpdate -#if FANTASY_UNITY - /// - /// 注册实体到每帧更新循环 - /// 实体将在每帧LateUUpdate时执行对应的LateUUpdateSystem - /// - /// 需要注册更新的实体 - public void RegisterLateUpdate(Entity entity) - { - var typeHashCode = entity.TypeHashCode; - // 检查该实体类型是否有对应的更新系统 - if (!_lateUpdateSystems.ContainsKey(typeHashCode)) - { - return; - } - - var runtimeId = entity.RuntimeId; - // 防止重复注册 - if (_lateUpdateNodes.ContainsKey(runtimeId)) - { - return; - } - - // 创建节点并加入链表尾部 - var nodeData = new UpdateQueueNode { TypeHashCode = typeHashCode, RunTimeId = runtimeId }; - var node = _lateUpdateQueue.AddLast(nodeData); - _lateUpdateNodes.Add(runtimeId, node); - } - - /// - /// 从每帧更新循环中注销实体 - /// 实体将不再执行LateUpdateSystem - /// - /// 需要注销更新的实体 - public void UnregisterLateUpdate(Entity entity) - { - if (!_lateUpdateNodes.Remove(entity.RuntimeId, out var node)) - { - return; - } - - // 利用链表节点实现O(1)时间复杂度删除 - _lateUpdateQueue.Remove(node); - } - - /// - /// 每帧更新循环,遍历所有已注册的实体并调用对应的LateUpdateSystem - /// 使用链表实现循环队列,已删除的实体会自动清理 - /// - public void LateUpdate() - { - var scene = Scene; - var node = _lateUpdateQueue.First; - var count = _lateUpdateQueue.Count; - - // 遍历当前所有节点,count确保只遍历本帧的节点 - while (count-- > 0 && node != null) - { - var next = node.Next; // 提前保存下一个节点,防止当前节点被删除 - var data = node.Value; - - // 检查更新系统是否存在(可能被热重载卸载) - if (!_lateUpdateSystems.TryGetValue(data.TypeHashCode, out var lateUpdateSystem)) - { - node = next; - continue; - } - - var entity = scene.GetEntity(data.RunTimeId); - - // 如果实体已销毁,自动清理 - if (entity == null || entity.IsDisposed) - { - _lateUpdateQueue.Remove(node); - _lateUpdateNodes.Remove(data.RunTimeId); - } - else - { - try - { - lateUpdateSystem.Invoke(entity); - } - catch (Exception e) - { - Log.Error($"Update Error {e}"); - } - } - - node = next; - } - } -#endif - #endregion - } -} diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EventComponent/EventComponent.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EventComponent/EventComponent.cs deleted file mode 100644 index 4a106e51e..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EventComponent/EventComponent.cs +++ /dev/null @@ -1,236 +0,0 @@ -using System; -using System.Collections.Generic; -using Fantasy.Assembly; -using Fantasy.Async; -using Fantasy.DataStructure.Collection; -using Fantasy.Entitas; -// ReSharper disable MethodOverloadWithOptionalParameter - -namespace Fantasy.Event -{ - /// - /// 事件组件系统,负责管理和调度所有事件 - /// - public sealed class EventComponent : Entity, IAssemblyLifecycle - { - private readonly HashSet _assemblyManifests = new(); - private readonly OneToManyList _events = new(); - private readonly OneToManyList _asyncEvents = new(); - private readonly OneToManyList _sphereEvents = new(); - - /// - /// 销毁时会清理组件里的所有数据 - /// - public override void Dispose() - { - if (IsDisposed) - { - return; - } - - _assemblyManifests.Clear(); - _events.Clear(); - _asyncEvents.Clear(); - _sphereEvents.Clear(); - AssemblyLifecycle.Remove(this); - base.Dispose(); - } - - #region AssemblyManifest - - /// - /// 初始化EventComponent,将其注册到程序集系统中 - /// - /// 返回初始化后的EventComponent实例 - internal async FTask Initialize() - { - await AssemblyLifecycle.Add(this); - return this; - } - - /// - /// 加载程序集,注册该程序集中的所有事件系统 - /// 支持热重载:如果程序集已加载,会先卸载再重新加载 - /// - /// 程序集清单对象,包含程序集的元数据和注册器 - /// 异步任务 - public async FTask OnLoad(AssemblyManifest assemblyManifest) - { - var tcs = FTask.Create(false); - var assemblyManifestId = assemblyManifest.AssemblyManifestId; - Scene?.ThreadSynchronizationContext.Post(() => - { - // 如果程序集已加载,先卸载旧的 - if (_assemblyManifests.Contains(assemblyManifestId)) - { - OnUnLoadInner(assemblyManifest); - } - assemblyManifest.EventSystemRegistrar.RegisterSystems( - _events, - _asyncEvents, - _sphereEvents); - _assemblyManifests.Add(assemblyManifestId); - tcs.SetResult(); - }); - await tcs; - } - - /// - /// 卸载程序集,取消注册该程序集中的所有实体系统 - /// - /// 程序集清单对象,包含程序集的元数据和注册器 - /// 异步任务 - public async FTask OnUnload(AssemblyManifest assemblyManifest) - { - var tcs = FTask.Create(false); - Scene?.ThreadSynchronizationContext.Post(() => - { - OnUnLoadInner(assemblyManifest); - tcs.SetResult(); - }); - await tcs; - } - - /// - /// 卸载程序集的内部实现 - /// 会清理该程序集注册的所有系统 - /// - /// 程序集清单对象,包含程序集的元数据和注册器 - private void OnUnLoadInner(AssemblyManifest assemblyManifest) - { - assemblyManifest.EventSystemRegistrar.UnRegisterSystems( - _events, - _asyncEvents, - _sphereEvents); - _assemblyManifests.Remove(assemblyManifest.AssemblyManifestId); - } - - #endregion - - #region Publish - - /// - /// 发布同步事件(struct类型) - /// - /// 事件数据类型(值类型) - /// 事件数据 - public void Publish(TEventData eventData) where TEventData : struct - { - if (!_events.TryGetValue(typeof(TEventData).TypeHandle, out var list)) - { - return; - } - - foreach (var @event in list) - { - try - { - ((IEvent)@event).Invoke(eventData); - } - catch (Exception e) - { - Log.Error(e); - } - } - } - - /// - /// 发布同步事件(Entity类型) - /// - /// 事件数据类型(Entity类型) - /// 事件数据 - /// 事件处理完成后是否自动销毁Entity - public void Publish(TEventData eventData, bool isDisposed = true) where TEventData : Entity - { - if (!_events.TryGetValue(typeof(TEventData).TypeHandle, out var list)) - { - return; - } - - foreach (var @event in list) - { - try - { - // 转换为泛型接口,Entity是引用类型但仍避免虚方法调用开销 - ((IEvent)@event).Invoke(eventData); - } - catch (Exception e) - { - Log.Error(e); - } - } - - if (isDisposed) - { - eventData.Dispose(); - } - } - - /// - /// 发布异步事件(struct类型) - /// - /// 事件数据类型(值类型) - /// 事件数据 - public async FTask PublishAsync(TEventData eventData) where TEventData : struct - { - if (!_asyncEvents.TryGetValue(typeof(TEventData).TypeHandle, out var list)) - { - return; - } - - using var tasks = ListPool.Create(); - - foreach (var @event in list) - { - try - { - tasks.Add(((IAsyncEvent)@event).InvokeAsync(eventData)); - } - catch (Exception e) - { - Log.Error(e); - } - } - - await FTask.WaitAll(tasks); - } - - /// - /// 发布异步事件(Entity类型) - /// - /// 事件数据类型(Entity类型) - /// 事件数据 - /// 事件处理完成后是否自动销毁Entity - public async FTask PublishAsync(TEventData eventData, bool isDisposed = true) where TEventData : Entity - { - if (!_asyncEvents.TryGetValue(typeof(TEventData).TypeHandle, out var list)) - { - return; - } - - using var tasks = ListPool.Create(); - - foreach (var @event in list) - { - try - { - tasks.Add(((IAsyncEvent)@event).InvokeAsync(eventData)); - } - catch (Exception e) - { - Log.Error(e); - } - } - - await FTask.WaitAll(tasks); - - if (isDisposed) - { - eventData.Dispose(); - } - } - - #endregion - } -} - diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EventComponent/Interface/IEvent.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EventComponent/Interface/IEvent.cs deleted file mode 100644 index e093db929..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/EventComponent/Interface/IEvent.cs +++ /dev/null @@ -1,173 +0,0 @@ -using System; -using Fantasy.Async; - -namespace Fantasy.Event -{ - /// - /// 事件的接口 - /// - public interface IEvent - { - /// - /// 用于指定事件的Type - /// - /// - Type EventType(); - } - - /// - /// 事件的泛型接口 - /// - /// 事件数据类型 - public interface IEvent : IEvent - { - /// - /// 事件内部使用的入口 - /// - /// 事件数据 - void Invoke(T self); - } - - /// - /// 异步事件的泛型接口 - /// - /// 事件数据类型 - public interface IAsyncEvent : IEvent - { - /// - /// 异步事件调用入口 - /// - /// 事件数据 - FTask InvokeAsync(T self); - } - - /// - /// 领域事件的泛型接口 - /// - /// 事件数据类型 - public interface ISphereEvent : IEvent - { - /// - /// 领域事件调用入口 - /// - /// 事件数据 - FTask Invoke(T self); - } - - /// - /// 事件的抽象类,要使用事件必须要继承这个抽象接口。 - /// 同时实现泛型和非泛型接口,支持零装箱调用 - /// - /// 要监听的事件泛型类型 - public abstract class EventSystem : IEvent - { - private readonly Type _selfType = typeof(T); - /// - /// - /// - /// - public Type EventType() - { - return _selfType; - } - - /// - /// 事件调用的方法,要在这个方法里编写事件发生的逻辑 - /// - /// - protected abstract void Handler(T self); - - /// - /// 泛型调用入口 - /// - /// 事件数据 - public void Invoke(T self) - { - try - { - Handler(self); - } - catch (Exception e) - { - Log.Error($"{_selfType.Name} Error {e}"); - } - } - } - /// - /// 异步事件的抽象类,要使用事件必须要继承这个抽象接口。 - /// 同时实现泛型和非泛型接口,支持零装箱调用 - /// - /// 要监听的事件泛型类型 - public abstract class AsyncEventSystem : IAsyncEvent - { - private readonly Type _selfType = typeof(T); - /// - /// - /// - /// - public Type EventType() - { - return _selfType; - } - /// - /// 事件调用的方法,要在这个方法里编写事件发生的逻辑 - /// - /// - protected abstract FTask Handler(T self); - - /// - /// 泛型异步调用入口 - /// - /// 事件数据 - public async FTask InvokeAsync(T self) - { - try - { - await Handler(self); - } - catch (Exception e) - { - Log.Error($"{_selfType.Name} Error {e}"); - } - } - } - /// - /// 领域事件的抽象类,要使用事件必须要继承这个抽象接口。 - /// 同时实现泛型和非泛型接口,支持零装箱调用 - /// - /// 要监听的事件泛型类型 - public abstract class SphereEventSystem : ISphereEvent - { - private readonly Type _selfType = typeof(T); - /// - /// - /// - /// - public Type EventType() - { - return _selfType; - } - - /// - /// 事件调用的方法,要在这个方法里编写事件发生的逻辑 - /// - /// - protected abstract FTask Handler(T self); - - /// - /// 泛型调用入口 - /// - /// 事件数据 - public async FTask Invoke(T self) - { - try - { - await Handler(self); - } - catch (Exception e) - { - Log.Error($"{_selfType.Name} Error {e}"); - } - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/SeparateTableComponent.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/SeparateTableComponent.meta deleted file mode 100644 index 8c25dae98..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/SeparateTableComponent.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: e8b5512cf655c8e4ca66dc499ab1a689 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/SeparateTableComponent/SeparateTableAttribute.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/SeparateTableComponent/SeparateTableAttribute.cs deleted file mode 100644 index 3a63d0ca2..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/SeparateTableComponent/SeparateTableAttribute.cs +++ /dev/null @@ -1,49 +0,0 @@ -#if FANTASY_NET -namespace Fantasy.SeparateTable; - -/// -/// 分表存储特性,用于标记需要进行数据库分表存储的实体类型。 -/// 当实体标记此特性后,该实体将作为父实体的子组件,并在数据库中使用独立的集合进行存储。 -/// -/// -/// 使用场景: -/// - 当父实体的某些数据量较大,需要拆分到独立的数据库表中存储时 -/// - 需要优化数据库查询性能,避免单表数据过大时 -/// - Source Generator 会自动生成注册代码,无需手动反射处理 -/// -/// -/// -/// [SeparateTable(typeof(Player), "PlayerInventory")] -/// public class PlayerInventoryEntity : Entity -/// { -/// // 实体字段... -/// } -/// -/// -[AttributeUsage(AttributeTargets.Class, Inherited = true, AllowMultiple = false)] -public class SeparateTableAttribute : Attribute -{ - /// - /// 获取父实体的类型,指示此实体属于哪个父实体的子集合。 - /// 通过此属性建立父子实体的逻辑关联关系。 - /// - public readonly Type RootType; - - /// - /// 获取在数据库中使用的集合名称(表名)。 - /// 此实体的数据将单独存储到此命名的集合中。 - /// - public readonly string CollectionName; - - /// - /// 初始化 类的新实例,指定父实体类型和数据库集合名称。 - /// - /// 父实体的类型,表示此分表实体从属于哪个父实体。 - /// 在数据库中存储此实体的集合名称(表名)。 - public SeparateTableAttribute(Type rootType, string collectionName) - { - RootType = rootType; - CollectionName = collectionName; - } -} -#endif diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/SeparateTableComponent/SeparateTableAttribute.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/SeparateTableComponent/SeparateTableAttribute.cs.meta deleted file mode 100644 index 01444016f..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/SeparateTableComponent/SeparateTableAttribute.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 74b92262a11763b4d85536b238a7d002 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/SeparateTableComponent/SeparateTableComponent.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/SeparateTableComponent/SeparateTableComponent.cs deleted file mode 100644 index e1848e1f5..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/SeparateTableComponent/SeparateTableComponent.cs +++ /dev/null @@ -1,221 +0,0 @@ -#if FANTASY_NET -// ReSharper disable SuspiciousTypeConversion.Global - -using Fantasy.Assembly; -using Fantasy.Async; -using Fantasy.DataStructure.Collection; -using Fantasy.Entitas; -using Fantasy.Entitas.Interface; -using Fantasy.Helper; -// ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract -#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -#pragma warning disable CS8604 // Possible null reference argument. -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. - -namespace Fantasy.SeparateTable -{ - /// - /// 分表组件,用于管理实体的数据库分表存储功能。 - /// 负责注册、加载和保存标记了 的实体数据。 - /// - /// - /// 此组件实现了程序集生命周期接口,会在程序集加载/卸载时自动注册/反注册分表信息。 - /// 通过 Source Generator 生成的注册器自动管理分表实体的元数据,避免运行时反射。 - /// - public sealed class SeparateTableComponent : Entity, IAssemblyLifecycle - { - /// - /// 存储已加载的程序集清单ID集合,用于追踪哪些程序集的分表信息已注册。 - /// - private readonly HashSet _assemblyManifests = new(); - - /// - /// 分表信息映射表,键为父实体类型,值为该父实体对应的所有分表信息集合。 - /// 用于快速查询某个实体类型有哪些子实体需要分表存储。 - /// - private readonly OneToManyHashSet _separateTables = new (); - - #region AssemblyManifest - - /// - /// 初始化分表组件,将其注册到程序集生命周期管理器中。 - /// - /// 返回初始化后的分表组件实例。 - internal async FTask Initialize() - { - await AssemblyLifecycle.Add(this); - return this; - } - - /// - /// 当程序集加载时的回调方法,负责注册该程序集中的所有分表信息。 - /// - /// 加载的程序集清单,包含该程序集的所有元数据。 - /// 异步任务。 - /// - /// 此方法在线程同步上下文中执行,确保线程安全。 - /// 如果程序集已被加载过(如热重载场景),会先卸载旧的注册信息再重新注册。 - /// - public async FTask OnLoad(AssemblyManifest assemblyManifest) - { - var tcs = FTask.Create(false); - var assemblyManifestId = assemblyManifest.AssemblyManifestId; - Scene?.ThreadSynchronizationContext.Post(() => - { - // 如果程序集已加载,先卸载旧的 - if (_assemblyManifests.Contains(assemblyManifestId)) - { - OnUnLoadInner(assemblyManifest); - } - - // 从 Source Generator 生成的注册器中获取分表信息 - var separateTableInfos = assemblyManifest.SeparateTableRegistrar.Register(); - - // 将分表信息按父实体类型进行分组注册 - foreach (var separateTableInfo in separateTableInfos) - { - _separateTables.Add(TypeHashCache.GetHashCode(separateTableInfo.RootType), separateTableInfo); - } - - _assemblyManifests.Add(assemblyManifestId); - tcs.SetResult(); - }); - await tcs; - } - - /// - /// 当程序集卸载时的回调方法,负责反注册该程序集中的所有分表信息。 - /// - /// 卸载的程序集清单。 - /// 异步任务。 - /// - /// 此方法在线程同步上下文中执行,确保线程安全。 - /// - public FTask OnUnload(AssemblyManifest assemblyManifest) - { - var task = FTask.Create(false); - Scene?.ThreadSynchronizationContext.Post(() => - { - OnUnLoadInner(assemblyManifest); - task.SetResult(); - }); - return task; - } - - /// - /// 卸载程序集的内部实现,从映射表中移除该程序集的所有分表信息。 - /// - /// 要卸载的程序集清单。 - private void OnUnLoadInner(AssemblyManifest assemblyManifest) - { - // 获取该程序集需要反注册的分表信息 - var separateTableInfos = assemblyManifest.SeparateTableRegistrar.UnRegister(); - - // 从映射表中逐个移除 - foreach (var separateTableInfo in separateTableInfos) - { - _separateTables.RemoveValue(TypeHashCache.GetHashCode(separateTableInfo.RootType), separateTableInfo); - } - - _assemblyManifests.Remove(assemblyManifest.AssemblyManifestId); - } - - #endregion - - #region Collections - - /// - /// 从数据库加载指定实体的所有分表数据,并自动建立父子关系。 - /// - /// 需要加载分表数据的实体实例。 - /// 实体的泛型类型,必须继承自 - /// 异步任务。 - /// - /// 此方法会根据实体类型查找其关联的所有分表配置,逐个从数据库中加载对应的分表实体, - /// 并通过 AddComponent 方法将这些分表实体作为组件添加到父实体上,建立父子关系。 - /// 如果实体类型没有配置分表信息,则直接返回不做任何操作。 - /// - /// - /// - /// var player = await db.Query<Player>(playerId); - /// await separateTableComponent.Load(player); // 加载玩家的所有分表数据 - /// - /// - public async FTask LoadWithSeparateTables(T entity) where T : Entity - { - // 检查该实体类型是否配置了分表 - if (!_separateTables.TryGetValue(entity.TypeHashCode, out var separateTables)) - { - return; - } - - var worldDateBase = Scene.World.DataBase; - - // 遍历所有分表配置,逐个加载 - foreach (var separateTable in separateTables) - { - // 使用实体ID作为查询条件,从指定的集合中加载分表实体 - var separateTableEntity = await worldDateBase.QueryNotLock( - entity.Id, true, separateTable.TableName); - - if (separateTableEntity == null) - { - continue; - } - - // 将加载的分表实体作为组件添加到父实体上 - entity.AddComponent(separateTableEntity); - } - } - - /// - /// 将实体及其所有分表组件保存到数据库中。 - /// - /// 需要保存的实体实例。 - /// 实体的泛型类型,必须继承自 并具有无参构造函数。 - /// 异步任务。 - /// - /// 此方法会检查实体是否配置了分表信息: - /// - 如果没有配置分表,则直接保存实体本身到数据库。 - /// - 如果配置了分表,会收集实体上所有需要分表存储的组件,统一批量保存到数据库。 - /// 使用对象池优化列表分配,避免频繁 GC。 - /// - /// - /// - /// player.Inventory.Items.Add(newItem); - /// await separateTableComponent.Save(player); // 保存玩家及分表数据 - /// - /// - public async FTask PersistAggregate(T entity) where T : Entity, new() - { - // 检查该实体类型是否配置了分表 - if (!_separateTables.TryGetValue(entity.TypeHashCode, out var separateTables)) - { - // 没有分表配置,直接保存实体 - await entity.Scene.World.DataBase.Save(entity); - return; - } - - // 使用对象池创建列表,避免 GC - using var saveSeparateTables = ListPool.Create(entity); - - // 收集所有需要分表保存的组件 - foreach (var separateTableInfo in separateTables) - { - var separateTableEntity = entity.GetComponent(separateTableInfo.EntityType); - if (separateTableEntity == null) - { - continue; - } - saveSeparateTables.Add(separateTableEntity); - } - - // 批量保存实体ID及其所有分表组件 - await entity.Scene.World.DataBase.Save(entity.Id, saveSeparateTables); - } - - #endregion - } -} - -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/SeparateTableComponent/SeparateTableComponent.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/SeparateTableComponent/SeparateTableComponent.cs.meta deleted file mode 100644 index 70f62811e..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/SeparateTableComponent/SeparateTableComponent.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f1438800ba28a1a48aa18c1ba83b4989 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimeWheel.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimeWheel.meta deleted file mode 100644 index 98323818a..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimeWheel.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 857d00a2dcb9dfa488bcb9a6b34712a1 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimeWheel/ScheduledTask.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimeWheel/ScheduledTask.cs deleted file mode 100644 index d644386de..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimeWheel/ScheduledTask.cs +++ /dev/null @@ -1,49 +0,0 @@ -// #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. -// #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. -// namespace Fantasy -// { -// public sealed class ScheduledTaskPool : PoolCore -// { -// public ScheduledTaskPool() : base(2000) { } -// -// public ScheduledTask Rent(Action action, ref int rounds, ref int finalSlot) -// { -// var scheduledTask = Rent(); -// scheduledTask.Rounds = rounds; -// scheduledTask.Action = action; -// scheduledTask.FinalSlot = finalSlot; -// return scheduledTask; -// } -// -// public override void Return(ScheduledTask item) -// { -// base.Return(item); -// item.Dispose(); -// } -// } -// -// public sealed class ScheduledTask : IPool, IDisposable -// { -// public int Rounds; -// public int FinalSlot; -// public Action Action; -// public LinkedListNode Node; -// -// public bool IsPool { get; set; } -// public ScheduledTask() { } -// public ScheduledTask(Action action, ref int rounds, ref int finalSlot) -// { -// Action = action; -// Rounds = rounds; -// FinalSlot = finalSlot; -// } -// -// public void Dispose() -// { -// Rounds = 0; -// FinalSlot = 0; -// Action = null; -// Node = null; -// } -// } -// } \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimeWheel/ScheduledTask.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimeWheel/ScheduledTask.cs.meta deleted file mode 100644 index 2602ab272..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimeWheel/ScheduledTask.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 435b17fae2fe16c44bf2260305b3c0bb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimeWheel/TimeWheel.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimeWheel/TimeWheel.cs deleted file mode 100644 index 58916b148..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimeWheel/TimeWheel.cs +++ /dev/null @@ -1,134 +0,0 @@ -// using System.Runtime.CompilerServices; -// // ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract -// #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. -// -// namespace Fantasy -// { -// public sealed class TimeWheel -// { -// private int _currentIndex; -// private ScheduledTaskPool _scheduledTaskPool; -// -// private readonly Scene _scene; -// private readonly int _wheelSize; -// private readonly int _tickDuration; -// private readonly TimeWheel _upperLevelWheel; -// private readonly LinkedList[] _wheel; -// private readonly Queue _tasksToReschedule = new Queue(); -// private readonly Dictionary _taskDictionary = new Dictionary(); -// -// public TimeWheel(TimerComponent timerComponent, int wheelSize, int tickDuration, TimeWheel upperLevelWheel = null) -// { -// _scene = timerComponent.Scene; -// _wheelSize = wheelSize; -// _tickDuration = tickDuration; -// _upperLevelWheel = upperLevelWheel; -// _scheduledTaskPool = timerComponent.ScheduledTaskPool; -// _wheel = new LinkedList[_wheelSize]; -// for (var i = 0; i < wheelSize; i++) -// { -// _wheel[i] = new LinkedList(); -// } -// } -// -// public long Schedule(Action action, int delay) -// { -// var ticks = delay / _tickDuration; -// var futureIndex = ticks + _currentIndex; -// var rounds = futureIndex / _wheelSize; -// var slot = futureIndex % _wheelSize; -// -// if (slot == 0) -// { -// slot = _wheelSize - 1; -// rounds--; -// } -// else -// { -// slot--; -// } -// -// var taskId = _scene.RuntimeIdFactory.Create; -// var task = _scheduledTaskPool.Rent(action, ref rounds, ref slot); -// task.Node = _wheel[slot].AddLast(task); -// _taskDictionary.Add(taskId, task); -// Console.WriteLine($"Schedule rounds:{rounds} slot:{slot} _currentIndex:{_currentIndex}"); -// return taskId; -// } -// -// public bool Remove(int taskId) -// { -// if (!_taskDictionary.TryGetValue(taskId, out var task)) -// { -// return false; -// } -// -// _taskDictionary.Remove(taskId); -// _wheel[task.FinalSlot].Remove(task.Node); -// _scheduledTaskPool.Return(task); -// Console.WriteLine("找到已经删除了任务"); -// return true; -// } -// -// public void Tick(object? state) -// { -// var currentWheel = _wheel[_currentIndex]; -// -// if (currentWheel.Count == 0) -// { -// AdvanceIndex(); -// return; -// } -// -// var currentNode = currentWheel.First; -// -// while (currentNode != null) -// { -// var nextNode = currentNode.Next; -// var task = currentNode.Value; -// -// if (task.Rounds <= 0 && task.FinalSlot == _currentIndex) -// { -// try -// { -// task.Action.Invoke(); -// } -// catch (Exception ex) -// { -// Log.Error($"Exception during task execution: {ex.Message}"); -// } -// } -// else -// { -// task.Rounds--; -// _tasksToReschedule.Enqueue(task); -// } -// -// currentWheel.Remove(currentNode); -// currentNode = nextNode; -// } -// -// RescheduleTasks(); -// AdvanceIndex(); -// } -// -// [MethodImpl(MethodImplOptions.AggressiveInlining)] -// private void AdvanceIndex() -// { -// _currentIndex = (_currentIndex + 1) % _wheelSize; -// if (_currentIndex == 0 && _upperLevelWheel != null) -// { -// _upperLevelWheel.Tick(null); -// } -// } -// -// [MethodImpl(MethodImplOptions.AggressiveInlining)] -// private void RescheduleTasks() -// { -// while (_tasksToReschedule.TryDequeue(out var task)) -// { -// _wheel[task.FinalSlot].AddLast(task); -// } -// } -// } -// } \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimeWheel/TimeWheel.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimeWheel/TimeWheel.cs.meta deleted file mode 100644 index f9d92b030..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Component/TimerComponent/TimeWheel/TimeWheel.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a8070d2610e173d489a79b694d95b411 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/Supported/EntityInterface.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/Supported/EntityInterface.cs deleted file mode 100644 index daf58c6d1..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/Supported/EntityInterface.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System; - -namespace Fantasy.Entitas.Interface -{ - /// - /// 支持再一个组件里添加多个同类型组件 - /// - public interface ISupportedMultiEntity : IDisposable - { - } -#if FANTASY_NET - /// - /// Entity支持数据库 - /// -// ReSharper disable once InconsistentNaming - public interface ISupportedDataBase - { - } - - // Entity支持分表存储、保存到数据库的时候不会跟随父组件保存在一个表里、会单独保存在一个表里 - // 需要配合SeparateTableAttribute一起使用、如在Entity类头部定义SeparateTableAttribute(typeOf(Unit), "UnitBag") - // SeparateTableAttribute用来定义这个Entity是属于哪个Entity的子集以及表名 - /// - /// 定义实体支持分表存储的接口。当实体需要单独存储在一个数据库表中,并且在保存到数据库时不会与父实体一起保存在同一个表中时,应实现此接口。 - /// - public interface ISupportedSeparateTable - { - } - - /// - /// Entity支持传送 - /// - public interface ISupportedTransfer - { - } - - // /// - // /// Entity保存到数据库的时候会根据子组件设置分表存储特性分表存储在不同的数据库表中 - // /// - // public interface ISeparateTableRoot - // { - // } - - -#endif -} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/Supported/EntityInterface.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/Supported/EntityInterface.cs.meta deleted file mode 100644 index aaa572b89..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/Supported/EntityInterface.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: bb01457b44c294c40a57ed45505b4169 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/Supported/EntitySupportedChecker.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/Supported/EntitySupportedChecker.cs deleted file mode 100644 index 0fab3f900..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/Supported/EntitySupportedChecker.cs +++ /dev/null @@ -1,58 +0,0 @@ -namespace Fantasy.Entitas.Interface -{ - /// - /// 实体接口支持性的编译时检查器。 - /// - /// 要检查的实体类型,必须继承自 - /// - /// 性能优势: - /// - /// 静态字段在每个具体类型实例化时仅初始化一次 - /// JIT编译器会将静态布尔值内联为常量,实现分支消除优化 - /// 避免重复的运行时类型检查开销 - /// 多个相关检查集中在同一个静态类,提高CPU缓存局部性 - /// - /// - public static class EntitySupportedChecker where T : Entity - { - /// - /// 获取实体类型是否实现了 接口。 - /// 实现该接口的实体支持在父实体中添加多个同类型的组件实例。 - /// - /// - /// 如果实体类型实现了 接口,则为 true;否则为 false。 - /// - public static bool IsMulti { get; } -#if FANTASY_NET - /// - /// 获取实体类型是否实现了 接口。 - /// 实现该接口的实体支持数据库持久化存储。 - /// - /// - /// 如果实体类型实现了 接口,则为 true;否则为 false。 - /// - public static bool IsDataBase { get; } - - /// - /// 获取实体类型是否实现了 接口。 - /// 实现该接口的实体支持跨进程传输(如服务器间传送)。 - /// - /// - /// 如果实体类型实现了 接口,则为 true;否则为 false。 - /// - public static bool IsTransfer { get; } -#endif - /// - /// 静态构造函数,在首次访问该泛型类型时执行一次,缓存所有接口检查结果。 - /// - static EntitySupportedChecker() - { - var type = typeof(T); - IsMulti = typeof(ISupportedMultiEntity).IsAssignableFrom(type); -#if FANTASY_NET - IsDataBase = typeof(ISupportedDataBase).IsAssignableFrom(type); - IsTransfer = typeof(ISupportedTransfer).IsAssignableFrom(type); -#endif - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/Supported/EntitySupportedChecker.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/Supported/EntitySupportedChecker.cs.meta deleted file mode 100644 index 6cd977bc8..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/Supported/EntitySupportedChecker.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5270e455875688240a4bba66c041569f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/Supported/TypeHashCache.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/Supported/TypeHashCache.cs deleted file mode 100644 index bf945970b..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/Supported/TypeHashCache.cs +++ /dev/null @@ -1,100 +0,0 @@ -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using Fantasy.Helper; -#pragma warning disable CS8604 // Possible null reference argument. - -namespace Fantasy.Entitas.Interface -{ - /// - /// 实体类型哈希码缓存器。 - /// 提供两种缓存机制: - /// 1. 泛型静态字段缓存(用于泛型方法,零开销) - /// 2. 全局字典缓存(用于非泛型方法,运行时查找) - /// - public static class TypeHashCache - { - /// - /// 全局类型哈希码缓存字典,用于非泛型方法的运行时查找。 - /// 使用 ConcurrentDictionary 保证线程安全。 - /// - private static readonly ConcurrentDictionary RuntimeCache = new(); - - /// - /// 获取指定实体类型的哈希码(运行时查找)。 - /// 首次访问时计算并缓存,后续访问直接返回缓存值。 - /// - /// 实体类型 - /// 实体类型的哈希码 - /// - /// 使用场景:非泛型方法中使用,如 GetComponent(Type type) - /// 性能:首次访问需要计算并插入字典,后续访问为 O(1) 字典查找 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static long GetHashCode(Type type) - { - return RuntimeCache.GetOrAdd(type.TypeHandle, - static (_, fullName) => HashCodeHelper.ComputeHash64(fullName), - type.FullName); - } - - /// - /// 预热缓存,批量计算并缓存一组类型的哈希码。 - /// - /// 要预热的类型集合 - /// - /// 建议在程序初始化时调用,避免运行时首次查找的计算开销。 - /// - public static void Warmup(IEnumerable types) - { - foreach (var type in types) - { - if (typeof(Entity).IsAssignableFrom(type)) - { - GetHashCode(type); - } - } - } - - /// - /// 清除所有缓存(仅用于热重载场景)。 - /// - internal static void Clear() - { - RuntimeCache.Clear(); - } - } - - /// - /// 实体类型哈希码泛型缓存器。 - /// 通过泛型静态字段缓存每个实体类型的哈希码,实现零开销的类型哈希码访问。 - /// - /// 要缓存哈希码的实体类型,必须继承自 - /// - /// 性能优势: - /// - /// 每个类型的哈希码只计算一次,后续访问直接返回缓存值 - /// JIT编译器会将静态字段访问内联为常量 - /// 无需字典查找,性能远超运行时缓存 - /// 适合在泛型方法中使用,如 GetComponent<T>() - /// - /// - internal static class EntityTypeHashCache where T : Entity - { - /// - /// 获取实体类型 的哈希码。 - /// 该值在首次访问时计算并缓存,后续访问直接返回缓存值。 - /// - /// - /// 实体类型的哈希码,用于在 Entity 的 _tree 字典中快速查找组件。 - /// - public static long HashCode { get; } - - static EntityTypeHashCache() - { - // 直接调用非泛型版本,复用计算逻辑并共享缓存 - HashCode = TypeHashCache.GetHashCode(typeof(T)); - } - } -} diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/Supported/TypeHashCache.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/Supported/TypeHashCache.cs.meta deleted file mode 100644 index 7e25a992f..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/Supported/TypeHashCache.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 851caaa340968214784c41177fd9d1f2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/ICustomEntitySystem.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/ICustomEntitySystem.cs.meta deleted file mode 100644 index 2938d4bd4..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/ICustomEntitySystem.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: bee25381d3fa39d4d813fed6d4c0f467 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IEntitySystem.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IEntitySystem.cs.meta deleted file mode 100644 index 559ae1ff3..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/IEntitySystem.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b8ade73232c43554eb106b400c1f6e2e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/ILateUpdateSystem.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/ILateUpdateSystem.cs deleted file mode 100644 index eb39cb0e2..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/ILateUpdateSystem.cs +++ /dev/null @@ -1,36 +0,0 @@ -#if FANTASY_UNITY -using System; - -namespace Fantasy.Entitas.Interface -{ - public interface ILateUpdateSystem : IEntitySystem { } - - /// - /// 实体的LateUpdate事件的抽象接口 - /// - /// 实体的泛型类型 - public abstract class LateUpdateSystem : ILateUpdateSystem where T : Entity - { - /// - /// 实体的类型 - /// - /// - public Type EntityType() => typeof(T); - - /// - /// 事件的抽象方法,需要自己实现这个方法 - /// - /// 触发事件的实体实例 - protected abstract void LateUpdate(T self); - - /// - /// 框架内部调用的触发Awake的方法。 - /// - /// 触发事件的实体实例 - public void Invoke(Entity self) - { - LateUpdate((T)self); - } - } -} -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/ILateUpdateSystem.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/ILateUpdateSystem.cs.meta deleted file mode 100644 index 087019db0..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Entitas/Interface/System/ILateUpdateSystem.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5f9c37ae7bd884548a8c622dbddf1f3c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/ByteHelper.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/ByteHelper.cs deleted file mode 100644 index 3e8492ba1..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/ByteHelper.cs +++ /dev/null @@ -1,801 +0,0 @@ -using System; -using System.IO; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using System.Text; - -namespace Fantasy.Helper -{ - /// - /// 提供字节操作辅助方法的静态类。 - /// - public static class ByteHelper - { - private static readonly string[] HexTableUpper = new string[256]; - private static readonly string[] HexTableLower = new string[256]; - private static readonly string[] Suffix = { "Byte", "KB", "MB", "GB", "TB" }; - private static readonly long[] Divisors = { 1L, 1024L, 1024L * 1024, 1024L * 1024 * 1024, 1024L * 1024 * 1024 * 1024 }; - - static ByteHelper() - { - // 预计算所有256个字节的十六进制表示 - for (var i = 0; i < 256; i++) - { - HexTableUpper[i] = i.ToString("X2"); // 大写:00, 01, ..., FF - HexTableLower[i] = i.ToString("x2"); // 小写:00, 01, ..., ff - } - } - - #region Read - - /// - /// 从指定的流中读取一个 64 位整数。 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static long ReadInt64(this Stream stream) - { - Span buffer = stackalloc byte[8]; -#if FANTASY_NET - stream.ReadExactly(buffer); -#else - _ = stream.Read(buffer); -#endif - return MemoryMarshal.Read(buffer); - } - - /// - /// 从指定的流中读取一个 32 位整数。 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static int ReadInt32(this Stream stream) - { - Span buffer = stackalloc byte[4]; -#if FANTASY_NET - stream.ReadExactly(buffer); -#else - _ = stream.Read(buffer); -#endif - return MemoryMarshal.Read(buffer); - } - - /// - /// 从指定的流中读取一个 16 位整数。 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static int ReadInt16(this Stream stream) - { - Span buffer = stackalloc byte[2]; -#if FANTASY_NET - stream.ReadExactly(buffer); -#else - _ = stream.Read(buffer); -#endif - return MemoryMarshal.Read(buffer); - } - - /// - /// 从指定的流中读取一个无符号 64 位整数。 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static ulong ReadUInt64(this Stream stream) - { - Span buffer = stackalloc byte[8]; -#if FANTASY_NET - stream.ReadExactly(buffer); -#else - _ = stream.Read(buffer); -#endif - return MemoryMarshal.Read(buffer); - } - - /// - /// 从指定的流中读取一个无符号 32 位整数。 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static ulong ReadUInt32(this Stream stream) - { - Span buffer = stackalloc byte[4]; -#if FANTASY_NET - stream.ReadExactly(buffer); -#else - _ = stream.Read(buffer); -#endif - return MemoryMarshal.Read(buffer); - } - - /// - /// 从指定的流中读取一个无符号 16 位整数。 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static ulong ReadUInt16(this Stream stream) - { - Span buffer = stackalloc byte[2]; -#if FANTASY_NET - stream.ReadExactly(buffer); -#else - _ = stream.Read(buffer); -#endif - return MemoryMarshal.Read(buffer); - } - - #endregion - - #region WriteTo - - /// - /// 将值写入字节数组的指定偏移位置。 - /// - /// - /// - /// - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void WriteTo(this byte[] bytes, int offset, T value) where T : unmanaged - { - if (offset < 0 || offset + Marshal.SizeOf() > bytes.Length) - { - throw new ArgumentOutOfRangeException(nameof(offset)); - } - MemoryMarshal.Write(bytes.AsSpan(offset), -#if FANTASY_NET || FANTASY_CONSOLE - in value -#endif -#if FANTASY_UNITY - ref value -#endif - ); - } - - /// - /// 将值写入Span的指定偏移位置。 - /// - /// - /// - /// - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void WriteTo(this Span span, int offset, T value) where T : unmanaged - { - if (offset < 0 || offset + Marshal.SizeOf() > span.Length) - { - throw new ArgumentOutOfRangeException(nameof(offset)); - } - MemoryMarshal.Write(span.Slice(offset), -#if FANTASY_NET || FANTASY_CONSOLE - in value -#endif -#if FANTASY_UNITY - ref value -#endif - ); - } - - /// - /// 将值写入内存流 - /// - /// - /// - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void WriteTo(this Stream stream, T value) where T : unmanaged - { - Span buffer = stackalloc byte[Marshal.SizeOf()]; - MemoryMarshal.Write(buffer, -#if FANTASY_NET || FANTASY_CONSOLE - in value -#endif -#if FANTASY_UNITY - ref value -#endif - ); - stream.Write(buffer); - } - - /// - /// 将值写入内存流的指定偏移位置。 - /// - /// - /// - /// - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void WriteTo(this Stream stream, int offset, T value) where T : unmanaged - { - if (stream == null) - { - throw new ArgumentNullException(nameof(stream)); - } - - if (!stream.CanSeek) - { - throw new NotSupportedException("Stream must support seeking"); - } - - if (offset < 0) - { - throw new ArgumentOutOfRangeException(nameof(offset)); - } - - var originalPosition = stream.Position; - try - { - stream.Position = offset; - Span buffer = stackalloc byte[Marshal.SizeOf()]; - MemoryMarshal.Write(buffer, -#if FANTASY_NET || FANTASY_CONSOLE - in value -#endif -#if FANTASY_UNITY - ref value -#endif - ); - stream.Write(buffer); - } - finally - { - stream.Position = originalPosition; - } - } - - #endregion - - #region ReadFrom - - /// - /// 从字节数组的指定偏移位置读取值。 - /// - /// - /// - /// - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static T ReadFrom(this byte[] bytes, int offset) where T : unmanaged - { - if (offset < 0 || offset + Marshal.SizeOf() > bytes.Length) - { - throw new ArgumentOutOfRangeException(nameof(offset)); - } - - return MemoryMarshal.Read(bytes.AsSpan(offset)); - } - - /// - /// 从Span的指定偏移位置读取值。 - /// - /// - /// - /// - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static T ReadFrom(this ReadOnlySpan span, int offset) where T : unmanaged - { - if (offset < 0 || offset + Marshal.SizeOf() > span.Length) - { - throw new ArgumentOutOfRangeException(nameof(offset)); - } - - return MemoryMarshal.Read(span.Slice(offset)); - } - - /// - /// 从流的指定偏移位置读取值 - /// - /// - /// - /// 是否在读取完成后恢复到原始位置 - /// - /// - /// - /// - /// - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static T ReadFrom(this Stream stream, int offset, bool restorePosition = false) where T : unmanaged - { - if (stream == null) - { - throw new ArgumentNullException(nameof(stream)); - } - - if (!stream.CanSeek) - { - throw new NotSupportedException("Stream must support seeking"); - } - - if (offset < 0) - { - throw new ArgumentOutOfRangeException(nameof(offset)); - } - - var originalPosition = restorePosition ? stream.Position : 0; - - try - { - var sizeOf = Marshal.SizeOf(); - stream.Position = offset; - Span buffer = stackalloc byte[sizeOf]; -#if FANTASY_NET - stream.ReadExactly(buffer); -#else - var bytesRead = stream.Read(buffer); - if (bytesRead != sizeOf) - { - throw new EndOfStreamException($"Could not read {sizeOf} bytes from stream"); - } -#endif - return MemoryMarshal.Read(buffer); - } - finally - { - if (restorePosition) - { - stream.Position = originalPosition; - } - } - } - - #endregion - - #region GetBytes - - /// - /// 将值转换为字节数组。 - /// - /// - /// - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void GetBytes(this T value, Span buffer) where T : unmanaged - { - if (buffer.Length < Marshal.SizeOf()) - { - throw new ArgumentException($"Buffer too small. Required: {Marshal.SizeOf()}, Actual: {buffer.Length}"); - } - - MemoryMarshal.Write(buffer, -#if FANTASY_NET || FANTASY_CONSOLE - in value -#endif -#if FANTASY_UNITY - ref value -#endif - ); - } - - /// - /// 将值转换为字节数组。 - /// - /// - /// - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void GetBytes(this T value, byte[] buffer) where T : unmanaged - { - value.GetBytes(buffer.AsSpan()); - } - - /// - /// 将值转换为字节数组。 - /// - /// - /// - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static byte[] GetBytes(this T value) where T : unmanaged - { - var result = new byte[Marshal.SizeOf()]; - MemoryMarshal.Write(result.AsSpan(), -#if FANTASY_NET || FANTASY_CONSOLE - in value -#endif -#if FANTASY_UNITY - ref value -#endif - ); - return result; - } - - #endregion - - #region ToReadableSpeed - - /// - /// 将字节数转换为可读的大小表示 - /// - /// - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static string ToReadableSpeed(this long byteCount) - { - switch (byteCount) - { - case <= 0: - { - return "0 Byte"; - } - // < 1TB,使用快速版本 - case < 1L << 40: - { - var minLevel = 0; - var temp = byteCount; - while (temp >= 1024 && minLevel < 4) - { - temp >>= 10; - minLevel++; - } - return $"{(double)byteCount / Divisors[minLevel]:0.##} {Suffix[minLevel]}"; - } - default: - { -#if NET6_0_OR_GREATER - var level = Math.Min((int)(Math.Log2(byteCount) / 10), Suffix.Length - 1); -#else - // .NET Framework / .NET Core < 6.0 替代方案 - var level = Math.Min((int)(Math.Log(byteCount) / Math.Log(2) / 10), Suffix.Length - 1); -#endif - var divisor = 1L << (level * 10); - var value = (double)byteCount / divisor; - return $"{value:0.##} {Suffix[level]}"; - } - } - } - - /// - /// 将字节数转换为可读的大小表示(无符号版本) - /// - /// - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static string ToReadableSpeed(this ulong byteCount) - { - switch (byteCount) - { - case 0: - { - return "0 Byte"; - } - // < 1TB,使用快速版本 - case < 1L << 40: - { - var minLevel = 0; - var temp = byteCount; - while (temp >= 1024 && minLevel < 4) - { - temp >>= 10; - minLevel++; - } - return $"{(double)byteCount / Divisors[minLevel]:0.##} {Suffix[minLevel]}"; - } - default: - { -#if NET6_0_OR_GREATER - var level = Math.Min((int)(Math.Log2(byteCount) / 10), Suffix.Length - 1); -#else - // .NET Framework / .NET Core < 6.0 替代方案 - var level = Math.Min((int)(Math.Log(byteCount) / Math.Log(2) / 10), Suffix.Length - 1); -#endif - var divisor = 1L << (level * 10); - var value = (double)byteCount / divisor; - return $"{value:0.##} {Suffix[level]}"; - } - } - } - - #endregion - - #region MergeBytes - - /// - /// 合并字节数组到目标缓冲区(零分配版本)。 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void MergeBytesTo(Span destination, ReadOnlySpan first, ReadOnlySpan second) - { - if (destination.Length < first.Length + second.Length) - throw new ArgumentException("Destination buffer too small"); - - first.CopyTo(destination); - second.CopyTo(destination.Slice(first.Length)); - } - - /// - /// 合并两个字节数组。 - /// - /// 第一个字节数组 - /// 第二个字节数组 - /// 合并后的字节数组 - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static byte[] MergeBytes(byte[] bytes, byte[] otherBytes) - { - if (bytes == null) - { - throw new ArgumentNullException(nameof(bytes)); - } - - if (otherBytes == null) - { - throw new ArgumentNullException(nameof(otherBytes)); - } - - // 优化:如果其中一个为空,直接返回另一个的副本 - if (bytes.Length == 0) - { - return (byte[])otherBytes.Clone(); - } - - if (otherBytes.Length == 0) - { - return (byte[])bytes.Clone(); - } - - var result = new byte[bytes.Length + otherBytes.Length]; - bytes.CopyTo(result.AsSpan()); - otherBytes.CopyTo(result.AsSpan(bytes.Length)); - return result; - } - - #endregion - - #region ToHex - - /// - /// 将字节转换为大写十六进制字符串。 - /// - /// - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static string ToHex(this byte b) - { - return HexTableUpper[b]; - } - - /// - /// 将字节转换为小写十六进制字符串。 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static string ToHexLower(this byte b) - { - return HexTableLower[b]; - } - - /// - /// 将字节转换为指定格式的十六进制字符串。 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static string ToHex(this byte b, bool upperCase) - { - return upperCase ? HexTableUpper[b] : HexTableLower[b]; - } - - /// - /// 将字节数组转换为十六进制字符串表示。 - /// - /// - /// - /// - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static string ToHex(this byte[] bytes, bool upperCase = true) - { - if (bytes == null) - { - throw new ArgumentNullException(nameof(bytes)); - } - - if (bytes.Length == 0) - { - return string.Empty; - } - - var hexTable = upperCase ? HexTableUpper : HexTableLower; - - return string.Create(bytes.Length * 2, (bytes, hexTable), (chars, state) => - { - var (buffer, table) = state; - var charIndex = 0; - ref var bytesRef = ref MemoryMarshal.GetReference(buffer.AsSpan()); - - for (var i = 0; i < buffer.Length; i++) - { - var hexStr = table[Unsafe.Add(ref bytesRef, i)]; - chars[charIndex++] = hexStr[0]; - chars[charIndex++] = hexStr[1]; - } - }); - } - - /// - /// 将字节数组的指定范围按十六进制格式转换为字符串表示。 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static string ToHex(this byte[] bytes, int offset, int count, bool upperCase = true) - { - if (bytes == null) - { - throw new ArgumentNullException(nameof(bytes)); - } - - if (offset < 0) - { - throw new ArgumentOutOfRangeException(nameof(offset)); - } - - if (count < 0 || offset + count > bytes.Length) - { - throw new ArgumentOutOfRangeException(nameof(count)); - } - - if (count == 0) - { - return string.Empty; - } - - var hexTable = upperCase ? HexTableUpper : HexTableLower; - - return string.Create(count * 2, (bytes, offset, count, hexTable), (chars, state) => - { - var (buffer, start, length, table) = state; - var charIndex = 0; - ref var bytesRef = ref MemoryMarshal.GetReference(buffer.AsSpan()); - - for (var i = 0; i < length; i++) - { - var hexStr = table[Unsafe.Add(ref bytesRef, start + i)]; - chars[charIndex++] = hexStr[0]; - chars[charIndex++] = hexStr[1]; - } - }); - } - - /// - /// 将字节数组的指定范围按十六进制格式转换为字符串表示。 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static string ToHex(this ReadOnlySpan bytes, bool upperCase = true) - { - if (bytes.Length == 0) - { - return string.Empty; - } - - var hexTable = upperCase ? HexTableUpper : HexTableLower; - - return string.Create(bytes.Length * 2, (MemoryMarshal.GetReference(bytes), bytes.Length, hexTable), (chars, - state) => - { - var (bytesRef, length, table) = state; - var charIndex = 0; - - for (var i = 0; i < length; i++) - { - var hexStr = table[Unsafe.Add(ref bytesRef, i)]; - chars[charIndex++] = hexStr[0]; - chars[charIndex++] = hexStr[1]; - } - }); - } - - /// - /// 将十六进制字符串转换为字节数组。 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static byte[] FromHex(this string hexString) - { - return hexString.AsSpan().FromHex(); - } - - /// - /// 将十六进制字符串转换为字节数组。 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static byte[] FromHex(this ReadOnlySpan hexSpan) - { - if (hexSpan.Length == 0) - { - return Array.Empty(); - } - - if (hexSpan.Length % 2 != 0) - { - throw new ArgumentException("Hex string must have even length"); - } - - var result = new byte[hexSpan.Length / 2]; - - for (var i = 0; i < result.Length; i++) - { - var high = HexCharToValue(hexSpan[i * 2]); - var low = HexCharToValue(hexSpan[i * 2 + 1]); - result[i] = (byte)((high << 4) | low); - } - - return result; - } - - - /// - /// 将十六进制字符串转换到现有字节数组。 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void FromHexTo(this string hexString, Span destination) - { - if (string.IsNullOrEmpty(hexString)) - { - return; - } - - if (hexString.Length % 2 != 0) - { - throw new ArgumentException("Hex string must have even length", nameof(hexString)); - } - - if (destination.Length < hexString.Length / 2) - { - throw new ArgumentException("Destination buffer too small", nameof(destination)); - } - - for (var i = 0; i < hexString.Length / 2; i++) - { - var high = HexCharToValue(hexString[i * 2]); - var low = HexCharToValue(hexString[i * 2 + 1]); - destination[i] = (byte)((high << 4) | low); - } - } - - - /// - /// 将十六进制字符转换为数值。 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static int HexCharToValue(char c) - { - return c switch - { - >= '0' and <= '9' => c - '0', - >= 'A' and <= 'F' => c - 'A' + 10, - >= 'a' and <= 'f' => c - 'a' + 10, - _ => throw new ArgumentException($"Invalid hex character: {c}") - }; - } - - - /// - /// 将字节数组转换为默认编码的字符串表示。 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static string ToStr(this byte[] bytes) - { - return Encoding.Default.GetString(bytes); - } - - /// - /// 将字节数组的指定范围按默认编码转换为字符串表示。 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static string ToStr(this byte[] bytes, int index, int count) - { - return Encoding.Default.GetString(bytes, index, count); - } - - /// - /// 将字节数组转换为 UTF-8 编码的字符串表示。 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static string Utf8ToStr(this byte[] bytes) - { - return Encoding.UTF8.GetString(bytes); - } - - /// - /// 将字节数组的指定范围按 UTF-8 编码转换为字符串表示。 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static string Utf8ToStr(this byte[] bytes, int index, int count) - { - return Encoding.UTF8.GetString(bytes, index, count); - } - - - #endregion - } -} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/HashCodeHelper.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/HashCodeHelper.cs deleted file mode 100644 index 4ea6f29a7..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Helper/HashCodeHelper.cs +++ /dev/null @@ -1,336 +0,0 @@ -using System; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -// ReSharper disable InconsistentNaming - -namespace Fantasy.Helper -{ - /// - /// HashCode算法帮助类 - /// - public static partial class HashCodeHelper - { - /// - /// 计算两个字符串的HashCode - /// - /// - /// - /// - public static int GetHashCode(string a, string b) - { - var hash = 17; - hash = hash * 31 + a.GetHashCode(); - hash = hash * 31 + b.GetHashCode(); - return hash; - } - - /// - /// 使用bkdr算法生成一个long的值 - /// - /// - /// - public static long GetBKDRHashCode(string str) - { - ulong hash = 0; - const uint seed = 13131; // 如果要修改这个种子、建议选择一个质数来做种子 31 131 1313 13131 131313 etc.. - var span = str.AsSpan(); - ref var local = ref MemoryMarshal.GetReference(span); - - for (var i = 0; i < span.Length; i++) - { - var c = Unsafe.Add(ref local, i); - var high = (byte)(c >> 8); - var low = (byte)(c & byte.MaxValue); - hash = hash * seed + high; - hash = hash * seed + low; - } - - return (long)hash; - } - - /// - /// 使用MurmurHash3算法生成一个uint的值 - /// - /// - /// - public static uint MurmurHash3(string str) - { - const uint seed = 0xc58f1a7b; - uint hash = seed; - uint c1 = 0xcc9e2d51; - uint c2 = 0x1b873593; - - var span = str.AsSpan(); - ref var local = ref MemoryMarshal.GetReference(span); - - for (var i = 0; i < span.Length; i++) - { - var k1 = (uint)Unsafe.Add(ref local, i); - k1 *= c1; - k1 = (k1 << 15) | (k1 >> (32 - 15)); - k1 *= c2; - - hash ^= k1; - hash = (hash << 13) | (hash >> (32 - 13)); - hash = hash * 5 + 0xe6546b64; - } - - hash ^= (uint)str.Length; - hash ^= hash >> 16; - hash *= 0x85ebca6b; - hash ^= hash >> 13; - hash *= 0xc2b2ae35; - hash ^= hash >> 16; - return hash; - } - - /// - /// 使用MurmurHash3算法生成一个long的值 - /// - /// - /// - public static long ComputeHash64(string str) - { - const ulong seed = 0xc58f1a7bc58f1a7bUL; // 64-bit seed - var hash = seed; - var c1 = 0x87c37b91114253d5UL; - var c2 = 0x4cf5ad432745937fUL; - - var span = str.AsSpan(); - ref var local = ref MemoryMarshal.GetReference(span); - - for (var i = 0; i < span.Length; i++) - { - var k1 = (ulong)Unsafe.Add(ref local, i); - k1 *= c1; - k1 = (k1 << 31) | (k1 >> (64 - 31)); - k1 *= c2; - - hash ^= k1; - hash = (hash << 27) | (hash >> (64 - 27)); - hash = hash * 5 + 0x52dce729; - } - - hash ^= (ulong)str.Length; - hash ^= hash >> 33; - hash *= 0xff51afd7ed558ccdUL; - hash ^= hash >> 33; - hash *= 0xc4ceb9fe1a85ec53UL; - hash ^= hash >> 33; - return (long)hash; - } - - /// - /// 根据字符串计算一个Hash值 - /// - /// - /// - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static int Hash32(string obj, uint seed = 0) => Hash32(obj.AsSpan(), seed); - - /// - /// 根据字符串计算一个Hash值 - /// - /// - /// - /// - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static int Hash32(in T obj, uint seed = 0) where T : unmanaged => Hash32( - MemoryMarshal.CreateReadOnlySpan(ref Unsafe.As(ref Unsafe.AsRef(in obj)), Unsafe.SizeOf()), - seed); - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static int Hash32(ReadOnlySpan buffer, uint seed = 0) where T : unmanaged => - Hash32(MemoryMarshal.Cast(buffer), seed); - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static int Hash32(ReadOnlySpan buffer, uint seed = 0) - { - int length = buffer.Length; - ref byte local1 = ref MemoryMarshal.GetReference(buffer); - uint num1; - if (buffer.Length >= 16) - { - uint num2 = seed + 606290984U; - uint num3 = seed + 2246822519U; - uint num4 = seed; - uint num5 = seed - 2654435761U; - for (; length >= 16; length -= 16) - { - const nint elementOffset1 = 4; - const nint elementOffset2 = 8; - const nint elementOffset3 = 12; - nint byteOffset = buffer.Length - length; - ref byte local2 = ref Unsafe.AddByteOffset(ref local1, byteOffset); - uint num6 = num2 + Unsafe.ReadUnaligned(ref local2) * 2246822519U; - num2 = (uint)((((int)num6 << 13) | (int)(num6 >> 19)) * -1640531535); - uint num7 = num3 + - Unsafe.ReadUnaligned(ref Unsafe.AddByteOffset(ref local2, elementOffset1)) * - 2246822519U; - num3 = (uint)((((int)num7 << 13) | (int)(num7 >> 19)) * -1640531535); - uint num8 = num4 + - Unsafe.ReadUnaligned(ref Unsafe.AddByteOffset(ref local2, elementOffset2)) * - 2246822519U; - num4 = (uint)((((int)num8 << 13) | (int)(num8 >> 19)) * -1640531535); - uint num9 = num5 + - Unsafe.ReadUnaligned(ref Unsafe.AddByteOffset(ref local2, elementOffset3)) * - 2246822519U; - num5 = (uint)((((int)num9 << 13) | (int)(num9 >> 19)) * -1640531535); - } - - num1 = (uint)((((int)num2 << 1) | (int)(num2 >> 31)) + (((int)num3 << 7) | (int)(num3 >> 25)) + - (((int)num4 << 12) | (int)(num4 >> 20)) + (((int)num5 << 18) | (int)(num5 >> 14)) + - buffer.Length); - } - else - num1 = (uint)((int)seed + 374761393 + buffer.Length); - - for (; length >= 4; length -= 4) - { - nint byteOffset = buffer.Length - length; - uint num10 = Unsafe.ReadUnaligned(ref Unsafe.AddByteOffset(ref local1, byteOffset)); - uint num11 = num1 + num10 * 3266489917U; - num1 = (uint)((((int)num11 << 17) | (int)(num11 >> 15)) * 668265263); - } - - nint byteOffset1 = buffer.Length - length; - ref byte local3 = ref Unsafe.AddByteOffset(ref local1, byteOffset1); - for (int index = 0; index < length; ++index) - { - nint byteOffset2 = index; - uint num12 = Unsafe.AddByteOffset(ref local3, byteOffset2); - uint num13 = num1 + num12 * 374761393U; - num1 = (uint)((((int)num13 << 11) | (int)(num13 >> 21)) * -1640531535); - } - -#if NET7_0_OR_GREATER - int num14 = ((int)num1 ^ (int)(num1 >> 15)) * -2048144777; - int num15 = (num14 ^ (num14 >>> 13)) * -1028477379; - return num15 ^ (num15 >>> 16); -#else - int num14 = ((int)num1 ^ (int)(num1 >> 15)) * -2048144777; - int num15 = (num14 ^ (int)((uint)num14 >> 13)) * -1028477379; - return num15 ^ (int)((uint)num15 >> 16); -#endif - } - - /// - /// 根据字符串计算一个Hash值 - /// - /// - /// - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static long Hash64(string obj, ulong seed = 0) => Hash64(obj.AsSpan(), seed); - - /// - /// 根据字符串计算一个Hash值 - /// - /// - /// - /// - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static long Hash64(in T obj, ulong seed = 0) where T : unmanaged => Hash64( - MemoryMarshal.CreateReadOnlySpan(ref Unsafe.As(ref Unsafe.AsRef(in obj)), Unsafe.SizeOf()), - seed); - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static long Hash64(ReadOnlySpan buffer, ulong seed = 0) where T : unmanaged => - Hash64(MemoryMarshal.Cast(buffer), seed); - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static long Hash64(ReadOnlySpan buffer, ulong seed = 0) - { - ref var local1 = ref MemoryMarshal.GetReference(buffer); - var length = buffer.Length; - ulong num1; - if (buffer.Length >= 32) - { - var num2 = seed + 6983438078262162902UL; - var num3 = seed + 14029467366897019727UL; - var num4 = seed; - var num5 = seed - 11400714785074694791UL; - for (; length >= 32; length -= 32) - { - ref var local2 = ref Unsafe.AddByteOffset(ref local1, (IntPtr)(buffer.Length - length)); - var num6 = num2 + Unsafe.ReadUnaligned(ref local2) * 14029467366897019727UL; - num2 = (ulong)((((long)num6 << 31) | (long)(num6 >> 33)) * -7046029288634856825L); - var num7 = num3 + - Unsafe.ReadUnaligned(ref Unsafe.AddByteOffset(ref local2, new UIntPtr(8U))) * - 14029467366897019727UL; - num3 = (ulong)((((long)num7 << 31) | (long)(num7 >> 33)) * -7046029288634856825L); - var num8 = num4 + - Unsafe.ReadUnaligned(ref Unsafe.AddByteOffset(ref local2, new UIntPtr(16U))) * - 14029467366897019727UL; - num4 = (ulong)((((long)num8 << 31) | (long)(num8 >> 33)) * -7046029288634856825L); - var num9 = num5 + - Unsafe.ReadUnaligned(ref Unsafe.AddByteOffset(ref local2, new UIntPtr(24U))) * - 14029467366897019727UL; - num5 = (ulong)((((long)num9 << 31) | (long)(num9 >> 33)) * -7046029288634856825L); - } - - var num10 = (((long)num2 << 1) | (long)(num2 >> 63)) + (((long)num3 << 7) | (long)(num3 >> 57)) + - (((long)num4 << 12) | (long)(num4 >> 52)) + (((long)num5 << 18) | (long)(num5 >> 46)); - var num11 = num2 * 14029467366897019727UL; - var num12 = (((long)num11 << 31) | (long)(num11 >> 33)) * -7046029288634856825L; - var num13 = (num10 ^ num12) * -7046029288634856825L + -8796714831421723037L; - var num14 = num3 * 14029467366897019727UL; - var num15 = (((long)num14 << 31) | (long)(num14 >> 33)) * -7046029288634856825L; - var num16 = (num13 ^ num15) * -7046029288634856825L + -8796714831421723037L; - var num17 = num4 * 14029467366897019727UL; - var num18 = (((long)num17 << 31) | (long)(num17 >> 33)) * -7046029288634856825L; - var num19 = (num16 ^ num18) * -7046029288634856825L + -8796714831421723037L; - var num20 = num5 * 14029467366897019727UL; - var num21 = (((long)num20 << 31) | (long)(num20 >> 33)) * -7046029288634856825L; - num1 = (ulong)((num19 ^ num21) * -7046029288634856825L + -8796714831421723037L); - } - else - num1 = seed + 2870177450012600261UL; - - var num22 = num1 + (ulong)buffer.Length; - for (; length >= 8; length -= 8) - { - var num23 = Unsafe.ReadUnaligned(ref Unsafe.AddByteOffset(ref local1, - (IntPtr)(buffer.Length - length))) * 14029467366897019727UL; - var num24 = (ulong)((((long)num23 << 31) | (long)(num23 >> 33)) * -7046029288634856825L); - var num25 = num22 ^ num24; - num22 = (ulong)((((long)num25 << 27) | (long)(num25 >> 37)) * -7046029288634856825L + - -8796714831421723037L); - } - - if (length >= 4) - { - ulong num26 = - Unsafe.ReadUnaligned(ref Unsafe.AddByteOffset(ref local1, (IntPtr)(buffer.Length - length))); - var num27 = num22 ^ (num26 * 11400714785074694791UL); - num22 = (ulong)((((long)num27 << 23) | (long)(num27 >> 41)) * -4417276706812531889L + - 1609587929392839161L); - length -= 4; - } - - for (var byteOffset = 0; byteOffset < length; ++byteOffset) - { - ulong num28 = - Unsafe.AddByteOffset(ref Unsafe.AddByteOffset(ref local1, (IntPtr)(buffer.Length - length)), - (IntPtr)byteOffset); - var num29 = num22 ^ (num28 * 2870177450012600261UL); - num22 = (ulong)((((long)num29 << 11) | (long)(num29 >> 53)) * -7046029288634856825L); - } - -#if NET7_0_OR_GREATER - var num30 = (long)num22; - var num31 = (num30 ^ (num30 >>> 33)) * -4417276706812531889L; - var num32 = (num31 ^ (num31 >>> 29)) * 1609587929392839161L; - return num32 ^ (num32 >>> 32); -#else - var num30 = (long)num22; - var num31 = (num30 ^ (long)((ulong)num30 >> 33)) * -4417276706812531889L; - var num32 = (num31 ^ (long)((ulong)num31 >> 29)) * 1609587929392839161L; - return num32 ^ (long)((ulong)num32 >> 32); -#endif - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/Default/RuntimeIdStruct.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/Default/RuntimeIdStruct.cs deleted file mode 100644 index f49f42e98..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/Default/RuntimeIdStruct.cs +++ /dev/null @@ -1,195 +0,0 @@ -using System; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using Fantasy.Helper; -#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member - -namespace Fantasy.IdFactory -{ - /// - /// 表示一个运行时的ID。 - /// - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct RuntimeIdStruct - { - // RuntimeId: IsPool(1) + time(23) + SceneId(16) + sequence(24) = 64 bits - // +------------------+-------------------+-----------------------------+--------------------------------------+ - // | IsPool(1) 对象池 | time(23) 最大60天 | SceneId(16) 最多65535个Scene | sequence(24) 每秒每个进程能生产16777215个 - // +------------------+-------------------+-----------------------------+--------------------------------------+ - public uint Time { get; private set; } - public uint SceneId { get; private set; } - public uint Sequence { get; private set; } - public bool IsPool { get; private set; } - - public const uint MaskSequence = 0xFFFFFF; // 24位 - public const uint MaskSceneId = 0xFFFF; // 16位 - public const uint MaskTime = 0x7FFFFF; // 23位 (最高位留给 IsPool) - - /// - /// RuntimeIdStruct(如果超过下面参数的设定该ID会失效)。 - /// - /// - /// time不能超过8388607 - /// sceneId不能超过65535 - /// sequence不能超过16777215 - public RuntimeIdStruct(bool isPool, uint time, uint sceneId, uint sequence) - { - // 因为都是在配置表里拿到参数、所以这个不做边界判定、能节省一点点性能。 - IsPool = isPool; - Time = time; - SceneId = sceneId; - Sequence = sequence; - } - - public static implicit operator long(RuntimeIdStruct runtimeIdStruct) - { - ulong result = runtimeIdStruct.Sequence; // 低24位: sequence - result |= (ulong)runtimeIdStruct.SceneId << 24; // 第24-39位: sceneId - result |= (ulong)runtimeIdStruct.Time << 40; // 第40-62位: time - result |= (runtimeIdStruct.IsPool ? 1UL : 0UL) << 63; // 最高位63: isPool - return (long)result; - } - - public static implicit operator RuntimeIdStruct(long runtimeId) - { - var result = (ulong)runtimeId; - var runtimeIdStruct = new RuntimeIdStruct - { - Sequence = (uint)(result & MaskSequence), // 低24位: sequence - SceneId = (uint)((result >> 24) & MaskSceneId), // 第24-39位: sceneId - Time = (uint)((result >> 40) & MaskTime), // 第40-62位: time - IsPool = ((result >> 63) & 1) == 1 // 最高位63: isPool - }; - return runtimeIdStruct; - } - } - - public sealed class RuntimeIdFactory : IRuntimeIdFactory - { - private readonly uint _sceneId; - - private uint _lastTime; - private uint _lastSequence; - private readonly long _epochNow; - private readonly long _epoch1970 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).Ticks / 10000; - - private RuntimeIdFactory() { } - - public RuntimeIdFactory(uint sceneId) : this(TimeHelper.Now, sceneId) { } - - public RuntimeIdFactory(long epochNow, uint sceneId) - { - switch (sceneId) - { - case > 65535: - { - throw new NotSupportedException($"sceneId:{sceneId} cannot be greater than 255255"); - } - default: - { - _sceneId = (ushort)sceneId; - _epochNow = epochNow - _epoch1970; - break; - } - } - } - - public long Create(bool isPool) - { - var time = (uint)((TimeHelper.Now - _epochNow) / 1000); - - if (time > _lastTime) - { - _lastTime = time; - _lastSequence = 0; - } - else if (++_lastSequence > RuntimeIdStruct.MaskSequence - 1) - { - _lastTime++; - _lastSequence = 0; - } - - return new RuntimeIdStruct(isPool, time, _sceneId, _lastSequence); - } - } - - public sealed class RuntimeIdFactoryTool : IIdFactoryTool - { - /// - /// 获取 RuntimeId 中的 IsPool 标志 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public bool GetIsPool(long runtimeId) - { - return GetIsPool(ref runtimeId); - } - - /// - /// 获取 RuntimeId 中的 IsPool 标志 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public bool GetIsPool(ref long runtimeId) - { - return (((ulong)runtimeId >> 63) & 1) == 1; // 最高位 - } - - /// - /// 获取 RuntimeId 中的时间部分 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public uint GetTime(ref long runtimeId) - { - var result = (ulong)runtimeId >> 40; // 右移40位到第40-62位 - return (uint)(result & RuntimeIdStruct.MaskTime); - } - - /// - /// 获取 RuntimeId 中的时间部分 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public uint GetTime(long runtimeId) - { - return GetTime(ref runtimeId); - } - - /// - /// 获取 RuntimeId 中的 SceneId 部分 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public uint GetSceneId(ref long runtimeId) - { - var result = (ulong)runtimeId >> 24; // 右移24位到第24-39位 - return (uint)(result & RuntimeIdStruct.MaskSceneId); - } - - /// - /// 获取 RuntimeId 中的 SceneId 部分 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public uint GetSceneId(long runtimeId) - { - return GetSceneId(ref runtimeId); - } - - /// - /// 获取 RuntimeId 中的 Sequence 部分 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public uint GetSequence(ref long runtimeId) - { - return (uint)((ulong)runtimeId & RuntimeIdStruct.MaskSequence); // 低24位 - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public byte GetWorldId(ref long entityId) - { - throw new NotImplementedException(); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public byte GetWorldId(long entityId) - { - throw new NotImplementedException(); - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/Interface/IIdFactoryTool.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/Interface/IIdFactoryTool.cs deleted file mode 100644 index 48676febe..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/Interface/IIdFactoryTool.cs +++ /dev/null @@ -1,57 +0,0 @@ -namespace Fantasy.IdFactory -{ - /// - /// Id扩展工具接口 - /// - public interface IIdFactoryTool - { - /// - /// 获取 RuntimeId 中的 IsPool 标志 - /// - /// - /// - public bool GetIsPool(ref long runtimeId); - /// - /// 获取 RuntimeId 中的 IsPool 标志 - /// - /// - /// - public bool GetIsPool(long runtimeId); - /// - /// 获得创建时间 - /// - /// - /// - public uint GetTime(ref long entityId); - /// - /// 获得创建时间 - /// - /// - /// - public uint GetTime(long entityId); - /// - /// 获得SceneId - /// - /// - /// - public uint GetSceneId(ref long entityId); - /// - /// 获得SceneId - /// - /// - /// - public uint GetSceneId(long entityId); - /// - /// 获得WorldId - /// - /// - /// - public byte GetWorldId(ref long entityId); - /// - /// 获得WorldId - /// - /// - /// - public byte GetWorldId(long entityId); - } -} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/World/WorldRuntimeIdFactory.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/World/WorldRuntimeIdFactory.cs deleted file mode 100644 index 3822d9dbf..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/IdFactory/World/WorldRuntimeIdFactory.cs +++ /dev/null @@ -1,227 +0,0 @@ -using System; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using Fantasy.Helper; - -#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member - -namespace Fantasy.IdFactory -{ - /// - /// 表示一个运行时的ID。 - /// - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct WorldRuntimeIdStruct - { - // RuntimeId: IsPool(1) + time(23) + SceneId(8) + WordId(8) + sequence(24) = 64 bits - // +------------------+-------------------+--------------------------+-----------------------+--------------------------------------+ - // | IsPool(1) 对象池 | time(23) 最大60天 | SceneId(8) 最多255个Scene | WordId(8) 最多255个世界 | sequence(24) 每秒每个进程能生产16777215个 - // +------------------+-------------------+--------------------------+-----------------------+--------------------------------------+ - public uint Time { get; private set; } - public uint SceneId { get; private set; } - public byte WordId { get; private set; } - public uint Sequence { get; private set; } - public bool IsPool { get; private set; } - - public const uint MaskSequence = 0xFFFFFF; // 24位(从25位减少到24位,为 IsPool 腾出空间) - public const uint MaskSceneId = 0xFF; // 8位 - public const uint MaskWordId = 0xFF; // 8位 - public const uint MaskTime = 0x7FFFFF; // 23位(最高位留给 IsPool) - - /// - /// WorldRuntimeIdStruct(如果超过下面参数的设定该ID会失效)。 - /// - /// 是否来自对象池 - /// time不能超过8388607 - /// sceneId不能超过255 - /// wordId不能超过255 - /// sequence不能超过16777215(24位) - public WorldRuntimeIdStruct(bool isPool, uint time, uint sceneId, byte wordId, uint sequence) - { - // 因为都是在配置表里拿到参数、所以这个不做边界判定、能节省一点点性能。 - IsPool = isPool; - Time = time; - SceneId = sceneId; - WordId = wordId; - Sequence = sequence; - } - - public static implicit operator long(WorldRuntimeIdStruct runtimeIdStruct) - { - ulong result = runtimeIdStruct.Sequence; // 低24位: sequence - result |= (ulong)runtimeIdStruct.WordId << 24; // 第24-31位: wordId - result |= (ulong)(runtimeIdStruct.SceneId % (runtimeIdStruct.WordId * 1000)) << 32; // 第32-39位: sceneId - result |= (ulong)runtimeIdStruct.Time << 40; // 第40-62位: time - result |= (runtimeIdStruct.IsPool ? 1UL : 0UL) << 63; // 最高位63: isPool - return (long)result; - } - - public static implicit operator WorldRuntimeIdStruct(long runtimeId) - { - var result = (ulong)runtimeId; - var wordId = (byte)((result >> 24) & MaskWordId); // 第24-31位: wordId - var runtimeIdStruct = new WorldRuntimeIdStruct - { - Sequence = (uint)(result & MaskSequence), // 低24位: sequence - WordId = wordId, - SceneId = (uint)((result >> 32) & MaskSceneId) + (uint)wordId * 1000, // 第32-39位: sceneId - Time = (uint)((result >> 40) & MaskTime), // 第40-62位: time - IsPool = ((result >> 63) & 1) == 1 // 最高位63: isPool - }; - return runtimeIdStruct; - } - } - - public sealed class WorldRuntimeIdFactory : IRuntimeIdFactory - { - private readonly uint _sceneId; - private readonly byte _worldId; - - private uint _lastTime; - private uint _lastSequence; - private readonly long _epochNow; - private readonly long _epoch1970 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).Ticks / 10000; - - private WorldRuntimeIdFactory() { } - - public WorldRuntimeIdFactory(uint sceneId, byte worldId) : this(TimeHelper.Now, sceneId, worldId) { } - - public WorldRuntimeIdFactory(long epochNow, uint sceneId, byte worldId) - { - switch (sceneId) - { - case > 255255: - { - throw new NotSupportedException($"sceneId:{sceneId} cannot be greater than 255255"); - } - case < 1001: - { - throw new NotSupportedException($"sceneId:{sceneId} cannot be less than 1001"); - } - default: - { - _sceneId = sceneId; - _worldId = worldId; - _epochNow = epochNow - _epoch1970; - break; - } - } - } - - public long Create(bool isPool) - { - var time = (uint)((TimeHelper.Now - _epochNow) / 1000); - - if (time > _lastTime) - { - _lastTime = time; - _lastSequence = 0; - } - else if (++_lastSequence > WorldRuntimeIdStruct.MaskSequence - 1) - { - _lastTime++; - _lastSequence = 0; - } - - return new WorldRuntimeIdStruct(isPool, time, _sceneId, _worldId, _lastSequence); - } - } - - public sealed class WorldRuntimeIdFactoryTool : IIdFactoryTool - { - /// - /// 获取 RuntimeId 中的 IsPool 标志 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public bool GetIsPool(long runtimeId) - { - return GetIsPool(ref runtimeId); - } - - /// - /// 获取 RuntimeId 中的 IsPool 标志 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public bool GetIsPool(ref long runtimeId) - { - return (((ulong)runtimeId >> 63) & 1) == 1; // 最高位 - } - - /// - /// 获取 RuntimeId 中的时间部分 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public uint GetTime(ref long runtimeId) - { - var result = (ulong)runtimeId >> 40; // 右移40位到第40-62位 - return (uint)(result & WorldRuntimeIdStruct.MaskTime); - } - - /// - /// 获取 RuntimeId 中的时间部分 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public uint GetTime(long runtimeId) - { - return GetTime(ref runtimeId); - } - - /// - /// 获取 RuntimeId 中的 SceneId 部分 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public uint GetSceneId(ref long runtimeId) - { - var result = (ulong)runtimeId >> 24; // 右移24位 - var worldId = (uint)(result & WorldRuntimeIdStruct.MaskWordId) * 1000; // 第24-31位: worldId - result >>= 8; - return (uint)(result & WorldRuntimeIdStruct.MaskSceneId) + worldId; // 第32-39位: sceneId - } - - /// - /// 获取 RuntimeId 中的 SceneId 部分 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public uint GetSceneId(long runtimeId) - { - return GetSceneId(ref runtimeId); - } - - /// - /// 获取 RuntimeId 中的 WorldId 部分 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public byte GetWorldId(ref long runtimeId) - { - var result = (ulong)runtimeId >> 24; // 右移24位到第24-31位 - return (byte)(result & WorldRuntimeIdStruct.MaskWordId); - } - - /// - /// 获取 RuntimeId 中的 WorldId 部分 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public byte GetWorldId(long runtimeId) - { - return GetWorldId(ref runtimeId); - } - - /// - /// 获取 RuntimeId 中的 Sequence 部分 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public uint GetSequence(ref long runtimeId) - { - return (uint)((ulong)runtimeId & WorldRuntimeIdStruct.MaskSequence); // 低24位 - } - - /// - /// 获取 RuntimeId 中的 Sequence 部分 - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public uint GetSequence(long runtimeId) - { - return GetSequence(ref runtimeId); - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Log/ConsoleLog.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Log/ConsoleLog.cs deleted file mode 100644 index 0d57e2293..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Log/ConsoleLog.cs +++ /dev/null @@ -1,144 +0,0 @@ -#if FANTASY_NET -using Fantasy.Platform.Net; -#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member - -namespace Fantasy; - -/// -/// 标准的控制台Log -/// -public sealed class ConsoleLog : ILog -{ - /// - /// 初始化方法 - /// - /// - public void Initialize(ProcessMode processMode) { } - - /// - /// 记录跟踪级别的日志消息。 - /// - /// 日志消息。 - public void Trace(string message) - { - Console.ForegroundColor = ConsoleColor.White; - Console.WriteLine(message); - } - - /// - /// 记录警告级别的日志消息。 - /// - /// 日志消息。 - public void Warning(string message) - { - Console.ForegroundColor = ConsoleColor.Yellow; - Console.WriteLine(message); - } - - /// - /// 记录信息级别的日志消息。 - /// - /// 日志消息。 - public void Info(string message) - { - Console.ForegroundColor = ConsoleColor.Gray; - Console.WriteLine(message); - } - - /// - /// 记录调试级别的日志消息。 - /// - /// 日志消息。 - public void Debug(string message) - { - Console.ForegroundColor = ConsoleColor.DarkGreen; - Console.WriteLine(message); - } - - /// - /// 记录错误级别的日志消息。 - /// - /// 日志消息。 - public void Error(string message) - { - Console.ForegroundColor = ConsoleColor.DarkRed; - Console.WriteLine(message); - } - - /// - /// 记录严重错误级别的日志消息。 - /// - /// 日志消息。 - public void Fatal(string message) - { - Console.ForegroundColor = ConsoleColor.Red; - Console.WriteLine(message); - } - - /// - /// 记录跟踪级别的格式化日志消息。 - /// - /// 日志消息模板。 - /// 格式化参数。 - public void Trace(string message, params object[] args) - { - Console.ForegroundColor = ConsoleColor.White; - Console.WriteLine(message, args); - } - - /// - /// 记录警告级别的格式化日志消息。 - /// - /// 日志消息模板。 - /// 格式化参数。 - public void Warning(string message, params object[] args) - { - Console.ForegroundColor = ConsoleColor.Yellow; - Console.WriteLine(message, args); - } - - /// - /// 记录信息级别的格式化日志消息。 - /// - /// 日志消息模板。 - /// 格式化参数。 - public void Info(string message, params object[] args) - { - Console.ForegroundColor = ConsoleColor.Gray; - Console.WriteLine(message, args); - } - - /// - /// 记录调试级别的格式化日志消息。 - /// - /// 日志消息模板。 - /// 格式化参数。 - public void Debug(string message, params object[] args) - { - Console.ForegroundColor = ConsoleColor.DarkGreen; - Console.WriteLine(message, args); - } - - /// - /// 记录错误级别的格式化日志消息。 - /// - /// 日志消息模板。 - /// 格式化参数。 - public void Error(string message, params object[] args) - { - Console.ForegroundColor = ConsoleColor.DarkRed; - Console.WriteLine(message, args); - } - - /// - /// 记录严重错误级别的格式化日志消息。 - /// - /// 日志消息模板。 - /// 格式化参数。 - public void Fatal(string message, params object[] args) - { - Console.ForegroundColor = ConsoleColor.Red; - Console.WriteLine(message, args); - } -} -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Log/ConsoleLog.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Log/ConsoleLog.cs.meta deleted file mode 100644 index c4c1a4852..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Log/ConsoleLog.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e77e17fff36827b468ae810e83abd7eb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable.meta deleted file mode 100644 index a6d71086d..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 55be6d1a099614443b5b10af0d6b9d29 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableHelper.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableHelper.cs deleted file mode 100644 index 098ba8a68..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableHelper.cs +++ /dev/null @@ -1,141 +0,0 @@ -#if FANTASY_NET -using Fantasy.Async; -using Fantasy.InnerMessage; -using Fantasy.Platform.Net; -namespace Fantasy.Network.Route -{ - /// - /// 提供操作地址映射的辅助方法。 - /// - public static class AddressableHelper - { - // 声明一个私有静态只读列表 AddressableScenes,用于存储地址映射的场景配置信息 - private static readonly List AddressableScenes = new List(); - - static AddressableHelper() - { - // 遍历场景配置信息,筛选出地址映射类型的场景,并添加到 AddressableScenes 列表中 - foreach (var sceneConfig in SceneConfigData.Instance.List) - { - if (sceneConfig.SceneTypeString == "Addressable") - { - AddressableScenes.Add(new AddressableScene(sceneConfig)); - } - } - } - - /// - /// 添加地址映射并返回操作结果。 - /// - /// 场景实例。 - /// 地址映射的唯一标识。 - /// 路由 ID。 - /// 是否锁定。 - public static async FTask AddAddressable(Scene scene, long addressableId, long routeId, bool isLock = true) - { - // 获取指定索引的地址映射场景配置信息 - var addressableScene = AddressableScenes[(int)addressableId % AddressableScenes.Count]; - // 调用内部路由方法,发送添加地址映射的请求并等待响应 - var response = await scene.NetworkMessagingComponent.CallInnerRoute(addressableScene.RunTimeId, - new I_AddressableAdd_Request - { - AddressableId = addressableId, RouteId = routeId, IsLock = isLock - }); - if (response.ErrorCode != 0) - { - Log.Error($"AddAddressable error is {response.ErrorCode}"); - } - } - - /// - /// 获取地址映射的路由 ID。 - /// - /// 场景实例。 - /// 地址映射的唯一标识。 - /// 地址映射的路由 ID。 - public static async FTask GetAddressableRouteId(Scene scene, long addressableId) - { - // 获取指定索引的地址映射场景配置信息 - var addressableScene = AddressableScenes[(int)addressableId % AddressableScenes.Count]; - // 调用内部路由方法,发送获取地址映射路由 ID 的请求并等待响应 - var response = (I_AddressableGet_Response) await scene.NetworkMessagingComponent.CallInnerRoute(addressableScene.RunTimeId, - new I_AddressableGet_Request - { - AddressableId = addressableId - }); - // 检查响应错误码,如果为零,返回路由 ID;否则,输出错误信息并返回 0 - if (response.ErrorCode == 0) - { - return response.RouteId; - } - - Log.Error($"GetAddressable error is {response.ErrorCode} addressableId:{addressableId}"); - return 0; - } - - /// - /// 移除指定地址映射。 - /// - /// 场景实例。 - /// 地址映射的唯一标识。 - public static async FTask RemoveAddressable(Scene scene, long addressableId) - { - var addressableScene = AddressableScenes[(int)addressableId % AddressableScenes.Count]; - var response = await scene.NetworkMessagingComponent.CallInnerRoute(addressableScene.RunTimeId, - new I_AddressableRemove_Request - { - AddressableId = addressableId - }); - - if (response.ErrorCode != 0) - { - Log.Error($"RemoveAddressable error is {response.ErrorCode}"); - } - } - - /// - /// 锁定指定地址映射。 - /// - /// 场景实例。 - /// 地址映射的唯一标识。 - public static async FTask LockAddressable(Scene scene, long addressableId) - { - var addressableScene = AddressableScenes[(int)addressableId % AddressableScenes.Count]; - var response = await scene.NetworkMessagingComponent.CallInnerRoute(addressableScene.RunTimeId, - new I_AddressableLock_Request - { - AddressableId = addressableId - }); - - if (response.ErrorCode != 0) - { - Log.Error($"LockAddressable error is {response.ErrorCode}"); - } - } - - /// - /// 解锁指定地址映射。 - /// - /// 场景实例。 - /// 地址映射的唯一标识。 - /// 路由 ID。 - /// 解锁来源。 - public static async FTask UnLockAddressable(Scene scene, long addressableId, long routeId, string source) - { - var addressableScene = AddressableScenes[(int)addressableId % AddressableScenes.Count]; - var response = await scene.NetworkMessagingComponent.CallInnerRoute(addressableScene.RunTimeId, - new I_AddressableUnLock_Request - { - AddressableId = addressableId, - RouteId = routeId, - Source = source - }); - - if (response.ErrorCode != 0) - { - Log.Error($"UnLockAddressable error is {response.ErrorCode}"); - } - } - } -} -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableHelper.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableHelper.cs.meta deleted file mode 100644 index 944714521..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableHelper.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d9fa1e1d5233cea43a331427a0a41e10 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableManageComponent.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableManageComponent.cs deleted file mode 100644 index 8d08f0830..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableManageComponent.cs +++ /dev/null @@ -1,144 +0,0 @@ -#if FANTASY_NET -using System; -using System.Collections.Generic; -using Fantasy.Async; -using Fantasy.Entitas; -using Fantasy.Entitas.Interface; - -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. -#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. -#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. - -#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -namespace Fantasy.Network.Route -{ - public class AddressableManageComponentAwakeSystem : AwakeSystem - { - protected override void Awake(AddressableManageComponent self) - { - self.AddressableLock = self.Scene.CoroutineLockComponent.Create(self.GetType().TypeHandle.Value.ToInt64()); - } - } - - public class AddressableManageComponentDestroySystem : DestroySystem - { - protected override void Destroy(AddressableManageComponent self) - { - foreach (var (_, waitCoroutineLock) in self.Locks) - { - waitCoroutineLock.Dispose(); - } - - self.Locks.Clear(); - self.Addressable.Clear(); - self.AddressableLock.Dispose(); - self.AddressableLock = null; - } - } - - public sealed class AddressableManageComponent : Entity - { - public CoroutineLock AddressableLock; - public readonly Dictionary Addressable = new(); - public readonly Dictionary Locks = new(); - - /// - /// 添加地址映射。 - /// - /// 地址映射的唯一标识。 - /// 路由 ID。 - /// 是否进行锁定。 - public async FTask Add(long addressableId, long routeId, bool isLock) - { - WaitCoroutineLock waitCoroutineLock = null; - - try - { - if (isLock) - { - waitCoroutineLock = await AddressableLock.Wait(addressableId); - } - - Addressable[addressableId] = routeId; -#if FANTASY_DEVELOP - Log.Debug($"AddressableManageComponent Add addressableId:{addressableId} routeId:{routeId}"); -#endif - } - catch (Exception e) - { - Log.Error(e); - } - finally - { - waitCoroutineLock?.Dispose(); - } - } - - /// - /// 获取地址映射的路由 ID。 - /// - /// 地址映射的唯一标识。 - /// 地址映射的路由 ID。 - public async FTask Get(long addressableId) - { - using (await AddressableLock.Wait(addressableId)) - { - Addressable.TryGetValue(addressableId, out var routeId); - return routeId; - } - } - - /// - /// 移除地址映射。 - /// - /// 地址映射的唯一标识。 - public async FTask Remove(long addressableId) - { - using (await AddressableLock.Wait(addressableId)) - { - Addressable.Remove(addressableId); -#if FANTASY_DEVELOP - Log.Debug($"Addressable Remove addressableId: {addressableId} _addressable:{Addressable.Count}"); -#endif - } - } - - /// - /// 锁定地址映射。 - /// - /// 地址映射的唯一标识。 - public async FTask Lock(long addressableId) - { - var waitCoroutineLock = await AddressableLock.Wait(addressableId); - Locks.Add(addressableId, waitCoroutineLock); - } - - /// - /// 解锁地址映射。 - /// - /// 地址映射的唯一标识。 - /// 新的路由 ID。 - /// 解锁来源。 - public void UnLock(long addressableId, long routeId, string source) - { - if (!Locks.Remove(addressableId, out var coroutineLock)) - { - Log.Error($"Addressable unlock not found addressableId: {addressableId} Source:{source}"); - return; - } - - Addressable.TryGetValue(addressableId, out var oldAddressableId); - - if (routeId != 0) - { - Addressable[addressableId] = routeId; - } - - coroutineLock.Dispose(); -#if FANTASY_DEVELOP - Log.Debug($"Addressable UnLock key: {addressableId} oldAddressableId : {oldAddressableId} routeId: {routeId} Source:{source}"); -#endif - } - } -} -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableManageComponent.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableManageComponent.cs.meta deleted file mode 100644 index 3b680e3f9..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableManageComponent.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 03975c83dc0783045a6ff04512ca5f67 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableMessageComponent.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableMessageComponent.cs deleted file mode 100644 index 03e0def5b..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableMessageComponent.cs +++ /dev/null @@ -1,91 +0,0 @@ -using Fantasy.Async; -using Fantasy.Entitas; -using Fantasy.Entitas.Interface; - -#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -#if FANTASY_NET -namespace Fantasy.Network.Route -{ - public class AddressableMessageComponentDestroySystem : DestroySystem - { - protected override void Destroy(AddressableMessageComponent self) - { - if (self.AddressableId != 0) - { - AddressableHelper.RemoveAddressable(self.Scene, self.AddressableId).Coroutine(); - self.AddressableId = 0; - } - } - } - - /// - /// 可寻址消息组件、挂载了这个组件可以接收Addressable消息 - /// - public sealed class AddressableMessageComponent : Entity - { - /// - /// 可寻址消息组件的唯一标识。 - /// - public long AddressableId; - - /// - /// 注册可寻址消息组件。 - /// - /// 是否进行锁定。 - public FTask Register(bool isLock = true) - { - if (Parent == null) - { - throw new Exception("AddressableRouteComponent must be mounted under a component"); - } - - AddressableId = Parent.Id; - - if (AddressableId == 0) - { - throw new Exception("AddressableRouteComponent.Parent.Id is null"); - } - -#if FANTASY_DEVELOP - Log.Debug($"AddressableMessageComponent Register addressableId:{AddressableId} RouteId:{Parent.RouteId}"); -#endif - return AddressableHelper.AddAddressable(Scene, AddressableId, Parent.RouteId, isLock); - } - - /// - /// 锁定可寻址消息组件。 - /// - public FTask Lock() - { -#if FANTASY_DEVELOP - Log.Debug($"AddressableMessageComponent Lock {Parent.Id}"); -#endif - return AddressableHelper.LockAddressable(Scene, Parent.Id); - } - - /// - /// 解锁可寻址消息组件。 - /// - /// 解锁来源。 - public FTask UnLock(string source) - { -#if FANTASY_DEVELOP - Log.Debug($"AddressableMessageComponent UnLock {Parent.Id} {Parent.RouteId}"); -#endif - return AddressableHelper.UnLockAddressable(Scene, Parent.Id, Parent.RouteId, source); - } - - /// - /// 锁定可寻址消息并且释放掉AddressableMessageComponent组件。 - /// 该方法不会自动取Addressable中心删除自己的信息。 - /// 用于传送或转移到其他服务器时使用 - /// - public async FTask LockAndRelease() - { - await Lock(); - AddressableId = 0; - Dispose(); - } - } -} -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableMessageComponent.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableMessageComponent.cs.meta deleted file mode 100644 index 38d625255..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableMessageComponent.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ee5785ebf4eae834dbec5f43b90568ce -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableRouteComponent.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableRouteComponent.cs deleted file mode 100644 index d31e08f1d..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableRouteComponent.cs +++ /dev/null @@ -1,215 +0,0 @@ -using Fantasy.Async; -using Fantasy.Entitas; -using Fantasy.Entitas.Interface; -using Fantasy.Helper; -using Fantasy.Network.Interface; -using Fantasy.PacketParser.Interface; -using Fantasy.Scheduler; -using Fantasy.Timer; - -#pragma warning disable CS8603 // Possible null reference return. -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. -#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. -#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. -#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -#if FANTASY_NET -namespace Fantasy.Network.Route -{ - public class AddressableRouteComponentAwakeSystem : AwakeSystem - { - protected override void Awake(AddressableRouteComponent self) - { - ((Session)self.Parent).AddressableRouteComponent = self; - - var selfScene = self.Scene; - self.TimerComponent = selfScene.TimerComponent; - self.NetworkMessagingComponent = selfScene.NetworkMessagingComponent; - self.MessageDispatcherComponent = selfScene.MessageDispatcherComponent; - self.AddressableRouteLock = - selfScene.CoroutineLockComponent.Create(self.GetType().TypeHandle.Value.ToInt64()); - } - } - - public class AddressableRouteComponentDestroySystem : DestroySystem - { - protected override void Destroy(AddressableRouteComponent self) - { - self.AddressableRouteLock.Dispose(); - - self.AddressableRouteId = 0; - self.AddressableId = 0; - self.TimerComponent = null; - self.AddressableRouteLock = null; - self.NetworkMessagingComponent = null; - self.MessageDispatcherComponent = null; - } - } - - /// - /// 可寻址路由消息组件,挂载了这个组件可以接收和发送 Addressable 消息。 - /// - public sealed class AddressableRouteComponent : Entity - { - public long AddressableId; - public long AddressableRouteId; - public CoroutineLock AddressableRouteLock; - public TimerComponent TimerComponent; - public NetworkMessagingComponent NetworkMessagingComponent; - public MessageDispatcherComponent MessageDispatcherComponent; - - internal void Send(T message) where T : IAddressableRouteMessage - { - Call(message).Coroutine(); - } - - internal async FTask Send(Type requestType,APackInfo packInfo) - { - await Call(requestType, packInfo); - } - - internal async FTask Call(Type requestType, APackInfo packInfo) - { - if (IsDisposed) - { - return MessageDispatcherComponent.CreateResponse(packInfo.ProtocolCode, InnerErrorCode.ErrNotFoundRoute); - } - - packInfo.IsDisposed = true; - var failCount = 0; - var runtimeId = RuntimeId; - IResponse iRouteResponse = null; - - try - { - using (await AddressableRouteLock.Wait(AddressableId, "AddressableRouteComponent Call MemoryStream")) - { - while (!IsDisposed) - { - if (AddressableRouteId == 0) - { - AddressableRouteId = await AddressableHelper.GetAddressableRouteId(Scene, AddressableId); - } - - if (AddressableRouteId == 0) - { - return MessageDispatcherComponent.CreateResponse(packInfo.ProtocolCode, InnerErrorCode.ErrNotFoundRoute); - } - - iRouteResponse = await NetworkMessagingComponent.CallInnerRoute(AddressableRouteId, requestType, packInfo); - - if (runtimeId != RuntimeId) - { - iRouteResponse.ErrorCode = InnerErrorCode.ErrRouteTimeout; - } - - switch (iRouteResponse.ErrorCode) - { - case InnerErrorCode.ErrRouteTimeout: - { - return iRouteResponse; - } - case InnerErrorCode.ErrNotFoundRoute: - { - if (++failCount > 20) - { - Log.Error($"AddressableComponent.Call failCount > 20 route send message fail, routeId: {RouteId} AddressableRouteComponent:{Id}"); - return iRouteResponse; - } - - await TimerComponent.Net.WaitAsync(100); - - if (runtimeId != RuntimeId) - { - iRouteResponse.ErrorCode = InnerErrorCode.ErrRouteTimeout; - } - - AddressableRouteId = 0; - continue; - } - default: - { - return iRouteResponse; // 对于其他情况,直接返回响应,无需额外处理 - } - } - } - } - } - finally - { - packInfo.Dispose(); - } - - - return iRouteResponse; - } - - /// - /// 调用可寻址路由消息并等待响应。 - /// - /// 可寻址路由请求。 - private async FTask Call(T request) where T : IAddressableRouteMessage - { - if (IsDisposed) - { - return MessageDispatcherComponent.CreateResponse(request.OpCode(), InnerErrorCode.ErrNotFoundRoute); - } - - var failCount = 0; - var runtimeId = RuntimeId; - - using (await AddressableRouteLock.Wait(AddressableId, "AddressableRouteComponent Call")) - { - while (true) - { - if (AddressableRouteId == 0) - { - AddressableRouteId = await AddressableHelper.GetAddressableRouteId(Scene, AddressableId); - } - - if (AddressableRouteId == 0) - { - return MessageDispatcherComponent.CreateResponse(request.OpCode(), InnerErrorCode.ErrNotFoundRoute); - } - - var iRouteResponse = await NetworkMessagingComponent.CallInnerRoute(AddressableRouteId, request); - - if (runtimeId != RuntimeId) - { - iRouteResponse.ErrorCode = InnerErrorCode.ErrRouteTimeout; - } - - switch (iRouteResponse.ErrorCode) - { - case InnerErrorCode.ErrNotFoundRoute: - { - if (++failCount > 20) - { - Log.Error($"AddressableRouteComponent.Call failCount > 20 route send message fail, routeId: {RouteId} AddressableRouteComponent:{Id}"); - return iRouteResponse; - } - - await TimerComponent.Net.WaitAsync(500); - - if (runtimeId != RuntimeId) - { - iRouteResponse.ErrorCode = InnerErrorCode.ErrRouteTimeout; - } - - AddressableRouteId = 0; - continue; - } - case InnerErrorCode.ErrRouteTimeout: - { - return iRouteResponse; - } - default: - { - return iRouteResponse; - } - } - } - } - } - } -} -#endif diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableRouteComponent.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableRouteComponent.cs.meta deleted file mode 100644 index 78d1ad19d..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableRouteComponent.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 509c950214bbddf43813da2324907070 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableScene.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableScene.cs deleted file mode 100644 index 3835476d5..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableScene.cs +++ /dev/null @@ -1,31 +0,0 @@ -#if FANTASY_NET -using Fantasy.IdFactory; -using Fantasy.Platform.Net; - -namespace Fantasy.Network.Route -{ - /// - /// AddressableScene - /// - public sealed class AddressableScene - { - /// - /// Id - /// - public readonly long Id; - /// - /// RunTimeId - /// - public readonly long RunTimeId; - /// - /// 构造方法 - /// - /// sceneConfig - public AddressableScene(SceneConfig sceneConfig) - { - Id = IdFactoryHelper.EntityId(0, sceneConfig.Id, (byte)sceneConfig.WorldConfigId, 0); - RunTimeId = IdFactoryHelper.RuntimeId(false,0, sceneConfig.Id, (byte)sceneConfig.WorldConfigId, 0); - } - } -} -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableScene.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableScene.cs.meta deleted file mode 100644 index f16d66b3d..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/AddressableScene.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: dae89020dcecfa0439a8152c1461fcc8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler.meta deleted file mode 100644 index 99d56e11b..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 986ff84cf8fa6ce4e8126a8e6835b6de -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableAddHandler.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableAddHandler.cs deleted file mode 100644 index 847625b3f..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableAddHandler.cs +++ /dev/null @@ -1,26 +0,0 @@ -using Fantasy.Async; -using Fantasy.InnerMessage; -using Fantasy.Network.Interface; - -#if FANTASY_NET -namespace Fantasy.Network.Route -{ - /// - /// 声明一个 sealed 类 I_AddressableAddHandler,继承自 RouteRPC 类,并指定泛型参数 - /// - public sealed class I_AddressableAddHandler : RouteRPC - { - /// - /// 在收到地址映射添加请求时执行的逻辑。 - /// - /// 当前场景实例。 - /// 包含请求信息的 I_AddressableAdd_Request 实例。 - /// 用于构建响应的 I_AddressableAdd_Response 实例。 - /// 执行响应的回调操作。 - protected override async FTask Run(Scene scene, I_AddressableAdd_Request request, I_AddressableAdd_Response response, Action reply) - { - await scene.GetComponent().Add(request.AddressableId, request.RouteId, request.IsLock); - } - } -} -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableAddHandler.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableAddHandler.cs.meta deleted file mode 100644 index 58ef766b9..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableAddHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2c291b6e2bfce3f41b60d45c78428335 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableGetHandler.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableGetHandler.cs deleted file mode 100644 index f53c1f104..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableGetHandler.cs +++ /dev/null @@ -1,26 +0,0 @@ -using Fantasy.Async; -using Fantasy.InnerMessage; -using Fantasy.Network.Interface; - -#if FANTASY_NET -namespace Fantasy.Network.Route -{ - /// - /// 声明一个 sealed 类 I_AddressableGetHandler,继承自 RouteRPC 类,并指定泛型参数 - /// - public sealed class I_AddressableGetHandler : RouteRPC - { - /// - /// 在收到地址映射获取请求时执行的逻辑。 - /// - /// 当前场景实例。 - /// 包含请求信息的 I_AddressableGet_Request 实例。 - /// 用于构建响应的 I_AddressableGet_Response 实例。 - /// 执行响应的回调操作。 - protected override async FTask Run(Scene scene, I_AddressableGet_Request request, I_AddressableGet_Response response, Action reply) - { - response.RouteId = await scene.GetComponent().Get(request.AddressableId); - } - } -} -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableGetHandler.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableGetHandler.cs.meta deleted file mode 100644 index ab872eaae..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableGetHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8b42682da63974247808a7d586006a3a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableLockHandler.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableLockHandler.cs deleted file mode 100644 index b96427465..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableLockHandler.cs +++ /dev/null @@ -1,26 +0,0 @@ -using Fantasy.Async; -using Fantasy.InnerMessage; -using Fantasy.Network.Interface; - -#if FANTASY_NET -namespace Fantasy.Network.Route -{ - /// - /// 声明一个 sealed 类 I_AddressableLockHandler,继承自 RouteRPC 类,并指定泛型参数 - /// - public sealed class I_AddressableLockHandler : RouteRPC - { - /// - /// 在收到地址映射锁定请求时执行的逻辑。 - /// - /// 当前场景实例。 - /// 包含请求信息的 I_AddressableLock_Request 实例。 - /// 用于构建响应的 I_AddressableLock_Response 实例。 - /// 执行响应的回调操作。 - protected override async FTask Run(Scene scene, I_AddressableLock_Request request, I_AddressableLock_Response response, Action reply) - { - await scene.GetComponent().Lock(request.AddressableId); - } - } -} -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableLockHandler.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableLockHandler.cs.meta deleted file mode 100644 index 0483020e0..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableLockHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9d83e9bb72b9ad945a6b6d854eca4313 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableRemoveHandler.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableRemoveHandler.cs deleted file mode 100644 index c4e965456..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableRemoveHandler.cs +++ /dev/null @@ -1,26 +0,0 @@ -using Fantasy.Async; -using Fantasy.InnerMessage; -using Fantasy.Network.Interface; - -#if FANTASY_NET -namespace Fantasy.Network.Route -{ - /// - /// 声明一个 sealed 类 I_AddressableRemoveHandler,继承自 RouteRPC 类,并指定泛型参数 - /// - public sealed class I_AddressableRemoveHandler : RouteRPC - { - /// - /// 在收到地址映射移除请求时执行的逻辑。 - /// - /// 当前场景实例。 - /// 包含请求信息的 I_AddressableRemove_Request 实例。 - /// 用于构建响应的 I_AddressableRemove_Response 实例。 - /// 执行响应的回调操作。 - protected override async FTask Run(Scene scene, I_AddressableRemove_Request request, I_AddressableRemove_Response response, Action reply) - { - await scene.GetComponent().Remove(request.AddressableId); - } - } -} -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableRemoveHandler.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableRemoveHandler.cs.meta deleted file mode 100644 index 857fd9e5d..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableRemoveHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e99b3cdb86dee094ab77687d50bec919 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableUnLockHandler.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableUnLockHandler.cs deleted file mode 100644 index 1ab3937f3..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableUnLockHandler.cs +++ /dev/null @@ -1,27 +0,0 @@ -using Fantasy.Async; -using Fantasy.InnerMessage; -using Fantasy.Network.Interface; - -#if FANTASY_NET -namespace Fantasy.Network.Route -{ - /// - /// 声明一个 sealed 类 I_AddressableUnLockHandler,继承自 RouteRPC 类,并指定泛型参数 - /// - public sealed class I_AddressableUnLockHandler : RouteRPC - { - /// - /// 在收到地址映射解锁请求时执行的逻辑。 - /// - /// 当前场景实例。 - /// 包含请求信息的 I_AddressableUnLock_Request 实例。 - /// 用于构建响应的 I_AddressableUnLock_Response 实例。 - /// 执行响应的回调操作。 - protected override async FTask Run(Scene scene, I_AddressableUnLock_Request request, I_AddressableUnLock_Response response, Action reply) - { - scene.GetComponent().UnLock(request.AddressableId, request.RouteId, request.Source); - await FTask.CompletedTask; - } - } -} -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableUnLockHandler.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableUnLockHandler.cs.meta deleted file mode 100644 index 0e02f5344..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Addressable/Handler/I_AddressableUnLockHandler.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d57272f994c24fa42a32edc00d0457df -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Dispatcher/MessageDispatcherComponent.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Dispatcher/MessageDispatcherComponent.cs deleted file mode 100644 index 44b9ac0f6..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/Dispatcher/MessageDispatcherComponent.cs +++ /dev/null @@ -1,416 +0,0 @@ -using System; -using System.Collections.Generic; -using Fantasy.Assembly; -using Fantasy.Async; -using Fantasy.DataStructure.Dictionary; -using Fantasy.Entitas; -using Fantasy.InnerMessage; -// ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract -// ReSharper disable ForCanBeConvertedToForeach -// ReSharper disable InvertIf -#pragma warning disable CS8632 // The annotation for nullable reference types should only be used in code within a '#nullable' annotations context. -#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. -#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -#pragma warning disable CS8602 // Dereference of a possibly null reference. -#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring as nullable. - -namespace Fantasy.Network.Interface -{ - public sealed class MessageDispatcherComponent : Entity, IAssemblyLifecycle - { - private CoroutineLock _receiveRouteMessageLock; - - private readonly HashSet _assemblyManifests = new(); - - private Func? _lastHitGetOpCodeType; - private Func? _lastHitMessageHandler; - - private readonly List _opCodeResolvers = new List(); - private readonly List _responseTypeResolvers = new List(); - private readonly List _messageHandlerResolver = new List(); -#if FANTASY_NET - private Func? _lastHitGetCustomRouteType; - private Func>? _lastHitRouteMessageHandler; - private readonly List _routeMessageHandlerResolver = new List(); - private readonly List _customRouteResolvers = new List(); -#endif - - #region Comparer - - private class MessageHandlerResolverComparer : IComparer - { - public int Compare(IMessageHandlerResolver? x, IMessageHandlerResolver? y) - { - if (x == null || y == null) - { - return 0; - } - - return y.GetMessageHandlerCount().CompareTo(x.GetMessageHandlerCount()); - } - } -#if FANTASY_NET - private class RouteMessageHandlerResolverComparer : IComparer - { - public int Compare(IMessageHandlerResolver? x, IMessageHandlerResolver? y) - { - if (x == null || y == null) - { - return 0; - } - - return y.GetRouteMessageHandlerCount().CompareTo(x.GetRouteMessageHandlerCount()); - } - } - private class RouteTypeResolverComparer : IComparer - { - public int Compare(INetworkProtocolOpCodeResolver? x, INetworkProtocolOpCodeResolver? y) - { - if (x == null || y == null) - { - return 0; - } - - return y.GetCustomRouteTypeCount().CompareTo(x.GetCustomRouteTypeCount()); - } - } -#endif - - private class OpCodeResolverComparer : IComparer - { - public int Compare(INetworkProtocolOpCodeResolver? x, INetworkProtocolOpCodeResolver? y) - { - if (x == null || y == null) - { - return 0; - } - - return y.GetOpCodeCount().CompareTo(x.GetOpCodeCount()); - } - } - - private class ResponseTypeResolverComparer : IComparer - { - public int Compare(INetworkProtocolResponseTypeResolver? x, INetworkProtocolResponseTypeResolver? y) - { - if (x == null || y == null) - { - return 0; - } - - return y.GetRequestCount().CompareTo(x.GetRequestCount()); - } - } - - #endregion - - public override void Dispose() - { - if (IsDisposed) - { - return; - } - _assemblyManifests.Clear(); - _opCodeResolvers.Clear(); - _responseTypeResolvers.Clear(); - _receiveRouteMessageLock.Dispose(); - _messageHandlerResolver.Clear(); -#if FANTASY_NET - _customRouteResolvers.Clear(); - _routeMessageHandlerResolver.Clear(); - _lastHitGetCustomRouteType = null; - _lastHitRouteMessageHandler = null; -#endif - _lastHitGetOpCodeType = null; - _lastHitMessageHandler = null; - _receiveRouteMessageLock = null; - AssemblyLifecycle.Remove(this); - base.Dispose(); - } - - #region AssemblyManifest - - internal async FTask Initialize() - { - _receiveRouteMessageLock = Scene.CoroutineLockComponent.Create(GetType().TypeHandle.Value.ToInt64()); - await AssemblyLifecycle.Add(this); - return this; - } - - public async FTask OnLoad(AssemblyManifest assemblyManifest) - { - var tcs = FTask.Create(false); - var assemblyManifestId = assemblyManifest.AssemblyManifestId; - Scene?.ThreadSynchronizationContext.Post(() => - { - if (_assemblyManifests.Contains(assemblyManifestId)) - { - OnUnLoadInner(assemblyManifest); - } - // 注册Handler - var messageHandlerResolver = assemblyManifest.MessageHandlerResolver; - var messageHandlerCount = messageHandlerResolver.GetMessageHandlerCount(); - if (messageHandlerCount > 0) - { - _messageHandlerResolver.Add(messageHandlerResolver); - _messageHandlerResolver.Sort(new MessageHandlerResolverComparer()); - } - // 注册OpCode - var opCodeResolver = assemblyManifest.NetworkProtocolOpCodeResolver; - var opCodeCount = opCodeResolver.GetOpCodeCount(); - if (opCodeCount > 0) - { - _opCodeResolvers.Add(opCodeResolver); - _opCodeResolvers.Sort(new OpCodeResolverComparer()); - } -#if FANTASY_NET - var routeMessageHandlerCount = messageHandlerResolver.GetRouteMessageHandlerCount(); - if (routeMessageHandlerCount > 0) - { - _routeMessageHandlerResolver.Add(messageHandlerResolver); - _routeMessageHandlerResolver.Sort(new RouteMessageHandlerResolverComparer()); - } - // 注册CustomRouteType - var customRouteTypeCount = opCodeResolver.GetCustomRouteTypeCount(); - if (customRouteTypeCount > 0) - { - _customRouteResolvers.Add(opCodeResolver); - _customRouteResolvers.Sort(new RouteTypeResolverComparer()); - } -#endif - // 注册ResponseType - var responseTypeResolver = assemblyManifest.NetworkProtocolResponseTypeResolver; - var requestCount = responseTypeResolver.GetRequestCount(); - if (requestCount > 0) - { - _responseTypeResolvers.Add(responseTypeResolver); - _responseTypeResolvers.Sort(new ResponseTypeResolverComparer()); - } - _assemblyManifests.Add(assemblyManifestId); - tcs.SetResult(); - }); - await tcs; - } - - public async FTask OnUnload(AssemblyManifest assemblyManifest) - { - var tcs = FTask.Create(false); - Scene?.ThreadSynchronizationContext.Post(() => - { - OnUnLoadInner(assemblyManifest); - tcs.SetResult(); - }); - await tcs; - } - - private void OnUnLoadInner(AssemblyManifest assemblyManifest) - { - _messageHandlerResolver.Remove(assemblyManifest.MessageHandlerResolver); - _opCodeResolvers.Remove(assemblyManifest.NetworkProtocolOpCodeResolver); - _responseTypeResolvers.Remove(assemblyManifest.NetworkProtocolResponseTypeResolver); - _messageHandlerResolver.Sort(new MessageHandlerResolverComparer()); - _opCodeResolvers.Sort(new OpCodeResolverComparer()); - _responseTypeResolvers.Sort(new ResponseTypeResolverComparer()); -#if FANTASY_NET - _routeMessageHandlerResolver.Remove(assemblyManifest.MessageHandlerResolver); - _customRouteResolvers.Remove(assemblyManifest.NetworkProtocolOpCodeResolver); - _routeMessageHandlerResolver.Sort(new RouteMessageHandlerResolverComparer()); - _customRouteResolvers.Sort(new RouteTypeResolverComparer()); -#endif - _assemblyManifests.Remove(assemblyManifest.AssemblyManifestId); - } - - #endregion - - internal void MessageHandler(Session session, Type type, object message, uint rpcId, uint protocolCode) - { - if (_lastHitMessageHandler != null && - _lastHitMessageHandler(session, rpcId, protocolCode, message)) - { - return; - } - - for (var i = 0; i < _messageHandlerResolver.Count; i++) - { - var resolver = _messageHandlerResolver[i]; - if (resolver.MessageHandler(session, rpcId, protocolCode, message)) - { - _lastHitMessageHandler = resolver.MessageHandler; - return; - } - } - - Log.Warning($"Scene:{session.Scene.Id} Found Unhandled Message: {type}"); - } -#if FANTASY_NET - private async FTask InnerRouteMessageHandler(Session session, Entity entity, uint rpcId, uint protocolCode, object message) - { - if (_lastHitRouteMessageHandler != null && - await _lastHitRouteMessageHandler(session, entity, rpcId, protocolCode, message)) - { - return true; - } - - for (var i = 0; i < _routeMessageHandlerResolver.Count; i++) - { - var resolver = _routeMessageHandlerResolver[i]; - if (await resolver.RouteMessageHandler(session, entity, rpcId, protocolCode, message)) - { - _lastHitRouteMessageHandler = resolver.RouteMessageHandler; - return true; - } - } - - return false; - } - - internal async FTask RouteMessageHandler(Session session, Type type, Entity entity, object message, uint rpcId, uint protocolCode) - { - if (entity is Scene) - { - // 如果是Scene的话、就不要加锁了、如果加锁很一不小心就可能会造成死锁 - if (!await InnerRouteMessageHandler(session, entity, rpcId, protocolCode, message)) - { - Log.Warning($"Scene:{session.Scene.Id} Found Unhandled RouteMessage: {type}"); - } - return; - } - - // 使用协程锁来确保消息的顺序 - var runtimeId = entity.RuntimeId; - var sessionRuntimeId = session.RuntimeId; - using (await _receiveRouteMessageLock.Wait(runtimeId)) - { - if (sessionRuntimeId != session.RuntimeId) - { - return; - } - - if (runtimeId != entity.RuntimeId) - { - if (message is IRouteRequest request) - { - FailRouteResponse(session, request.OpCode(), InnerErrorCode.ErrEntityNotFound, rpcId); - } - - return; - } - - if (!await InnerRouteMessageHandler(session, entity, rpcId, protocolCode, message)) - { - Log.Warning($"Scene:{session.Scene.Id} Found Unhandled RouteMessage: {message.GetType()}"); - } - } - } -#endif - #region Response - - internal void FailRouteResponse(Session session, uint requestOpCode, uint error, uint rpcId) - { - session.Send(CreateRouteResponse(requestOpCode, error, out var responseType), responseType, rpcId); - } - - internal IResponse CreateResponse(uint requestOpCode, uint error) - { - IResponse response; - - for (var i = 0; i < _responseTypeResolvers.Count; i++) - { - var resolver = _responseTypeResolvers[i]; - var responseType = resolver.GetResponseType(requestOpCode); - if (responseType == null) - { - continue; - } - response = (IResponse) Activator.CreateInstance(responseType); - response.ErrorCode = error; - return response; - } - - response = new Response(); - response.ErrorCode = error; - return response; - } - - private IRouteResponse CreateRouteResponse(uint requestOpCode, uint error, out Type responseType) - { - IRouteResponse response; - - for (var i = 0; i < _responseTypeResolvers.Count; i++) - { - var resolver = _responseTypeResolvers[i]; - responseType = resolver.GetResponseType(requestOpCode); - if (responseType == null) - { - continue; - } - - response = (IRouteResponse)Activator.CreateInstance(responseType); - response.ErrorCode = error; - return response; - } - - responseType = typeof(RouteResponse); - response = new RouteResponse(); - response.ErrorCode = error; - return response; - } - - #endregion - - #region OpCode - - internal Type? GetOpCodeType(uint opCode) - { - if (_lastHitGetOpCodeType != null ) - { - var opCodeType = _lastHitGetOpCodeType(opCode); - if (opCodeType != null) - { - return opCodeType; - } - } - - for (var i = 0; i < _opCodeResolvers.Count; i++) - { - var resolver = _opCodeResolvers[i]; - var opCodeType = resolver.GetOpCodeType(opCode); - if (opCodeType != null) - { - _lastHitGetOpCodeType = resolver.GetOpCodeType; - return opCodeType; - } - } - - return null; - } -#if FANTASY_NET - internal int? GetCustomRouteType(uint protocolCode) - { - if (_lastHitGetCustomRouteType != null) - { - var opCodeType = _lastHitGetCustomRouteType(protocolCode); - if (opCodeType.HasValue) - { - return opCodeType.Value; - } - } - - for (var i = 0; i < _customRouteResolvers.Count; i++) - { - var resolver = _customRouteResolvers[i]; - var opCodeType = resolver.GetCustomRouteType(protocolCode); - if (opCodeType.HasValue) - { - _lastHitGetCustomRouteType = resolver.GetCustomRouteType; - return opCodeType.Value; - } - } - - return null; - } -#endif - #endregion - } -} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/OpCode.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/OpCode.cs deleted file mode 100644 index 1cd325eea..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Network/Message/PacketParser/OpCode.cs +++ /dev/null @@ -1,131 +0,0 @@ -#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -namespace Fantasy.Network -{ - public struct OpCodeIdStruct - { - // OpCodeIdStruct:5 + 4 + 23 = 32 - // +-------------------------+-------------------------------------------+-----------------------------+ - // | protocol(5) 最多31种类型 | OpCodeProtocolType(4) 最多15种不同的网络协议 | Index(23) 最多8388607个协议 | - // +-------------------------+-------------------------------------------+-----------------------------+ - public uint OpCodeProtocolType { get; private set; } - public uint Protocol { get; private set; } - public uint Index { get; private set; } - - public OpCodeIdStruct(uint opCodeProtocolType, uint protocol, uint index) - { - OpCodeProtocolType = opCodeProtocolType; - Protocol = protocol; - Index = index; - } - - public static implicit operator uint(OpCodeIdStruct opCodeIdStruct) - { - var result = opCodeIdStruct.Index; - result |= opCodeIdStruct.OpCodeProtocolType << 23; - result |= opCodeIdStruct.Protocol << 27; - return result; - } - - public static implicit operator OpCodeIdStruct(uint opCodeId) - { - var opCodeIdStruct = new OpCodeIdStruct() - { - Index = opCodeId & 0x7FFFFF - }; - opCodeId >>= 23; - opCodeIdStruct.OpCodeProtocolType = opCodeId & 0xF; - opCodeId >>= 4; - opCodeIdStruct.Protocol = opCodeId & 0x1F; - return opCodeIdStruct; - } - } - - public static class OpCodeProtocolType - { - public const uint Bson = 1; - public const uint ProtoBuf = 0; - } - - public static class OpCodeType - { - public const uint OuterMessage = 1; - public const uint OuterRequest = 2; - public const uint OuterResponse = 3; - - public const uint InnerMessage = 4; - public const uint InnerRequest = 5; - public const uint InnerResponse = 6; - - public const uint InnerRouteMessage = 7; - public const uint InnerRouteRequest = 8; - public const uint InnerRouteResponse = 9; - - public const uint OuterAddressableMessage = 10; - public const uint OuterAddressableRequest = 11; - public const uint OuterAddressableResponse = 12; - - public const uint InnerAddressableMessage = 13; - public const uint InnerAddressableRequest = 14; - public const uint InnerAddressableResponse = 15; - - public const uint OuterCustomRouteMessage = 16; - public const uint OuterCustomRouteRequest = 17; - public const uint OuterCustomRouteResponse = 18; - - public const uint OuterRoamingMessage = 19; - public const uint OuterRoamingRequest = 20; - public const uint OuterRoamingResponse = 21; - - public const uint InnerRoamingMessage = 22; - public const uint InnerRoamingRequest = 23; - public const uint InnerRoamingResponse = 24; - - public const uint OuterPingRequest = 30; - public const uint OuterPingResponse = 31; - } - - public static class OpCode - { - // 格式: Index | (OpCodeProtocolType << 23) | (Protocol << 27) - // 所有值已预先计算,使 SourceGenerator 可以在编译时获取这些常量 - - public const uint BenchmarkMessage = 142606335; // Create(ProtoBuf=0, OuterMessage=1, 8388607) - public const uint BenchmarkRequest = 276824063; // Create(ProtoBuf=0, OuterRequest=2, 8388607) - public const uint BenchmarkResponse = 411041791; // Create(ProtoBuf=0, OuterResponse=3, 8388607) - public const uint PingRequest = 4026531841; // Create(ProtoBuf=0, OuterPingRequest=30, 1) - public const uint PingResponse = 4160749569; // Create(ProtoBuf=0, OuterPingResponse=31, 1) - public const uint DefaultResponse = 805306369; // Create(ProtoBuf=0, InnerResponse=6, 1) - public const uint DefaultRouteResponse = 1207959559; // Create(ProtoBuf=0, InnerRouteResponse=9, 7) - public const uint AddressableAddRequest = 1073741825; // Create(ProtoBuf=0, InnerRouteRequest=8, 1) - public const uint AddressableAddResponse = 1207959553; // Create(ProtoBuf=0, InnerRouteResponse=9, 1) - public const uint AddressableGetRequest = 1073741826; // Create(ProtoBuf=0, InnerRouteRequest=8, 2) - public const uint AddressableGetResponse = 1207959554; // Create(ProtoBuf=0, InnerRouteResponse=9, 2) - public const uint AddressableRemoveRequest = 1073741827; // Create(ProtoBuf=0, InnerRouteRequest=8, 3) - public const uint AddressableRemoveResponse = 1207959555; // Create(ProtoBuf=0, InnerRouteResponse=9, 3) - public const uint AddressableLockRequest = 1073741828; // Create(ProtoBuf=0, InnerRouteRequest=8, 4) - public const uint AddressableLockResponse = 1207959556; // Create(ProtoBuf=0, InnerRouteResponse=9, 4) - public const uint AddressableUnLockRequest = 1073741829; // Create(ProtoBuf=0, InnerRouteRequest=8, 5) - public const uint AddressableUnLockResponse = 1207959557; // Create(ProtoBuf=0, InnerRouteResponse=9, 5) - public const uint LinkRoamingRequest = 1073741830; // Create(ProtoBuf=0, InnerRouteRequest=8, 6) - public const uint LinkRoamingResponse = 1207959558; // Create(ProtoBuf=0, InnerRouteResponse=9, 6) - public const uint UnLinkRoamingRequest = 1073741832; // Create(ProtoBuf=0, InnerRouteRequest=8, 8) - public const uint UnLinkRoamingResponse = 1207959560; // Create(ProtoBuf=0, InnerRouteResponse=9, 8) - public const uint LockTerminusIdRequest = 1073741833; // Create(ProtoBuf=0, InnerRouteRequest=8, 9) - public const uint LockTerminusIdResponse = 1207959561; // Create(ProtoBuf=0, InnerRouteResponse=9, 9) - public const uint UnLockTerminusIdRequest = 1073741834; // Create(ProtoBuf=0, InnerRouteRequest=8, 10) - public const uint UnLockTerminusIdResponse = 1207959562; // Create(ProtoBuf=0, InnerRouteResponse=9, 10) - public const uint GetTerminusIdRequest = 1073741835; // Create(ProtoBuf=0, InnerRouteRequest=8, 11) - public const uint GetTerminusIdResponse = 1207959563; // Create(ProtoBuf=0, InnerRouteResponse=9, 11) - - public const uint TransferTerminusRequest = 1082130433; // Create(Bson=1, InnerRouteRequest=8, 1) - public const uint TransferTerminusResponse = 1216348161; // Create(Bson=1, InnerRouteResponse=9, 1) - - /// - /// 创建 OpCode(运行时使用) - /// - public static uint Create(uint opCodeProtocolType, uint protocol, uint index) - { - return new OpCodeIdStruct(opCodeProtocolType, protocol, index); - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Console.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Console.meta deleted file mode 100644 index 7929f510a..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Console.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 189b7c44fa8db2c4887e342a49e93485 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Console/Entry.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Console/Entry.cs deleted file mode 100644 index c0b3aa608..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Console/Entry.cs +++ /dev/null @@ -1,101 +0,0 @@ -#if FANTASY_CONSOLE -using Fantasy.Assembly; -using Fantasy.Async; -using Fantasy.Serialize; -#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. -#pragma warning disable CS8603 // Possible null reference return. -#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. -namespace Fantasy.Platform.Console -{ - public struct OnFantasyInit - { - public Scene Scene; - } - - /// - /// 一般的控制台启动入口,可以适用大部分客户端环境 - /// - public sealed class Entry - { - private static bool _isInit; - private static Thread _updateThread; - public static Scene Scene { get; private set; } - - /// - /// 初始化框架 - /// - /// - public static async FTask Initialize(params System.Reflection.Assembly[] assemblies) - { - if (_isInit) - { - Log.Error("Fantasy has already been initialized and does not need to be initialized again!"); - return; - } - Log.Info($"Fantasy Version:{Define.VERSION}"); - // 初始化程序集管理系统 - await AssemblySystem.InnerInitialize(assemblies); - // 初始化序列化 - SerializerManager.Initialize(); - _isInit = true; - Log.Debug("Fantasy Initialize Complete!"); - } - - /// - /// 启动框架。 - /// 如果您的平台有每帧更新逻辑的方法,请不要调用这个方法。 - /// 如果没有实现每帧执行方法平台需要调用这个方法,目的是开启一个新的线程来每帧执行Update。 - /// 注意因为开启了一个新的线程来处理更新逻辑,所以要注意多线程的问题。 - /// - public static void StartUpdate() - { - _updateThread = new Thread(() => - { - while (_isInit) - { - ThreadScheduler.Update(); - Thread.Sleep(1); - } - }) - { - IsBackground = true - }; - _updateThread.Start(); - } - - /// - /// 在Entry中创建一个Scene,如果Scene已经被创建过,将先销毁Scene再创建。 - /// - /// - /// - public static async FTask CreateScene(string sceneRuntimeMode = SceneRuntimeMode.MainThread) - { - Scene?.Dispose(); - Scene = await Scene.Create(sceneRuntimeMode); - await Scene.EventComponent.PublishAsync(new OnFantasyInit() - { - Scene = Scene - }); - return Scene; - } - - /// - /// 如果有的话一定要在每帧执行这个方法 - /// - public void Update() - { - ThreadScheduler.Update(); - } - - public static void Dispose() - { - AssemblySystem.Dispose(); - SerializerManager.Dispose(); - Scene?.Dispose(); - Scene = null; - _isInit = false; - } - } -} -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Console/Entry.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Console/Entry.cs.meta deleted file mode 100644 index 20336ff57..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Console/Entry.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b7d4fdc191b89cc479cc10e4e584a7ff -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Console/ThreadSynchronizationContext.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Console/ThreadSynchronizationContext.cs.meta deleted file mode 100644 index 026ba73e6..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Console/ThreadSynchronizationContext.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e0bd538973725724bbf31d9b9ff4b73b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net.meta deleted file mode 100644 index 52d563e86..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 3b2b07180b8ccf64cbfe7732f85f4ee2 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigLoader.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigLoader.cs deleted file mode 100644 index d359cf5c8..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigLoader.cs +++ /dev/null @@ -1,537 +0,0 @@ -#if FANTASY_NET -using System.Text; -using System.Xml; -using Fantasy.Async; -using Fantasy.Helper; -using Fantasy.IdFactory; -using Fantasy.Network; -using Fantasy.Platform.Net; - -namespace Fantasy; - -/// -/// Fantasy框架XML配置文件加载器 -/// -public static class ConfigLoader -{ - /// - /// 从XML配置文件初始化所有配置 - /// - /// - /// - public static async FTask InitializeFromXml(string configPath) - { - var configText = await FileHelper.GetTextByRelativePath(configPath); - var doc = new XmlDocument(); - doc.LoadXml(configText); - - var root = doc.DocumentElement; - if (root?.LocalName != "fantasy") - { - throw new InvalidOperationException("Invalid Fantasy config file format"); - } - - // 创建命名空间管理器 - - var nsManager = new XmlNamespaceManager(doc.NameTable); - nsManager.AddNamespace("f", "http://fantasy.net/config"); - - // 加载运行时配置 - - LoadRuntimeConfig(root, nsManager); - - var configTableNode = root.SelectSingleNode("f:configTable", nsManager); - if (configTableNode != null) - { - var configTablePath = configTableNode.Attributes?["path"]?.Value; - if (string.IsNullOrEmpty(configTablePath)) - { - throw new InvalidOperationException("The configTable in the Fantasy configuration file lacks path configuration"); - } - await LoadJsonConfig(configTablePath); - return; - } - - var serverNode = root.SelectSingleNode("f:server", nsManager); - if (serverNode == null) - { - throw new InvalidOperationException("Missing server configuration in Fantasy config file"); - } - - // 加载框架需要的四个配置文件 - LoadMachineConfig(serverNode, nsManager); - LoadProcessConfig(serverNode, nsManager); - LoadWorldConfig(serverNode, nsManager); - LoadSceneConfig(serverNode, nsManager); - // 验证所有配置的完整性和正确性 - CheckConfig(); - } - - #region LoadJsonConfig - - private static async FTask LoadJsonConfig(string configTablePath) - { - var machineConfigFullPath = FileHelper.GetFullPath($"{configTablePath}/MachineConfigData.Json"); - - if (!File.Exists(machineConfigFullPath)) - { - throw new InvalidOperationException($"MachineConfigData.Json not found in the {machineConfigFullPath} directory"); - } - - var processConfigFullPath = FileHelper.GetFullPath($"{configTablePath}/ProcessConfigData.Json"); - - if (!File.Exists(processConfigFullPath)) - { - throw new InvalidOperationException($"ProcessConfigData.Json not found in the {processConfigFullPath} directory"); - } - - var worldConfigFullPath = FileHelper.GetFullPath($"{configTablePath}/WorldConfigData.Json"); - - if (!File.Exists(worldConfigFullPath)) - { - throw new InvalidOperationException($"WorldConfigData.Json not found in the {worldConfigFullPath} directory"); - } - - var sceneConfigFullPath = FileHelper.GetFullPath($"{configTablePath}/SceneConfigData.Json"); - - if (!File.Exists(sceneConfigFullPath)) - { - throw new InvalidOperationException($"SceneConfigData.Json not found in the {sceneConfigFullPath} directory"); - } - - MachineConfigData.Initialize(await File.ReadAllTextAsync(machineConfigFullPath, Encoding.UTF8)); - ProcessConfigData.Initialize(await File.ReadAllTextAsync(processConfigFullPath, Encoding.UTF8)); - WorldConfigData.Initialize(await File.ReadAllTextAsync(worldConfigFullPath, Encoding.UTF8)); - SceneConfigData.Initialize(await File.ReadAllTextAsync(sceneConfigFullPath, Encoding.UTF8)); - - // 验证所有配置的完整性和正确性 - CheckConfig(); - } - - #endregion - - #region LoadXMLConfig - - private static void LoadMachineConfig(XmlNode serverNode, XmlNamespaceManager nsManager) - { - var machinesNode = serverNode.SelectSingleNode("f:machines", nsManager); - if (machinesNode == null) - { - throw new InvalidOperationException("Missing machines configuration - at least one machine must be configured"); - } - - var machineNodes = machinesNode.SelectNodes("f:machine", nsManager); - if (machineNodes == null || machineNodes.Count == 0) - { - throw new InvalidOperationException("No machine configurations found - at least one machine must be configured"); - } - - var machineList = new List(); - foreach (XmlNode machineNode in machineNodes) - { - var machine = new MachineConfig - { - Id = uint.Parse(GetRequiredAttribute(machineNode, "id")), - OuterIP = GetRequiredAttribute(machineNode, "outerIP"), - OuterBindIP = GetRequiredAttribute(machineNode, "outerBindIP"), - InnerBindIP = GetRequiredAttribute(machineNode, "innerBindIP") - }; - machineList.Add(machine); - } - - MachineConfigData.Initialize(machineList); - } - - private static void LoadProcessConfig(XmlNode serverNode, XmlNamespaceManager nsManager) - { - var processesNode = serverNode.SelectSingleNode("f:processes", nsManager); - if (processesNode == null) - { - throw new InvalidOperationException("Missing processes configuration - at least one process must be configured"); - } - - var processNodes = processesNode.SelectNodes("f:process", nsManager); - if (processNodes == null || processNodes.Count == 0) - { - throw new InvalidOperationException("No process configurations found - at least one process must be configured"); - } - - var processList = new List(); - foreach (XmlNode processNode in processNodes) - { - var process = new ProcessConfig - { - Id = uint.Parse(GetRequiredAttribute(processNode, "id")), - MachineId = uint.Parse(GetRequiredAttribute(processNode, "machineId")), - StartupGroup = uint.Parse(GetRequiredAttribute(processNode, "startupGroup")) - }; - processList.Add(process); - } - - ProcessConfigData.Initialize(processList); - } - - private static void LoadWorldConfig(XmlNode serverNode, XmlNamespaceManager nsManager) - { - var worldsNode = serverNode.SelectSingleNode("f:worlds", nsManager); - if (worldsNode == null) - { - throw new InvalidOperationException("Missing worlds configuration - at least one world must be configured"); - } - - var worldNodes = worldsNode.SelectNodes("f:world", nsManager); - if (worldNodes == null || worldNodes.Count == 0) - { - throw new InvalidOperationException("No world configurations found - at least one world must be configured"); - } - - var worldList = new List(); - foreach (XmlNode worldNode in worldNodes) - { - var world = new WorldConfig - { - Id = uint.Parse(GetRequiredAttribute(worldNode, "id")), - WorldName = GetRequiredAttribute(worldNode, "worldName"), - DbConnection = GetOptionalAttribute(worldNode, "dbConnection") ?? string.Empty, - DbName = GetRequiredAttribute(worldNode, "dbName"), - DbType = GetRequiredAttribute(worldNode, "dbType") - }; - worldList.Add(world); - } - - WorldConfigData.Initialize(worldList); - } - - private static void LoadSceneConfig(XmlNode serverNode, XmlNamespaceManager nsManager) - { - var scenesNode = serverNode.SelectSingleNode("f:scenes", nsManager); - if (scenesNode == null) - { - throw new InvalidOperationException("Missing scenes configuration - at least one scene must be configured"); - } - - var sceneNodes = scenesNode.SelectNodes("f:scene", nsManager); - if (sceneNodes == null || sceneNodes.Count == 0) - { - throw new InvalidOperationException("No scene configurations found - at least one scene must be configured"); - } - - var sceneList = new List(); - foreach (XmlNode sceneNode in sceneNodes) - { - var scene = new SceneConfig - { - Id = uint.Parse(GetRequiredAttribute(sceneNode, "id")), - ProcessConfigId = uint.Parse(GetRequiredAttribute(sceneNode, "processConfigId")), - WorldConfigId = uint.Parse(GetRequiredAttribute(sceneNode, "worldConfigId")), - SceneRuntimeMode = GetRequiredAttribute(sceneNode, "sceneRuntimeMode"), - SceneTypeString = GetRequiredAttribute(sceneNode, "sceneTypeString"), - NetworkProtocol = GetOptionalAttribute(sceneNode, "networkProtocol") ?? string.Empty, - OuterPort = int.Parse(GetOptionalAttribute(sceneNode, "outerPort") ?? "0"), - InnerPort = int.Parse(GetRequiredAttribute(sceneNode, "innerPort")), - SceneType = int.Parse(GetRequiredAttribute(sceneNode, "sceneType")) - }; - sceneList.Add(scene); - } - - SceneConfigData.Initialize(sceneList); - } - - private static string GetRequiredAttribute(XmlNode node, string attributeName) - { - return node.Attributes?[attributeName]?.Value ?? throw new InvalidOperationException($"Required attribute '{attributeName}' is missing or null"); - } - - private static string? GetOptionalAttribute(XmlNode? node, string attributeName) - { - return node?.Attributes?[attributeName]?.Value; - } - - #endregion - - #region CheckConfig - - private static void CheckConfig() - { - // 检查Machine配置 - CheckMachineConfig(); - // 检查Process配置 - CheckProcessConfig(); - // 检查World配置 - CheckWorldConfig(); - // 检查Scene配置 - CheckSceneConfig(); - // 检查引用关系 - CheckConfigReferences(); - // 检查端口冲突 - CheckPortConflicts(); - } - - private static void CheckMachineConfig() - { - var machines = MachineConfigData.Instance.List; - var machineIds = new HashSet(); - - foreach (var machine in machines) - { - // 检查ID重复 - if (!machineIds.Add(machine.Id)) - { - throw new InvalidOperationException($"Duplicate machine ID: {machine.Id}"); - } - - // 检查必填字段 - if (string.IsNullOrWhiteSpace(machine.OuterIP)) - { - throw new InvalidOperationException($"Machine {machine.Id}: OuterIP cannot be null or empty"); - } - - if (string.IsNullOrWhiteSpace(machine.OuterBindIP)) - { - throw new InvalidOperationException($"Machine {machine.Id}: OuterBindIP cannot be null or empty"); - } - - if (string.IsNullOrWhiteSpace(machine.InnerBindIP)) - { - throw new InvalidOperationException($"Machine {machine.Id}: InnerBindIP cannot be null or empty"); - } - } - } - - private static void CheckProcessConfig() - { - var processes = ProcessConfigData.Instance.List; - var processIds = new HashSet(); - - foreach (var process in processes) - { - // 检查ID重复 - if (!processIds.Add(process.Id)) - { - throw new InvalidOperationException($"Duplicate process ID: {process.Id}"); - } - - // 检查必填字段 - if (process.Id == 0) - { - throw new InvalidOperationException("Process ID cannot be 0"); - } - - if (process.MachineId == 0) - { - throw new InvalidOperationException($"Process {process.Id}: MachineId cannot be 0"); - } - } - } - - private static void CheckWorldConfig() - { - var worlds = WorldConfigData.Instance.List; - var worldIds = new HashSet(); - - foreach (var world in worlds) - { - // 检查ID重复 - if (!worldIds.Add(world.Id)) - { - throw new InvalidOperationException($"Duplicate world ID: {world.Id}"); - } - - // 检查必填字段 - if (string.IsNullOrWhiteSpace(world.WorldName)) - { - throw new InvalidOperationException($"World {world.Id}: WorldName cannot be null or empty"); - } - - if (string.IsNullOrWhiteSpace(world.DbName)) - { - throw new InvalidOperationException($"World {world.Id}: DbName cannot be null or empty"); - } - - if (string.IsNullOrWhiteSpace(world.DbType)) - { - throw new InvalidOperationException($"World {world.Id}: DbType cannot be null or empty"); - } - } - } - - private static void CheckSceneConfig() - { - var scenes = SceneConfigData.Instance.List; - var sceneIds = new HashSet(); - - foreach (var scene in scenes) - { - // 检查ID重复 - if (!sceneIds.Add(scene.Id)) - { - throw new InvalidOperationException($"Duplicate scene ID: {scene.Id}"); - } - - // 检查必填字段 - if (scene.ProcessConfigId == 0) - { - throw new InvalidOperationException($"Scene {scene.Id}: ProcessConfigId cannot be 0"); - } - - if (scene.WorldConfigId == 0) - { - throw new InvalidOperationException($"Scene {scene.Id}: WorldConfigId cannot be 0"); - } - - if (string.IsNullOrWhiteSpace(scene.SceneRuntimeMode)) - { - throw new InvalidOperationException($"Scene {scene.Id}: SceneRuntimeMode cannot be null or empty"); - } - - if (string.IsNullOrWhiteSpace(scene.SceneTypeString)) - { - throw new InvalidOperationException($"Scene {scene.Id}: SceneTypeString cannot be null or empty"); - } - - if (scene.InnerPort == 0) - { - throw new InvalidOperationException($"Scene {scene.Id}: InnerPort cannot be 0"); - } - - if (scene.SceneType == 0) - { - throw new InvalidOperationException($"Scene {scene.Id}: SceneType cannot be 0"); - } - - // 检查NetworkProtocol配置 - if (scene.OuterPort > 0 && string.IsNullOrWhiteSpace(scene.NetworkProtocol)) - { - throw new InvalidOperationException($"Scene {scene.Id}: NetworkProtocol must be set when OuterPort > 0"); - } - - // 检查Scene ID范围(仅在IdFactoryType.World模式下) - CheckSceneIdRange(scene); - } - } - - private static void CheckConfigReferences() - { - // 检查Process的MachineId引用 - foreach (var process in ProcessConfigData.Instance.List) - { - if (MachineConfigData.Instance.List.All(m => m.Id != process.MachineId)) - { - throw new InvalidOperationException($"Process {process.Id}: Referenced MachineId {process.MachineId} not found"); - } - } - - // 检查Scene的ProcessConfigId和WorldConfigId引用 - foreach (var scene in SceneConfigData.Instance.List) - { - if (ProcessConfigData.Instance.List.All(p => p.Id != scene.ProcessConfigId)) - { - throw new InvalidOperationException($"Scene {scene.Id}: Referenced ProcessConfigId {scene.ProcessConfigId} not found"); - } - - if (WorldConfigData.Instance.List.All(w => w.Id != scene.WorldConfigId)) - { - throw new InvalidOperationException($"Scene {scene.Id}: Referenced WorldConfigId {scene.WorldConfigId} not found"); - } - } - } - - private static void CheckPortConflicts() - { - // 按机器分组检查端口冲突 - var machinePortMap = new Dictionary>(); // MachineId -> (Port -> SceneId) - - foreach (var scene in SceneConfigData.Instance.List) - { - // 获取Scene所属的机器ID - var process = ProcessConfigData.Instance.Get(scene.ProcessConfigId); - var machineId = process.MachineId; - - if (!machinePortMap.ContainsKey(machineId)) - { - machinePortMap[machineId] = new Dictionary(); - } - - var machinePorts = machinePortMap[machineId]; - - // 检查同一Scene内InnerPort和OuterPort是否冲突 - if (scene.OuterPort > 0 && scene.InnerPort == scene.OuterPort) - { - throw new InvalidOperationException($"Scene {scene.Id}: InnerPort and OuterPort cannot use the same port {scene.InnerPort}"); - } - - // 检查InnerPort在同一机器下是否与其他端口冲突 - if (machinePorts.TryGetValue(scene.InnerPort, out var conflictSceneId1)) - { - throw new InvalidOperationException($"Scene {scene.Id}: InnerPort {scene.InnerPort} conflicts with another port from Scene {conflictSceneId1} on Machine {machineId}"); - } - machinePorts[scene.InnerPort] = scene.Id; - - // 检查OuterPort在同一机器下是否与其他端口冲突(如果不为0) - if (scene.OuterPort > 0) - { - if (machinePorts.TryGetValue(scene.OuterPort, out var conflictSceneId)) - { - throw new InvalidOperationException($"Scene {scene.Id}: OuterPort {scene.OuterPort} conflicts with another port from Scene {conflictSceneId} on Machine {machineId}"); - } - machinePorts[scene.OuterPort] = scene.Id; - } - } - } - - private static void CheckSceneIdRange(SceneConfig scene) - { - // 检查当前是否为World模式的ID工厂 - if (IdFactoryHelper.GetIdFactoryType() != IdFactoryType.World) - { - return; // 非World模式不需要检查 - } - - var worldConfigId = scene.WorldConfigId; - var minAllowedId = worldConfigId * 1000 + 1; - var maxAllowedId = worldConfigId * 1000 + 255; - - if (scene.Id < minAllowedId) - { - throw new InvalidOperationException($"Scene {scene.Id}: ID must be >= {minAllowedId} (WorldConfigId {worldConfigId} * 1000 + 1)"); - } - - if (scene.Id > maxAllowedId) - { - throw new InvalidOperationException($"Scene {scene.Id}: ID must be <= {maxAllowedId} (WorldConfigId {worldConfigId} * 1000 + 255)"); - } - } - - #endregion - - #region LoadRuntimeConfig - - private static void LoadRuntimeConfig(XmlNode root, XmlNamespaceManager nsManager) - { - // 加载IdFactory配置 - - XmlNode? idFactoryNode = root.SelectSingleNode("f:idFactory", nsManager); - string idFactoryType = GetOptionalAttribute(idFactoryNode, "type") ?? "World"; - IdFactoryHelper.Initialize(Enum.Parse(idFactoryType)); - - // 加载网络配置 - - XmlNode? networkNode = root.SelectSingleNode("f:network", nsManager); - ProgramDefine.InnerNetwork = Enum.Parse(GetOptionalAttribute(networkNode, "inner") ?? "TCP"); - ProgramDefine.MaxMessageSize = int.Parse(GetOptionalAttribute(networkNode, "maxMessageSize") ?? "1048560"); - - // 加载会话配置 - - XmlNode? sessionNode = root.SelectSingleNode("f:session", nsManager); - ProgramDefine.SessionIdleCheckerTimeout = int.Parse(GetOptionalAttribute(sessionNode, "idleTimeout") ?? "8000"); - ProgramDefine.SessionIdleCheckerInterval = int.Parse(GetOptionalAttribute(sessionNode, "idleInterval") ?? "5000"); - - Log.Info($"Current inner network protocol:{ProgramDefine.InnerNetwork.ToString()}"); - Log.Info($"Max Message Size(byte):{ProgramDefine.MaxMessageSize}"); - Log.Info($"Current session idle timeout:{ProgramDefine.SessionIdleCheckerTimeout}"); - Log.Info($"Session-check interval:{ProgramDefine.SessionIdleCheckerInterval} "); - } - - #endregion -} -#endif diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigLoader.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigLoader.cs.meta deleted file mode 100644 index 72a63e4bc..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigLoader.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: fd3ad22fac59db147a1079f020cb7f9c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable.meta deleted file mode 100644 index 16855b6a0..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 8aedcd4bf6213ce478942c0381dbb82b -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/MachineConfig.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/MachineConfig.cs deleted file mode 100644 index b32996f9d..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/MachineConfig.cs +++ /dev/null @@ -1,110 +0,0 @@ -#if FANTASY_NET -// ReSharper disable InconsistentNaming -using System.Collections.Concurrent; -using System.Runtime.Serialization; -using Fantasy.Helper; -using Newtonsoft.Json; -#pragma warning disable CS8601 // Possible null reference assignment. -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. -namespace Fantasy.Platform.Net -{ - /// - /// 用于记录服务器物理信息 - /// - public sealed class MachineConfigData - { - /// - /// 存放所有MachineConfigInfo信息 - /// - public List List; - [JsonIgnore] - [IgnoreDataMember] - private readonly ConcurrentDictionary _configs = new ConcurrentDictionary(); - /// - /// 获得MachineConfig的实例 - /// - public static MachineConfigData Instance { get; private set; } - /// - /// 初始化MachineConfig - /// - /// - public static void Initialize(string machineConfigJson) - { - try - { - Instance = machineConfigJson.Deserialize(); - foreach (var config in Instance.List) - { - Instance._configs.TryAdd(config.Id, config); - } - } - catch (Exception e) - { - throw new InvalidOperationException($"MachineConfigData.Json format error {e.Message}"); - } - } - /// - /// 初始化MachineConfig - /// - /// - public static void Initialize(List list) - { - Instance = new MachineConfigData - { - List = list - }; - foreach (var config in Instance.List) - { - Instance._configs.TryAdd(config.Id, config); - } - } - /// - /// 根据Id获取MachineConfig - /// - /// - /// - /// - public MachineConfig Get(uint id) - { - if (_configs.TryGetValue(id, out var machineConfigInfo)) - { - return machineConfigInfo; - } - - throw new FileNotFoundException($"MachineConfig not find {id} Id"); - } - /// - /// 根据Id获取MachineConfig - /// - /// - /// - /// - public bool TryGet(uint id, out MachineConfig config) - { - return _configs.TryGetValue(id, out config); - } - } - /// - /// 表示一个物理服务器的信息 - /// - public sealed class MachineConfig - { - /// - /// Id - /// - public uint Id { get; set; } - /// - /// 外网IP - /// - public string OuterIP { get; set; } - /// - /// 外网绑定IP - /// - public string OuterBindIP { get; set; } - /// - /// 内网绑定IP - /// - public string InnerBindIP { get; set; } - } -} -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/MachineConfig.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/MachineConfig.cs.meta deleted file mode 100644 index c9becfa64..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/MachineConfig.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 636f83e572045ba42b46f39da68568d7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/ProcessConfig.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/ProcessConfig.cs deleted file mode 100644 index 73301ce17..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/ProcessConfig.cs +++ /dev/null @@ -1,122 +0,0 @@ -#if FANTASY_NET -using System.Collections.Concurrent; -using System.Runtime.Serialization; -using Fantasy.Helper; -using Newtonsoft.Json; -// ReSharper disable CollectionNeverUpdated.Global -#pragma warning disable CS8601 // Possible null reference assignment. -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. - -namespace Fantasy.Platform.Net -{ - /// - /// 用于管理进程信息 - /// - public sealed class ProcessConfigData - { - /// - /// 存放所有ProcessConfig信息 - /// - public List List; - [JsonIgnore] - [IgnoreDataMember] - private readonly ConcurrentDictionary _configs = new ConcurrentDictionary(); - /// - /// 获得ProcessConfigData的实例 - /// - public static ProcessConfigData Instance { get; private set; } - /// - /// 初始化ProcessConfig - /// - /// - public static void Initialize(string processConfigJson) - { - try - { - Instance = processConfigJson.Deserialize(); - foreach (var config in Instance.List) - { - Instance._configs.TryAdd(config.Id, config); - } - } - catch (Exception e) - { - throw new InvalidOperationException($"ProcessConfigData.Json format error {e.Message}"); - } - } - /// - /// 初始化ProcessConfig - /// - /// - public static void Initialize(List list) - { - Instance = new ProcessConfigData - { - List = list - }; - foreach (var config in Instance.List) - { - Instance._configs.TryAdd(config.Id, config); - } - } - /// - /// 根据Id获取ProcessConfig - /// - /// - /// - /// - public ProcessConfig Get(uint id) - { - if (_configs.TryGetValue(id, out var processConfigInfo)) - { - return processConfigInfo; - } - - throw new FileNotFoundException($"MachineConfig not find {id} Id"); - } - /// - /// 根据Id获取ProcessConfig - /// - /// - /// - /// - public bool TryGet(uint id, out ProcessConfig config) - { - return _configs.TryGetValue(id, out config); - } - /// - /// 按照startupGroup寻找属于startupGroup组的ProcessConfig - /// - /// startupGroup - /// - public IEnumerable ForEachByStartupGroup(uint startupGroup) - { - foreach (var processConfig in List) - { - if (processConfig.StartupGroup == startupGroup) - { - yield return processConfig; - } - } - } - } - /// - /// 表示一个进程配置信息 - /// - public sealed class ProcessConfig - { - /// - /// 进程Id - /// - public uint Id { get; set; } - /// - /// 机器ID - /// - public uint MachineId { get; set; } - /// - /// 启动组 - /// - public uint StartupGroup { get; set; } - } -} -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/ProcessConfig.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/ProcessConfig.cs.meta deleted file mode 100644 index 987dd5757..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/ProcessConfig.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7b88b60c880c9b348a7f54196c19cf85 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/SceneConfig.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/SceneConfig.cs deleted file mode 100644 index 110631241..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/SceneConfig.cs +++ /dev/null @@ -1,216 +0,0 @@ -#if FANTASY_NET -using System.Collections.Concurrent; -using System.Runtime.Serialization; -using Fantasy.DataStructure.Collection; -using Fantasy.DataStructure.Dictionary; -using Fantasy.Helper; -using Fantasy.IdFactory; -using Newtonsoft.Json; -#pragma warning disable CS8603 // Possible null reference return. -#pragma warning disable CS8601 // Possible null reference assignment. - -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. -namespace Fantasy.Platform.Net -{ - /// - /// 存放所有SceneConfigInfo信息 - /// - public sealed class SceneConfigData - { - /// - /// 存放所有SceneConfig信息 - /// - public List List; - [JsonIgnore] - [IgnoreDataMember] - private readonly ConcurrentDictionary _configs = new ConcurrentDictionary(); - [JsonIgnore] - [IgnoreDataMember] - private readonly OneToManyList _sceneConfigBySceneType = new OneToManyList(); - [JsonIgnore] - [IgnoreDataMember] - private readonly OneToManyList _sceneConfigByProcess = new OneToManyList(); - [JsonIgnore] [IgnoreDataMember] - private readonly Dictionary>> _worldSceneTypes = new Dictionary>>(); - /// - /// 获得SceneConfigData的实例 - /// - public static SceneConfigData Instance { get; private set; } - /// - /// 初始化SceneConfig - /// - /// - public static void Initialize(string sceneConfigJson) - { - try - { - Instance = sceneConfigJson.Deserialize(); - Initialize(); - } - catch (Exception e) - { - throw new InvalidOperationException($"SceneConfigData.Json format error {e.Message}"); - } - } - /// - /// 初始化SceneConfig - /// - public static void Initialize(List sceneConfigs) - { - Instance = new SceneConfigData() { List = sceneConfigs }; - Initialize(); - } - - private static void Initialize() - { - foreach (var config in Instance.List) - { - config.Initialize(); - Instance._configs.TryAdd(config.Id, config); - Instance._sceneConfigByProcess.Add(config.ProcessConfigId, config); - Instance._sceneConfigBySceneType.Add(config.SceneType, config); - - var configWorldConfigId = (int)config.WorldConfigId; - - if (!Instance._worldSceneTypes.TryGetValue(configWorldConfigId, out var sceneConfigDic)) - { - sceneConfigDic = new Dictionary>(); - Instance._worldSceneTypes.Add(configWorldConfigId, sceneConfigDic); - } - - if (!sceneConfigDic.TryGetValue(config.SceneType, out var sceneConfigList)) - { - sceneConfigList = new List(); - sceneConfigDic.Add(config.SceneType, sceneConfigList); - } - - sceneConfigList.Add(config); - } - } - - /// - /// 根据Id获取SceneConfig - /// - /// - /// - /// - public SceneConfig Get(uint id) - { - if (_configs.TryGetValue(id, out var sceneConfigInfo)) - { - return sceneConfigInfo; - } - - throw new FileNotFoundException($"WorldConfig not find {id} Id"); - } - - /// - /// 根据Id获取SceneConfig - /// - /// - /// - /// - public bool TryGet(uint id, out SceneConfig config) - { - return _configs.TryGetValue(id, out config); - } - - /// - /// 获得SceneConfig - /// - /// - /// - public List GetByProcess(uint serverConfigId) - { - return _sceneConfigByProcess.TryGetValue(serverConfigId, out var list) ? list : new List(); - } - - /// - /// 获得SceneConfig - /// - /// - /// - public List GetSceneBySceneType(int sceneType) - { - return !_sceneConfigBySceneType.TryGetValue(sceneType, out var list) ? new List() : list; - } - - /// - /// 获得SceneConfig - /// - /// - /// - /// - public List GetSceneBySceneType(int world, int sceneType) - { - if (!_worldSceneTypes.TryGetValue(world, out var sceneConfigDic)) - { - return new List(); - } - - if (!sceneConfigDic.TryGetValue(sceneType, out var list)) - { - return new List(); - } - - return list; - } - } - - /// - /// 表示一个Scene配置信息 - /// - public sealed class SceneConfig - { - /// - /// ID - /// - public uint Id { get; set; } - /// - /// 进程Id - /// - public uint ProcessConfigId { get; set; } - /// - /// 世界Id - /// - public uint WorldConfigId { get; set; } - /// - /// Scene运行类型 - /// - public string SceneRuntimeMode { get; set; } - /// - /// Scene类型 - /// - public string SceneTypeString { get; set; } - /// - /// 协议类型 - /// - public string NetworkProtocol { get; set; } - /// - /// 外网端口 - /// - public int OuterPort { get; set; } - /// - /// 内网端口 - /// - public int InnerPort { get; set; } - /// - /// Scene类型 - /// - public int SceneType { get; set; } - /// - /// RouteId - /// - [JsonIgnore] - [IgnoreDataMember] - public long RouteId { get; private set; } - /// - /// 初始化方法 - /// - public void Initialize() - { - RouteId = IdFactoryHelper.RuntimeId(false, 0, Id, (byte)WorldConfigId, 0); - } - } -} -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/SceneConfig.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/SceneConfig.cs.meta deleted file mode 100644 index cc064bd9b..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/SceneConfig.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 67b546075c3abab47b02367a99077259 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/WorldConfig.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/WorldConfig.cs deleted file mode 100644 index 30ff6bba8..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/WorldConfig.cs +++ /dev/null @@ -1,115 +0,0 @@ -#if FANTASY_NET -using System.Collections.Concurrent; -using System.Runtime.Serialization; -using Fantasy.Helper; -using Newtonsoft.Json; -#pragma warning disable CS8601 // Possible null reference assignment. - -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. -namespace Fantasy.Platform.Net -{ - /// - /// 存放所有WorldConfigInfo信息 - /// - public sealed class WorldConfigData - { - /// - /// 存放所有WorldConfigInfo信息 - /// - public List List; - [JsonIgnore] - [IgnoreDataMember] - private readonly ConcurrentDictionary _configs = new ConcurrentDictionary(); - /// - /// 获得WorldConfig的实例 - /// - public static WorldConfigData Instance { get; private set; } - /// - /// 初始化WorldConfig - /// - /// - public static void Initialize(string worldConfigJson) - { - try - { - Instance = worldConfigJson.Deserialize(); - foreach (var config in Instance.List) - { - Instance._configs.TryAdd(config.Id, config); - } - } - catch (Exception e) - { - throw new InvalidOperationException($"WorldConfigData.Json format error {e.Message}"); - } - } - /// - /// 初始化WorldConfig - /// - /// - public static void Initialize(List list) - { - Instance = new WorldConfigData - { - List = list - }; - foreach (var config in Instance.List) - { - Instance._configs.TryAdd(config.Id, config); - } - } - /// - /// 根据Id获取WorldConfig - /// - /// - /// - /// - public WorldConfig Get(uint id) - { - if (_configs.TryGetValue(id, out var worldConfigInfo)) - { - return worldConfigInfo; - } - - throw new FileNotFoundException($"WorldConfig not find {id} Id"); - } - /// - /// 根据Id获取WorldConfig - /// - /// - /// - /// - public bool TryGet(uint id, out WorldConfig config) - { - return _configs.TryGetValue(id, out config); - } - } - - /// - /// 表示一个世界配置信息 - /// - public sealed class WorldConfig - { - /// - /// Id - /// - public uint Id { get; set; } - /// - /// 名称 - /// - public string WorldName { get; set; } - /// - /// 数据库连接字符串 - /// - public string DbConnection { get; set; } - /// - /// 数据库名称 - /// - public string DbName { get; set; } - /// - /// 数据库类型 - /// - public string DbType { get; set; } - } -} -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/WorldConfig.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/WorldConfig.cs.meta deleted file mode 100644 index 4b23f151b..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ConfigTable/WorldConfig.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 846d8882821db32469ea1e258096ded4 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/Entry.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/Entry.cs deleted file mode 100644 index 4e5bfa98b..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/Entry.cs +++ /dev/null @@ -1,117 +0,0 @@ -#if FANTASY_NET -using CommandLine; -using Fantasy.Assembly; -using Fantasy.Async; -using Fantasy.Helper; -using Fantasy.Network; -using Fantasy.Serialize; -// ReSharper disable FunctionNeverReturns -#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. - -namespace Fantasy.Platform.Net; - -/// -/// Fantasy.Net 应用程序入口 -/// -/// 当命令行格式异常时抛出。 -/// 不支持的 ProcessType 类型异常。 -public static class Entry -{ - /// - /// 启动Fantasy.Net - /// - public static async FTask Start(ILog log = null) - { - // 初始化 - await Initialize(log); - // 启动Process - StartProcess().Coroutine(); - await FTask.CompletedTask; - while (true) - { - ThreadScheduler.Update(); - Thread.Sleep(1); - } - } - - private static async FTask StartProcess() - { - if (ProgramDefine.StartupGroup != 0) - { - foreach (var processConfig in ProcessConfigData.Instance.ForEachByStartupGroup((uint)ProgramDefine.StartupGroup)) - { - await Process.Create(processConfig.Id); - } - - return; - } - - switch (ProgramDefine.RuntimeMode) - { - case ProcessMode.Develop: - { - foreach (var processConfig in ProcessConfigData.Instance.List) - { - await Process.Create(processConfig.Id); - } - - return; - } - case ProcessMode.Release: - { - await Process.Create(ProgramDefine.ProcessId); - return; - } - } - } - - /// - /// 框架初始化 - /// - /// 日志实例 - /// - private static async FTask Initialize(ILog log = null) - { - // 初始化Log系统 - Log.Initialize(log); - Log.Info($"Fantasy Version:{ProgramDefine.VERSION}"); - // 加载Fantasy.config配置文件 - await ConfigLoader.InitializeFromXml(Path.Combine(AppContext.BaseDirectory, "Fantasy.config")); - // 解析命令行参数 - Parser.Default.ParseArguments(Environment.GetCommandLineArgs()) - .WithNotParsed(error => throw new Exception("Command line format error!")) - .WithParsed(option => - { - ProgramDefine.ProcessId = option.ProcessId; - ProgramDefine.ProcessType = option.ProcessType; - ProgramDefine.RuntimeMode = Enum.Parse(option.RuntimeMode); - ProgramDefine.StartupGroup = option.StartupGroup; - }); - // 检查启动参数,后期可能有机器人等不同的启动参数 - switch (ProgramDefine.ProcessType) - { - case "Game": - { - break; - } - default: - { - throw new NotSupportedException($"ProcessType is {ProgramDefine.ProcessType} Unrecognized!"); - } - } - // 初始化序列化 - await SerializerManager.Initialize(); - // 精度处理(只针对Windows下有作用、其他系统没有这个问题、一般也不会用Windows来做服务器的) - WinPeriod.Initialize(); - } - - /// - /// 关闭 Fantasy - /// - public static void Close() - { - AssemblyManifest.Dispose().Coroutine(); - SerializerManager.Dispose(); - } -} -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/Entry.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/Entry.cs.meta deleted file mode 100644 index 747b24e8d..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/Entry.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f094cbf248be4144c96b95282a010728 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/Process.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/Process.cs deleted file mode 100644 index e3a6cf8b5..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/Process.cs +++ /dev/null @@ -1,156 +0,0 @@ -#if FANTASY_NET -using System.Collections.Concurrent; -using Fantasy.Async; -using Fantasy.IdFactory; - -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. -#pragma warning disable CS8601 // Possible null reference assignment. -namespace Fantasy.Platform.Net; - -/// -/// 一个进程的实例 -/// -public sealed class Process : IDisposable -{ - /// - /// 当前进程的Id - /// - public readonly uint Id; - /// - /// 进程关联的MachineId - /// - public readonly uint MachineId; - private readonly ConcurrentDictionary _processScenes = new ConcurrentDictionary(); - private static readonly ConcurrentDictionary Scenes = new ConcurrentDictionary(); - private Process() {} - private Process(uint id, uint machineId) - { - Id = id; - MachineId = machineId; - } - - internal bool IsProcess(ref long routeId) - { - var sceneId = IdFactoryHelper.RuntimeIdTool.GetSceneId(ref routeId); - return _processScenes.ContainsKey(sceneId); - } - - internal bool IsProcess(ref uint sceneId) - { - return _processScenes.ContainsKey(sceneId); - } - - internal void AddSceneToProcess(Scene scene) - { - _processScenes.TryAdd(scene.SceneConfigId, scene); - } - - internal void RemoveSceneToProcess(Scene scene, bool isDispose) - { - if (!_processScenes.Remove(scene.SceneConfigId, out _)) - { - return; - } - - if (isDispose) - { - scene.Dispose(); - } - } - - internal bool TryGetSceneToProcess(long routeId, out Scene scene) - { - var sceneId = IdFactoryHelper.RuntimeIdTool.GetSceneId(ref routeId); - return _processScenes.TryGetValue(sceneId, out scene); - } - - internal bool TryGetSceneToProcess(uint sceneId, out Scene scene) - { - return _processScenes.TryGetValue(sceneId, out scene); - } - /// - /// 销毁方法 - /// - public void Dispose() - { - if (_processScenes.IsEmpty) - { - return; - } - - var sceneQueue = new Queue(); - - foreach (var (_, scene) in _processScenes) - { - sceneQueue.Enqueue(scene); - } - - while (sceneQueue.TryDequeue(out var removeScene)) - { - removeScene.Dispose(); - } - - _processScenes.Clear(); - } - - internal static async FTask Create(uint processConfigId) - { - if (!ProcessConfigData.Instance.TryGet(processConfigId, out var processConfig)) - { - Log.Error($"not found processConfig by Id:{processConfigId}"); - return null; - } - - if (!MachineConfigData.Instance.TryGet(processConfig.MachineId, out var machineConfig)) - { - Log.Error($"not found machineConfig by Id:{processConfig.MachineId}"); - return null; - } - - var process = new Process(processConfigId, processConfig.MachineId); - var sceneConfigs = SceneConfigData.Instance.GetByProcess(processConfigId); - - foreach (var sceneConfig in sceneConfigs) - { - await Scene.Create(process, machineConfig, sceneConfig); - } - - Log.Info($"Process:{processConfigId} Startup Complete SceneCount:{sceneConfigs.Count}"); - return process; - } - - internal bool IsInAppliaction(ref uint sceneId) - { - return _processScenes.ContainsKey(sceneId); - } - - internal static void AddScene(Scene scene) - { - Scenes.TryAdd(scene.SceneConfigId, scene); - } - - internal static void RemoveScene(Scene scene, bool isDispose) - { - if (!Scenes.Remove(scene.SceneConfigId, out _)) - { - return; - } - - if (isDispose) - { - scene.Dispose(); - } - } - - internal static bool TryGetScene(long routeId, out Scene scene) - { - var sceneId = IdFactoryHelper.RuntimeIdTool.GetSceneId(ref routeId); - return Scenes.TryGetValue(sceneId, out scene); - } - - internal static bool TryGetScene(uint sceneId, out Scene scene) - { - return Scenes.TryGetValue(sceneId, out scene); - } -} -#endif diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/Process.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/Process.cs.meta deleted file mode 100644 index c11fe8559..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/Process.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: bc3dd93ff49137442a602664e382cf02 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ProcessDefine.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ProcessDefine.cs deleted file mode 100644 index 51732db4d..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ProcessDefine.cs +++ /dev/null @@ -1,52 +0,0 @@ -#if FANTASY_NET -using CommandLine; -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. -namespace Fantasy.Platform.Net; - -/// -/// Process运行模式 -/// -public enum ProcessMode -{ - /// - /// 默认 - /// - None =0, - /// - /// 开发模式 - /// - Develop = 1, - /// - /// 发布模式 - /// - Release = 2 -} - -internal sealed class CommandLineOptions -{ - /// - /// 用于启动指定的进程,该进程的 ID 与 ProcessConfig 的 ID 相关联。此参数只能传递单个 ID,不支持传递多个 ID。 - /// - [Option("pid", Required = false, Default = (uint)0, HelpText = "Enter an ProcessIdId such as 1")] - public uint ProcessId { get; set; } - /// - /// Process类型,获取或设置应用程序的类型。 - /// Game - 游戏服务器Process - /// Robot - 机器人(暂未支持该功能) - /// - [Option('a', "ProcessType", Required = false, Default = "Game", HelpText = "Game")] - public string ProcessType { get; set; } - /// - /// 服务器运行模式,获取或设置服务器的运行模式。 - /// Develop - 开发模式(启动Process配置表中的所有Process) - /// Release - 发布模式(根据ProcessId启动Process) - /// - [Option('m', "RuntimeMode", Required = true, Default = "Release", HelpText = "Develop:启动Process配置表中的所有Process,\nRelease:根据ProcessId启动Process")] - public string RuntimeMode { get; set; } - /// - /// 启动组。 - /// - [Option('g', "StartupGroup", Required = false, Default = 0, HelpText = "Used to start a group of Process")] - public int StartupGroup { get; set; } -} -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ProcessDefine.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ProcessDefine.cs.meta deleted file mode 100644 index 12650c7ba..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ProcessDefine.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 24c1f04da81622e478e6bf171a98ebfb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ThreadSynchronizationContext.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ThreadSynchronizationContext.cs deleted file mode 100644 index bb2948af0..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ThreadSynchronizationContext.cs +++ /dev/null @@ -1,52 +0,0 @@ -#if FANTASY_NET -using System.Collections.Concurrent; -#pragma warning disable CS8765 -#pragma warning disable CS8601 -#pragma warning disable CS8618 - -namespace Fantasy; - -/// -/// 线程的同步上下文 -/// -public sealed class ThreadSynchronizationContext : SynchronizationContext -{ - private readonly ConcurrentQueue _queue = new(); - /// - /// 执行当前上下文投递过的逻辑 - /// - public void Update() - { - while (_queue.TryDequeue(out var actionHandler)) - { - try - { - actionHandler(); - } - catch (Exception e) - { - Log.Error(e); - } - } - } - - /// - /// 投递一个逻辑到当前上下文 - /// - /// - /// - public override void Post(SendOrPostCallback callback, object state) - { - Post(() => callback(state)); - } - - /// - /// 投递一个逻辑到当前上下文 - /// - /// - public void Post(Action action) - { - _queue.Enqueue(action); - } -} -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ThreadSynchronizationContext.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ThreadSynchronizationContext.cs.meta deleted file mode 100644 index cdb1baea0..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Net/ThreadSynchronizationContext.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: da05b97f80ac32f4a82caa710a1f9bda -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/ProgramDefine.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/ProgramDefine.cs deleted file mode 100644 index 7e7299d96..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/ProgramDefine.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System; -#if FANTASY_NET -using Fantasy.Network; -using Fantasy.Platform.Net; - -#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring as nullable. -#endif - -namespace Fantasy -{ - /// - /// 程序定义 - /// - public static class ProgramDefine - { - /// - /// Fantasy版本。 - /// - public const string VERSION = "Fantasy 2.0 Beta"; - /// - /// 消息体最大长度(字节)。默认1024k。 - /// 注意:前后端设置的消息大小,一定要一样才可以,不然会不出现问题。 - /// - public static int MaxMessageSize { get; set; } = ushort.MaxValue * 16; -#if FANTASY_NET - /// - /// App程序Id。 - /// - public static uint ProcessId { get; internal set; } - /// - /// 应用程序的类型。 - /// - public static string ProcessType { get; internal set; } - /// - /// 服务器运行模式,获取或设置服务器的运行模式。 - /// - public static ProcessMode RuntimeMode { get; internal set; } - /// - /// 服务器启动组 - /// - public static int StartupGroup { get; internal set; } - /// - /// 会话空闲检查超时时间。 - /// - public static int SessionIdleCheckerTimeout { get; internal set; } - /// - /// 会话空闲检查间隔。 - /// - public static int SessionIdleCheckerInterval { get; internal set; } - /// - /// 内部网络通讯协议类型。 - /// - public static NetworkProtocolType InnerNetwork { get; internal set; } -#endif - } -} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/ProgramDefine.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/ProgramDefine.cs.meta deleted file mode 100644 index 37758fd75..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/ProgramDefine.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 640db1a3726153047849a3ccb55d3ba0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/ThreadSynchronizationContext.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/ThreadSynchronizationContext.cs deleted file mode 100644 index 44b165a19..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Platform/Unity/ThreadSynchronizationContext.cs +++ /dev/null @@ -1,104 +0,0 @@ -#if FANTASY_UNITY && !FANTASY_WEBGL -#pragma warning disable CS8765 -#pragma warning disable CS8601 -#pragma warning disable CS8618 -using System; -using System.Collections.Concurrent; -using System.Threading; - -namespace Fantasy -{ - public sealed class ThreadSynchronizationContext : SynchronizationContext - { - private Action _actionHandler; - private readonly ConcurrentQueue _queue = new(); - - public void Update() - { - while (_queue.TryDequeue(out _actionHandler)) - { - try - { - _actionHandler(); - } - catch (Exception e) - { - Log.Error(e); - } - } - } - - public override void Post(SendOrPostCallback callback, object state) - { - Post(() => callback(state)); - } - - public void Post(Action action) - { - _queue.Enqueue(action); - } - } -} -#endif -#if FANTASY_UNITY && FANTASY_WEBGL -using System; -using System.Collections.Generic; -using System.Threading; -using Fantasy; -using UnityEngine; -using Object = UnityEngine.Object; - -public class WebGLSynchronizationContextUpdater : MonoBehaviour -{ - private ThreadSynchronizationContext _context; - - public void Initialize(ThreadSynchronizationContext context) - { - _context = context; - } - - void Update() - { - _context.Update(); - } -} -public sealed class ThreadSynchronizationContext : SynchronizationContext -{ - private Action _actionHandler; - private readonly Queue _queue = new(); - - public static void Initialize() - { - var context = new ThreadSynchronizationContext(); - SetSynchronizationContext(context); - var go = new GameObject("WebGLSynchronizationContextUpdater"); - go.AddComponent().Initialize(context); - Object.DontDestroyOnLoad(go); - } - - public void Update() - { - while (_queue.TryDequeue(out _actionHandler)) - { - try - { - _actionHandler(); - } - catch (Exception e) - { - Log.Error(e); - } - } - } - - public override void Post(SendOrPostCallback callback, object state) - { - Post(() => callback(state)); - } - - public void Post(Action action) - { - _queue.Enqueue(action); - } -} -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/ISceneUpdate.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/ISceneUpdate.cs deleted file mode 100644 index f83aec771..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Scene/ISceneUpdate.cs +++ /dev/null @@ -1,31 +0,0 @@ -namespace Fantasy -{ - internal interface ISceneUpdate - { - void Update(); - } - - internal sealed class EmptySceneUpdate : ISceneUpdate - { - public void Update() - { - - } - } - -#if FANTASY_UNITY - internal interface ISceneLateUpdate - { - void LateUpdate(); - } - - internal sealed class EmptySceneLateUpdate : ISceneLateUpdate - { - public void LateUpdate() - { - - } - } -#endif - -} \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/BsonPackHelperNet.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/BsonPackHelperNet.cs deleted file mode 100644 index 1c8aa16ee..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/BsonPackHelperNet.cs +++ /dev/null @@ -1,314 +0,0 @@ -#if FANTASY_NET -using System.Buffers; -using System.Collections; -using System.ComponentModel; -using System.Reflection; -using Fantasy.Assembly; -using Fantasy.Async; -using Fantasy.Entitas; -using MongoDB.Bson; -using MongoDB.Bson.IO; -using MongoDB.Bson.Serialization; -using MongoDB.Bson.Serialization.Conventions; -using MongoDB.Bson.Serialization.Serializers; -#pragma warning disable CS8603 // Possible null reference return. -#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. -#pragma warning disable CS8602 // Dereference of a possibly null reference. - -namespace Fantasy.Serialize -{ - /// - /// BSON帮助方法 - /// - public class BsonPackHelper : ISerialize, IAssemblyLifecycle - { - /// - /// 序列化器的名字 - /// - public string SerializeName { get; } = "Bson"; - - /// - /// 构造函数 - /// - public BsonPackHelper() - { - // 初始化ConventionRegistry、注册IgnoreExtraElements。 - ConventionRegistry.Register("IgnoreExtraElements", new ConventionPack { new IgnoreExtraElementsConvention(true) }, type => true); - // 注册一个自定义的序列化器。 - // BsonSerializer.TryRegisterSerializer(typeof(float2), new StructBsonSerialize()); - // BsonSerializer.TryRegisterSerializer(typeof(float3), new StructBsonSerialize()); - // BsonSerializer.TryRegisterSerializer(typeof(float4), new StructBsonSerialize()); - // BsonSerializer.TryRegisterSerializer(typeof(quaternion), new StructBsonSerialize()); - BsonSerializer.RegisterSerializer(new ObjectSerializer(x => true)); - } - - #region AssemblyManifest - - internal async FTask Initialize() - { - await AssemblyLifecycle.Add(this); - return this; - } - - /// - /// - /// - /// 程序集清单对象,包含程序集的元数据和注册器 - public async FTask OnLoad(AssemblyManifest assemblyManifest) - { - var entityTypes = assemblyManifest.EntityTypeCollectionRegistrar.GetEntityTypes(); - if (entityTypes.Any()) - { - foreach (var entityType in entityTypes) - { - if (BsonClassMap.IsClassMapRegistered(entityType)) - { - continue; - } - BsonClassMap.LookupClassMap(entityType); - } - } - await FTask.CompletedTask; - } - - /// - /// - /// - /// 程序集清单对象,包含程序集的元数据和注册器 - public async FTask OnUnload(AssemblyManifest assemblyManifest) - { - await FTask.CompletedTask; - } - - #endregion - - /// - /// 反序列化 - /// - /// - /// - /// - public T Deserialize(byte[] bytes) - { - var @object = BsonSerializer.Deserialize(bytes); - if (@object is ASerialize aSerialize) - { - aSerialize.AfterDeserialization(); - } - return @object; - } - - /// - /// 反序列化 - /// - /// - /// - /// - public T Deserialize(MemoryStreamBuffer buffer) - { - var @object = BsonSerializer.Deserialize(buffer); - if (@object is ASerialize aSerialize) - { - aSerialize.AfterDeserialization(); - } - return @object; - } - - /// - /// 反序列化 - /// - /// - /// - /// - public object Deserialize(Type type, byte[] bytes) - { - var @object = BsonSerializer.Deserialize(bytes, type); - if (@object is ASerialize aSerialize) - { - aSerialize.AfterDeserialization(); - } - return @object; - } - - /// - /// 反序列化 - /// - /// - /// - /// - public object Deserialize(Type type, MemoryStreamBuffer buffer) - { - var @object = BsonSerializer.Deserialize(buffer, type); - if (@object is ASerialize aSerialize) - { - aSerialize.AfterDeserialization(); - } - return @object; - } - - /// - /// 反序列化 - /// - /// - /// - /// - /// - /// - public unsafe T Deserialize(byte[] bytes, int index, int count) - { - T @object; - - fixed (byte* ptr = &bytes[index]) - { - using var stream = new UnmanagedMemoryStream(ptr, count); - @object = BsonSerializer.Deserialize(stream); - } - - if (@object is ASerialize aSerialize) - { - aSerialize.AfterDeserialization(); - } - - return @object; - } - - /// - /// 反序列化 - /// - /// - /// - /// - /// - /// - public unsafe object Deserialize(Type type, byte[] bytes, int index, int count) - { - object @object; - - fixed (byte* ptr = &bytes[index]) - { - using var stream = new UnmanagedMemoryStream(ptr, count); - @object = BsonSerializer.Deserialize(stream, type); - } - - if (@object is ASerialize aSerialize) - { - aSerialize.AfterDeserialization(); - } - - return @object; - } - - /// - /// 序列化 - /// - /// - /// - /// - public void Serialize(T @object, IBufferWriter buffer) - { - if (@object is ASerialize aSerialize) - { - aSerialize.BeginInit(); - } - - using IBsonWriter bsonWriter = - new BsonBinaryWriter((MemoryStream)buffer, BsonBinaryWriterSettings.Defaults); - BsonSerializer.Serialize(bsonWriter, @object); - } - - /// - /// 序列化 - /// - /// - /// - public void Serialize(object @object, IBufferWriter buffer) - { - if (@object is ASerialize aSerialize) - { - aSerialize.BeginInit(); - } - - using IBsonWriter bsonWriter = - new BsonBinaryWriter((MemoryStream)buffer, BsonBinaryWriterSettings.Defaults); - BsonSerializer.Serialize(bsonWriter, @object.GetType(), @object); - } - - /// - /// 序列化 - /// - /// - /// - /// - public void Serialize(Type type, object @object, IBufferWriter buffer) - { - if (@object is ASerialize aSerialize) - { - aSerialize.BeginInit(); - } - - using IBsonWriter bsonWriter = - new BsonBinaryWriter((MemoryStream)buffer, BsonBinaryWriterSettings.Defaults); - BsonSerializer.Serialize(bsonWriter, type, @object); - } - - /// - /// 序列化并返回的长度 - /// - /// - /// - /// - /// - public int SerializeAndReturnLength(Type type, object @object, MemoryStreamBuffer buffer) - { - if (@object is ASerialize aSerialize) - { - aSerialize.BeginInit(); - } - - using IBsonWriter bsonWriter = new BsonBinaryWriter(buffer, BsonBinaryWriterSettings.Defaults); - BsonSerializer.Serialize(bsonWriter, type, @object); - return (int)buffer.Length; - } - - /// - /// 序列化 - /// - /// - /// - public byte[] Serialize(object @object) - { - if (@object is ASerialize aSerialize) - { - aSerialize.BeginInit(); - } - return @object.ToBson(@object.GetType()); - } - - /// - /// 序列化 - /// - /// - /// - /// - public byte[] Serialize(T @object) - { - if (@object is ASerialize aSerialize) - { - aSerialize.BeginInit(); - } - return @object.ToBson(); - } - - /// - /// 克隆 - /// - /// - /// - /// - public T Clone(T t) - { - return Deserialize(Serialize(t)); - } - } -} -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/BsonPackHelperNet.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/BsonPackHelperNet.cs.meta deleted file mode 100644 index 3774ad1d9..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/BsonPackHelperNet.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6dec8a0d0f72a0345be3f9e84c08895e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/StructBsonSerialize.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/StructBsonSerialize.cs deleted file mode 100644 index 15d8663b1..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/StructBsonSerialize.cs +++ /dev/null @@ -1,65 +0,0 @@ -#if FANTASY_NET -using System.Reflection; -using MongoDB.Bson; -using MongoDB.Bson.IO; -using MongoDB.Bson.Serialization; -using MongoDB.Bson.Serialization.Serializers; - -namespace Fantasy.Serialize; - -/// -/// 提供对结构体类型进行 BSON 序列化和反序列化的辅助类。 -/// -/// 要序列化和反序列化的结构体类型。 -public class StructBsonSerialize : StructSerializerBase where TValue : struct -{ - /// - /// 将结构体对象序列化为 BSON 数据。 - /// - /// 序列化上下文。 - /// 序列化参数。 - /// 要序列化的结构体对象。 - public override void Serialize(BsonSerializationContext context, BsonSerializationArgs args, TValue value) - { - var nominalType = args.NominalType; - var bsonWriter = context.Writer; - bsonWriter.WriteStartDocument(); - var fields = nominalType.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); - foreach (var field in fields) - { - bsonWriter.WriteName(field.Name); - BsonSerializer.Serialize(bsonWriter, field.FieldType, field.GetValue(value)); - } - bsonWriter.WriteEndDocument(); - } - - /// - /// 将 BSON 数据反序列化为结构体对象。 - /// - /// 反序列化上下文。 - /// 反序列化参数。 - /// 反序列化得到的结构体对象。 - public override TValue Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args) - { - //boxing is required for SetValue to work - object obj = new TValue(); - var actualType = args.NominalType; - var bsonReader = context.Reader; - bsonReader.ReadStartDocument(); - while (bsonReader.ReadBsonType() != BsonType.EndOfDocument) - { - var name = bsonReader.ReadName(Utf8NameDecoder.Instance); - - var field = actualType.GetField(name, - BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); - if (field != null) - { - var value = BsonSerializer.Deserialize(bsonReader, field.FieldType); - field.SetValue(obj, value); - } - } - bsonReader.ReadEndDocument(); - return (TValue) obj; - } -} -#endif diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/StructBsonSerialize.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/StructBsonSerialize.cs.meta deleted file mode 100644 index 5c0de9575..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/StructBsonSerialize.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 508f769a08808194d9d15d369cb8fbc4 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/SupportInitializeChecker.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/SupportInitializeChecker.cs deleted file mode 100644 index 82c68291d..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/SupportInitializeChecker.cs +++ /dev/null @@ -1,17 +0,0 @@ -#if FANTASY_NET -using System.ComponentModel; -using Fantasy.Entitas; - -#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -namespace Fantasy.Serialize; - -public static class SupportInitializeChecker where T : Entity -{ - public static bool IsSupported { get; } - - static SupportInitializeChecker() - { - IsSupported = typeof(ISupportInitialize).IsAssignableFrom(typeof(T)); - } -} -#endif \ No newline at end of file diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/SupportInitializeChecker.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/SupportInitializeChecker.cs.meta deleted file mode 100644 index b63df7dbc..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/BsonPack/SupportInitializeChecker.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6f55aa6e277b0964c87f3e2133f6e694 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/ProtoBufPackHelper/ProtoBufPackHelperNet.cs b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/ProtoBufPackHelper/ProtoBufPackHelperNet.cs deleted file mode 100644 index 87af2ee3e..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/ProtoBufPackHelper/ProtoBufPackHelperNet.cs +++ /dev/null @@ -1,258 +0,0 @@ -#if FANTASY_NET || FANTASY_EXPORTER -using System.Buffers; -using Fantasy.Assembly; -using Fantasy.Async; -using ProtoBuf.Meta; -namespace Fantasy.Serialize -{ - /// - /// ProtoBufP帮助类,Net平台使用 - /// - public sealed class ProtoBufPackHelper : ISerialize, IAssemblyLifecycle - { - /// - /// 序列化器的名字 - /// - public string SerializeName { get; } = "ProtoBuf"; - - #region AssemblyManifest - - internal async FTask Initialize() - { -#if FANTASY_NET - RuntimeTypeModel.Default.AutoAddMissingTypes = true; - RuntimeTypeModel.Default.AllowParseableTypes = true; - RuntimeTypeModel.Default.AutoAddMissingTypes = true; - RuntimeTypeModel.Default.AutoCompile = true; - RuntimeTypeModel.Default.UseImplicitZeroDefaults = true; - RuntimeTypeModel.Default.InferTagFromNameDefault = true; -#endif - await AssemblyLifecycle.Add(this); - return this; - } - - /// - /// - /// - /// 程序集清单对象,包含程序集的元数据和注册器 - public async FTask OnLoad(AssemblyManifest assemblyManifest) - { - var protoBufTypes = assemblyManifest.NetworkProtocolRegistrar.GetNetworkProtocolTypes(); - if (protoBufTypes.Any()) - { - foreach (var protoBufType in protoBufTypes) - { - RuntimeTypeModel.Default.Add(protoBufType, true); - } - RuntimeTypeModel.Default.CompileInPlace(); - } - await FTask.CompletedTask; - } - - /// - /// - /// - /// 程序集清单对象,包含程序集的元数据和注册器 - public async FTask OnUnload(AssemblyManifest assemblyManifest) - { - await FTask.CompletedTask; - } - - #endregion - - /// - /// 使用ProtoBuf反序列化数据到实例 - /// - /// - /// - /// - public T Deserialize(byte[] bytes) - { - var memory = new ReadOnlyMemory(bytes); - var @object = RuntimeTypeModel.Default.Deserialize(memory); - if (@object is ASerialize aSerialize) - { - aSerialize.AfterDeserialization(); - } - return @object; - } - /// - /// 使用ProtoBuf反序列化数据到实例 - /// - /// - /// - /// - public T Deserialize(MemoryStreamBuffer buffer) - { - var @object = RuntimeTypeModel.Default.Deserialize(buffer); - if (@object is ASerialize aSerialize) - { - aSerialize.AfterDeserialization(); - } - - return @object; - } - /// - /// 使用ProtoBuf反序列化数据到实例 - /// - /// - /// - /// - public object Deserialize(Type type, byte[] bytes) - { - var memory = new ReadOnlyMemory(bytes); - var @object = RuntimeTypeModel.Default.Deserialize(type, memory); - if (@object is ASerialize aSerialize) - { - aSerialize.AfterDeserialization(); - } - return @object; - } - /// - /// 使用ProtoBuf反序列化数据到实例 - /// - /// - /// - /// - public object Deserialize(Type type, MemoryStreamBuffer buffer) - { - var @object = RuntimeTypeModel.Default.Deserialize(type, buffer); - if (@object is ASerialize aSerialize) - { - aSerialize.AfterDeserialization(); - } - - return @object; - } - /// - /// 使用ProtoBuf反序列化数据到实例 - /// - /// - /// - /// - /// - /// - public T Deserialize(byte[] bytes, int index, int count) - { - var memory = new ReadOnlyMemory(bytes, index, count); - var @object = RuntimeTypeModel.Default.Deserialize(memory); - if (@object is ASerialize aSerialize) - { - aSerialize.AfterDeserialization(); - } - - return @object; - } - /// - /// 使用ProtoBuf反序列化数据到实例 - /// - /// - /// - /// - /// - /// - public object Deserialize(Type type, byte[] bytes, int index, int count) - { - var memory = new ReadOnlyMemory(bytes, index, count); - var @object = RuntimeTypeModel.Default.Deserialize(type, memory); - if (@object is ASerialize aSerialize) - { - aSerialize.AfterDeserialization(); - } - - return @object; - } - /// - /// 使用ProtoBuf序列化某一个实例到IBufferWriter中 - /// - /// - /// - /// - public void Serialize(T @object, IBufferWriter buffer) - { - if (@object is ASerialize aSerialize) - { - aSerialize.BeginInit(); - } - - RuntimeTypeModel.Default.Serialize(buffer, @object); - } - /// - /// 使用ProtoBuf序列化某一个实例到IBufferWriter中 - /// - /// - /// - public void Serialize(object @object, IBufferWriter buffer) - { - if (@object is ASerialize aSerialize) - { - aSerialize.BeginInit(); - } - - RuntimeTypeModel.Default.Serialize(buffer, @object); - } - /// - /// 使用ProtoBuf序列化某一个实例到IBufferWriter中 - /// - /// - /// - /// - public void Serialize(Type type, object @object, IBufferWriter buffer) - { - if (@object is ASerialize aSerialize) - { - aSerialize.BeginInit(); - } - - RuntimeTypeModel.Default.Serialize(buffer, @object); - } - /// - /// 使用ProtoBuf序列化某一个实例到byte[] - /// - /// - /// - public byte[] Serialize(object @object) - { - if (@object is ASerialize aSerialize) - { - aSerialize.BeginInit(); - } - - using (var buffer = new MemoryStream()) - { - RuntimeTypeModel.Default.Serialize(buffer, @object); - return buffer.ToArray(); - } - } - /// - /// 使用ProtoBuf序列化某一个实例到byte[] - /// - /// - /// - /// - public byte[] Serialize(T @object) - { - if (@object is ASerialize aSerialize) - { - aSerialize.BeginInit(); - } - - using (var buffer = new MemoryStream()) - { - RuntimeTypeModel.Default.Serialize(buffer, @object); - return buffer.ToArray(); - } - } - /// - /// 克隆 - /// - /// - /// - /// - public T Clone(T t) - { - return Deserialize(Serialize(t)); - } - } -} -#endif diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/ProtoBufPackHelper/ProtoBufPackHelperNet.cs.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/ProtoBufPackHelper/ProtoBufPackHelperNet.cs.meta deleted file mode 100644 index d8fe72c76..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Core/Serialize/ProtoBufPackHelper/ProtoBufPackHelperNet.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 056ea62959f5b6d46a38743df9d87585 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins.meta deleted file mode 100644 index d41816203..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/Runtime/Plugins.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: a362d81d3e84e894c99dd26f02e5cdba -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/Fantasy.Unity/package.json.meta b/Assets/Scripts/ThirdParty/Fantasy.Unity/package.json.meta deleted file mode 100644 index 7255d13f3..000000000 --- a/Assets/Scripts/ThirdParty/Fantasy.Unity/package.json.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 06e5db6eb0d1f4b4c8e51ac02346cbf4 -PackageManifestImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/ThirdParty/NBC/LICENSE b/Assets/Scripts/ThirdParty/NBC/LICENSE deleted file mode 100644 index 3c5a71991..000000000 --- a/Assets/Scripts/ThirdParty/NBC/LICENSE +++ /dev/null @@ -1,12 +0,0 @@ -MIT License - -Copyright (c) 2023 qq362946 - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -However, the following entity is explicitly prohibited from using, copying, modifying, or distributing the Software or any of its portions: - -泰课在线(https://www.taikr.com/) -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Assets/Scripts/ThirdParty/NBC/README.md b/Assets/Scripts/ThirdParty/NBC/README.md deleted file mode 100644 index 09d1c5ebf..000000000 --- a/Assets/Scripts/ThirdParty/NBC/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# Fantasy -#### Fantasy是基于.NET的高性能网络开发框架,支持主流协议,前后端分离。 -#### 支持Unity/Godot/WinFrom/WPF/Console等C#客户端接入。 -#### 框架支持TCP\KCP\WebSocket\http(支持Unity发布成H5)三种网络协议。 -#### 适合需要快速上手、可扩展、分布式全平台商业级解决方案的框架。 -## 导航 -* [Fantasy介绍网站](https://www.code-fantasy.com/) -* [Fantasy的API文档](https://www.code-fantasy.com/doc/api/Fantasy.html) -* [入门视频观看地址](https://space.bilibili.com/382126312) -## 快速上手 -* 01.快速入门 - * [1.1.获得Fantasy](https://www.code-fantasy.com/top/download-fantasy/) - * [1.2.配置文件](https://www.code-fantasy.com/top/config-file/) - * [1.3.Fantasy的网络](https://www.code-fantasy.com/top/use-network/) - * [1.4.Fantasy的配置文件](https://www.code-fantasy.com/top/config-file/) - * [1.5.Fantasy的命令行参数](https://www.code-fantasy.com/top/command-line-parameter/) - * [1.6.如何升级到最新版](https://www.code-fantasy.com/top/upgrade/) -* 02.网络通信 - * [2.1.配置网络协议](https://www.code-fantasy.com/network/network-protocols/) - * [2.2.客户端服务器之间发送消息](https://www.code-fantasy.com/network/session/) - * [2.3.服务器之间发送消息](https://www.code-fantasy.com/network/networkmessagingomponent/) - * [2.4.Route通信协议](https://www.code-fantasy.com/network/network-route/) - * [2.5.Addressable通信协议](https://www.code-fantasy.com/network/network-addressable/) -* 03.系统组件 - * [3.1.ECS系统](https://www.code-fantasy.com/core/ecs/) - * [3.2.事件系统](https://www.code-fantasy.com/core/event/) - * [3.3.任务系统](https://www.code-fantasy.com/core/task/) - * [3.4.异步协程锁](https://www.code-fantasy.com/core/lock/) - * [3.5.数据库](https://www.code-fantasy.com/core/db/) -* [更新日志](https://www.code-fantasy.com/changelog/) -* [API文档](https://www.code-fantasy.com/doc/api/Fantasy.html) -* [常见问题](https://www.code-fantasy.com/question/) - -## 优质开源项目推荐 -#### ET - ET框架是一整套完善的游戏开发框架。 -#### TEngine - TEngine是一个简单(新手友好开箱即用)且强大的Unity框架全平台解决方案。 -#### Legends-Of-Heroes - 一个LOL风格的球球大作战游戏,基于ET,使用状态同步。 -## 交流与讨论: -__讨论QQ群 : Fantasy服务器开发交流群 569888673 __ -## 特别鸣谢 - -感谢JetBrains公司提供的使用许可证! - -

-JetBrains的Logo

diff --git a/Assets/Scripts/ThirdParty/NBC/package.json b/Assets/Scripts/ThirdParty/NBC/package.json deleted file mode 100644 index 0dd8328c4..000000000 --- a/Assets/Scripts/ThirdParty/NBC/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "com.fantasy.unity", - "version": "2024.2.26", - "displayName": "Fantasy.Unity", - "description": "Fantasy is a cross platform distributed server framework.", - "category": "Network Framework", - "documentationUrl": "https://www.code-fantasy.com/", - "changelogUrl": "https://www.code-fantasy.com/", - "licensesUrl": "https://www.code-fantasy.com/", - "keywords": [ - "Fantasy", - "Framework", - "hotfix", - "Server", - "Network" - ], - "author": { - "name": "Fantasy", - "email": "362946@qq.com", - "url": "https://www.code-fantasy.com/" - }, - "dependencies": { - "com.unity.nuget.newtonsoft-json": "3.2.1" - } -} \ No newline at end of file diff --git a/Assets/Scripts/UI/Common/ModelViewer/ModelViewRenderImage.cs b/Assets/Scripts/UI/Common/ModelViewer/ModelViewRenderImage.cs index 7708cba90..1e19bf64a 100644 --- a/Assets/Scripts/UI/Common/ModelViewer/ModelViewRenderImage.cs +++ b/Assets/Scripts/UI/Common/ModelViewer/ModelViewRenderImage.cs @@ -111,7 +111,6 @@ namespace NBF _model = null; } - ResetToInitialRotation(); // _rotating = Vector3.zero; }