F8 Module

April 19, 2026 · View on GitHub

license Unity Version Platform

简介(希望自己点击F8,就能开始制作游戏,不想多余的事)

Unity F8 Module模块中心组件。提供三种模块可使用。

  1. 游戏模块 Module / ModuleMono,延时加载,可控顺序,控制所有模块的,获取/初始化/轮询/销毁。
  2. 静态模块 StaticModule ,使用时一同初始化,无顺序,提供 OnEnterGame / OnQuitGame 方法。
  3. 活动模块 ActivityModule,使用时一同初始化,无顺序,提供静态模块的方法外,还有刷新状态/状态变化/是否解锁/是否可见/是否开启/添加条件等方法。

导入插件(需要首先导入核心)

注意!内置在->F8Framework核心:https://github.com/TippingGame/F8Framework.git
方式一:直接下载文件,放入Unity
方式二:Unity->点击菜单栏->Window->Package Manager->点击+号->Add Package from git URL->输入:https://github.com/TippingGame/F8Framework.git

视频教程:【Unity框架】(3)模块管理

创建模板

  1. 右键资源文件夹,看到(F8模块中心功能),创建模板 Module / ModuleMono / StaticModule / ActivityModule
    image

代码使用方法

/*----------------------------模块中心功能----------------------------*/

// 初始化模块中心
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);
    }
}

/*----------------------------自定义静态模块功能----------------------------*/

// 获取所有静态模块,并调用进入游戏
StaticModule.EnterGameAllModules();

// 获取指定静态模块
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()
    {
        // 退出游戏
    }
}

/*----------------------------自定义活动模块功能----------------------------*/

// 控制所有活动模块的API
ActivityModule.EnterGameAllModules();
ActivityModule.RefreshAllModules();
ActivityModule.QuitGameAllModules();
ActivityModule.ReleaseAllModules();

public class ActivityModuleClass : ActivityModule
{
    public static ActivityModuleClass Instance => GetInstance<ActivityModuleClass>();

    // 初始化活动模块
    protected override void Init()
    {
    }

    // 进入游戏
    public override void OnEnterGame()
    {
    }

    // 退出游戏
    public override void OnQuitGame()
    {
    }

    // 模块释放
    protected override void OnDispose()
    {
    }

    // 状态变化
    protected override void OnStateChanged(ActivityModuleState previousState, ActivityModuleState currentState)
    {
    }

    // 解锁状态变化
    protected override void OnUnlockStateChanged(bool previousValue, bool currentValue)
    {
    }

    // 显示状态变化
    protected override void OnVisibleStateChanged(bool previousValue, bool currentValue)
    {
    }

    // 开启状态变化
    protected override void OnOpenStateChanged(bool previousValue, bool currentValue)
    {
    }

    // 解锁条件(需自定义条件)
    protected override bool EvaluateUnlockedCore()
    {
        return false;
    }

    // 显示条件(需自定义条件)
    protected override bool EvaluateVisibleCore(bool isUnlocked)
    {
        return false;
    }

    // 开启条件(需自定义条件)
    protected override bool EvaluateOpenCore(bool isUnlocked)
    {
        return false;
    }
}