Unity在运行时用来初始化代码的特性标签

如果Unity开发中,我们期望在运行时中不通过外部调用的情况下能够主动的对代码框架进行初始化、对象实例生成等操作,可以使用RuntimeInitializeOnLoadMethod特性来实现

示例代码放到Unity Editor的Assets目录下运行即可看到打印出的日志内容。日志内容描述了方法执行的时间节点。

using UnityEngine;

public static class RuntimeInitializer
{
    [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)]
    static void SubsystemRegistration()
    {
        Debug.Log($"1_SubsystemRegistration_用于子系统注册的回调");
    }
    
    [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterAssembliesLoaded)]
    static void AfterAssembliesLoaded()
    {
        Debug.Log($"2_AfterAssembliesLoaded_加载完所有程序集并初始化预加载资源时的回调");
    }
    
    [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSplashScreen)]
    static void BeforeSplashScreen()
    {
        Debug.Log($"3_BeforeSplashScreen_在显示启动画面之前");
    }
    
    [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
    static void BeforeSceneLoad()
    {
        Debug.Log($"4_BeforeSceneLoad_在场景加载前");
    }
    
    [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)]
    static void AfterSceneLoad()
    {
        Debug.Log($"5_AfterSceneLoad_在场景加载后");
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容