新增实验框架
This commit is contained in:
@@ -1,9 +1,6 @@
|
||||
using Convention;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using Convention.Experimental.PublicType;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Convention.Experimental
|
||||
{
|
||||
@@ -16,14 +13,23 @@ namespace Convention.Experimental
|
||||
/// </summary>
|
||||
/// <param name="moduleType">Ҫ<><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><see cref="GameModule"/><3E><><EFBFBD><EFBFBD></param>
|
||||
/// <returns>Ҫ<><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><see cref="GameModule"/></returns>
|
||||
private static GameModule CreateModule(Type moduleType)
|
||||
private static GameModule CreateModule(Type moduleType, int stackLayer = 0)
|
||||
{
|
||||
if (stackLayer >= 100)
|
||||
{
|
||||
throw new GameException($"Create module '{moduleType.FullName}' failed, recursion too deep, there may be a circular dependency.");
|
||||
}
|
||||
|
||||
GameModule module = (GameModule)Activator.CreateInstance(moduleType);
|
||||
if (module == null)
|
||||
{
|
||||
throw new GameException($"Can not create module '{moduleType.FullName}'");
|
||||
}
|
||||
|
||||
// <20>ݹ鴴<DDB9><E9B4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
|
||||
foreach (var dependenceType in module.Dependences())
|
||||
_ = GetModule(dependenceType, stackLayer + 1);
|
||||
|
||||
LinkedListNode<GameModule> current = s_GameFrameworkModules.First;
|
||||
while (current != null)
|
||||
{
|
||||
@@ -53,7 +59,7 @@ namespace Convention.Experimental
|
||||
/// <param name="moduleType">Ҫ<><D2AA>ȡ<EFBFBD><C8A1><see cref="GameModule"/></param>
|
||||
/// <returns>Ҫ<><D2AA>ȡ<EFBFBD><C8A1><see cref="GameModule"/></returns>
|
||||
/// <remarks><3E><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ȡ<EFBFBD><C8A1><see cref="GameModule"/><3E><><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><see cref="GameModule"/>ʵ<><CAB5><EFBFBD><EFBFBD></remarks>
|
||||
private static GameModule GetModule(Type moduleType)
|
||||
private static GameModule GetModule(Type moduleType, int stackLayer = 0)
|
||||
{
|
||||
foreach (GameModule module in s_GameFrameworkModules)
|
||||
{
|
||||
@@ -63,7 +69,7 @@ namespace Convention.Experimental
|
||||
}
|
||||
}
|
||||
|
||||
return CreateModule(moduleType);
|
||||
return CreateModule(moduleType, stackLayer + 1);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user