1234567891011121314151617181920212223242526272829303132333435363738 |
- using System;
- namespace XGame.Framework
- {
- internal static class GameLogicCreator
- {
- public static IGameLogicProxy Create()
- {
- var config = XGameConfig.Load();
- var gameLogicTypeName = config?.gameLogicTypeName ?? string.Empty;
- XGameConfig.Unload(config);
- var gameLogic = CreateGameLogic(gameLogicTypeName);
- var proxy = new CLRGameLogicProxy(gameLogic);
- proxy.Init();
- return proxy;
- }
- private static IGameLogic CreateGameLogic(string gameLogicTypeName)
- {
- if (string.IsNullOrEmpty(gameLogicTypeName))
- {
- Log.Error($"GameLogic 名字为空. Name:{gameLogicTypeName}");
- return null;
- }
- var type = Type.GetType(gameLogicTypeName);
- if (type == null)
- {
- Log.Error($"GameLogic Type为空. Name:{gameLogicTypeName}");
- return null;
- }
- var instance = Activator.CreateInstance(type) as IGameLogic;
- if (instance == null)
- {
- Log.Error($"GameLogic 实例化失败. Name:{gameLogicTypeName}");
- }
- return instance;
- }
- }
- }
|