Unity F8 Module模块中心组件。提供三种模块可使用。
- 游戏模块 Module / ModuleMono,延时加载,可控顺序,控制所有模块的,获取/初始化/轮询/销毁。
- 静态模块 StaticModule ,随着游戏一同初始化,无顺序,提供 OnEnterGame / OnQuitGame 方法。
注意!内置在->F8Framework核心:https://github.com/TippingGame/F8Framework.git
方式一:直接下载文件,放入Unity
方式二:Unity->点击菜单栏->Window->Package Manager->点击+号->Add Package from git URL->输入:https://github.com/TippingGame/F8Framework.git
/*----------------------------模块中心功能----------------------------*/
// 初始化模块中心
ModuleCenter.Initialize(this);
// 创建模块,(参数可选,优先级越小越早轮询)
int priority = 100;
ModuleCenter.CreateModule<TimerManager>(priority);
// 通过ModuleCenter调用模块方法
ModuleCenter.GetModule<TimerManager>().GetServerTime();
// 通过获取实例调用模块方法
TimerManager.Instance.GetServerTime();
// 继承ModuleSingletonMono创建模块,按需添加Update特性
[UpdateRefresh]
[LateUpdateRefresh]
[FixedUpdateRefresh]
public class DemoModuleCenterClass : ModuleSingleton<DemoModuleCenterClass>, IModule
{
public void OnInit(object createParam)
{
// 模块创建初始化
}
public void OnUpdate()
{
// 模块Update
}
public void OnLateUpdate()
{
// 模块LateUpdate
}
public void OnFixedUpdate()
{
// 模块FixedUpdate
}
public void OnTermination()
{
// 模块销毁
Destroy(gameObject);
}
}
/*----------------------------自定义静态模块功能----------------------------*/
// 获取所有静态模块,并调用进入游戏
foreach (var center in StaticModule.GetStaticModule())
{
center.Value.OnEnterGame();
}
// 获取指定静态模块
StaticModule demo = StaticModule.GetStaticModuleByType(typeof(StaticModuleClass));
// 使用静态模块
StaticModuleClass.Instance.OnEnterGame();
// 继承StaticModule的自定义模块
public class StaticModuleClass : StaticModule
{
public static StaticModuleClass Instance => GetInstance<StaticModuleClass>();
protected override void Init()
{
// 初始化StaticModule
}
public override void OnEnterGame()
{
// 进入游戏
}
public override void OnQuitGame()
{
// 退出游戏
}
}