diff --git a/Assets/ModuleCore/ModuleAssets/ModuleAssets.cs b/Assets/ModuleCore/ModuleAssets/ModuleAssets.cs index 9f19ff9..1249f76 100644 --- a/Assets/ModuleCore/ModuleAssets/ModuleAssets.cs +++ b/Assets/ModuleCore/ModuleAssets/ModuleAssets.cs @@ -35,3 +35,24 @@ public class ModuleAssets { /// 循环列表 public virtual void ForEach(Action action) => Datas.ForEach(action); } +/// +/// 资源模块工具 +/// +public static class ModuleAssetsTool { + /// 头尾循环标准化索引 + public static Data LoopIndex(this ModuleAssets assets, int index) { + return assets[LoopIndex(index, assets.Count)]; + } + /// 头尾循环标准化索引 + public static Data LoopIndex(this List list, int index) { + return list[LoopIndex(index, list.Count)]; + } + /// 头尾循环标准化索引 + public static Data LoopIndex(this Data[] array, int index) { + return array[LoopIndex(index, array.Length)]; + } + /// 头尾循环标准化索引 + public static int LoopIndex(int index, int maxIndex) { + return index % maxIndex; + } +} \ No newline at end of file diff --git a/Assets/ModuleCore/ModuleCore.cs b/Assets/ModuleCore/ModuleCore.cs index 3b2ae4f..0c021f0 100644 --- a/Assets/ModuleCore/ModuleCore.cs +++ b/Assets/ModuleCore/ModuleCore.cs @@ -8,3 +8,14 @@ using UnityEngine; public class ModuleCore : Module { } +/// +/// 模块基类 +/// +/// +public class Module where ModuleCore : Module, new() { + /// 模块单例 + public static ModuleCore I => Instantiate(); + + private static ModuleCore core; + private static ModuleCore Instantiate() => core == null ? core = new ModuleCore() : core; +} \ No newline at end of file diff --git a/Assets/ModuleTools/ModuleTool/ModuleSingle.cs b/Assets/ModuleSingle/ModuleSingle.cs similarity index 100% rename from Assets/ModuleTools/ModuleTool/ModuleSingle.cs rename to Assets/ModuleSingle/ModuleSingle.cs diff --git a/Assets/ModuleTools/ModuleTool/ModuleSingle.cs.meta b/Assets/ModuleSingle/ModuleSingle.cs.meta similarity index 100% rename from Assets/ModuleTools/ModuleTool/ModuleSingle.cs.meta rename to Assets/ModuleSingle/ModuleSingle.cs.meta diff --git a/Assets/ModuleTools/LoopIndexTool.cs b/Assets/ModuleTools/LoopIndexTool.cs deleted file mode 100644 index e3e14f3..0000000 --- a/Assets/ModuleTools/LoopIndexTool.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -public static class LoopIndexTool { - /// 头尾循环标准化索引 - public static Data LoopIndex(this List list, int index) { - return list[LoopIndex(index, list.Count)]; - } - /// 头尾循环标准化索引 - public static Data LoopIndex(this Data[] array, int index) { - return array[LoopIndex(index, array.Length)]; - } - /// 头尾循环标准化索引 - public static int LoopIndex(int index, int maxIndex) { - if (maxIndex == 0) { Debug.LogError("错误索引:maxIndex = 0"); return 0; } - if (index < 0) { return LoopIndex(index + maxIndex, maxIndex); } - if (index >= maxIndex) { return LoopIndex(index - maxIndex, maxIndex); } - return index; - } -} diff --git a/Assets/ModuleTools/LoopIndexTool.cs.meta b/Assets/ModuleTools/LoopIndexTool.cs.meta deleted file mode 100644 index 107f610..0000000 --- a/Assets/ModuleTools/LoopIndexTool.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f410a5e521f087048804a823d1c02e6c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/ModuleTools/ModuleTool.meta b/Assets/ModuleTools/ModuleTool.meta deleted file mode 100644 index dfe845d..0000000 --- a/Assets/ModuleTools/ModuleTool.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: de13e4c89e97faf45b5d383070fd8e5e -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/ModuleTools/ModuleTool/Module.cs b/Assets/ModuleTools/ModuleTool/Module.cs deleted file mode 100644 index 9cf1683..0000000 --- a/Assets/ModuleTools/ModuleTool/Module.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -/// -/// 模块基类 -/// -/// -public class Module where ModuleCore : Module, new() { - /// 模块单例 - public static ModuleCore I => Instantiate(); - - private static ModuleCore core; - private static ModuleCore Instantiate() => core == null ? core = new ModuleCore() : core; -} diff --git a/Assets/ModuleTools/ModuleTool/Module.cs.meta b/Assets/ModuleTools/ModuleTool/Module.cs.meta deleted file mode 100644 index d72d566..0000000 --- a/Assets/ModuleTools/ModuleTool/Module.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 86acb6fd9f576cc458df7bcc1581c098 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: