Unity RuntimeInitializeOnLoadMethod 以及其他扩展 Attribute


Unity 5.0开始增加了RuntimeInitializeOnLoadMethodAttribute,这样就很方便在游戏初始化之前做一些额外的初始化工作,比如:Bulgy参数设置、SDK初始等工作。

1. 我们来看看他所处生命周期的位置:

public class ExampleClass : MonoBehaviour
{
    private void Awake()
    {
        Debug.Log( "Awake" );
    }

    private void OnEnable()
    {
        Debug.Log( "OnEnable" );
    }

    private void Start()
    {
        Debug.Log( "Start" );
    }

    [RuntimeInitializeOnLoadMethod]
    private static void OnRuntimeMethodLoad()
    {
        Debug.Log( "RuntimeInitializeOnLoadMethod" );
    }
}

结果为:
在这里插入图片描述

2. 它还有两个属性:RuntimeInitializeLoadType.BeforeSceneLoad | RuntimeInitializeLoadType.AfterSceneLoad:

public class ExampleClass : MonoBehaviour
{
    [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
    static void OnBeforeSceneLoadRuntimeMethod ()
    {
        Debug.Log("Before scene loaded");
    }

    void Awake()
    {
        Debug.Log("Awake");
    }
    void OnEnable()
    {
        Debug.Log("OnEnable");
    }

    [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)]
    static void OnAfterSceneLoadRuntimeMethod()
    {
        Debug.Log("After scene loaded");
    }

    [RuntimeInitializeOnLoadMethod]
    static void OnRuntimeMethodLoad()
    {
        Debug.Log("RuntimeMethodLoad: After scene loaded");
    }

    void Start()
    {
        Debug.Log("Start");
    }

}

结果为:
在这里插入图片描述
3. 想必看到这里你就知道怎么用了吧,那赶紧用起来吧,骚年

4. 顺便附一张MonoBehaviour的生命周期图
在这里插入图片描述

5. 顺便在记录一下Unity提供的其他Attribute。如果你想搞点插件什么的,说不定用的上

注意: 在使用的时候"XXXXAttribute"的时候需要去除”Attribute“使用。
想知道为什么。希望这篇文章对你有用:https://blog.csdn.net/KiTok/article/details/90324325

属性名功能
AddComponentMenu导航栏菜单
ContextMenu右键菜单
HeaderAttribute为属性添加头描述
HideInInspector可以让public变量在Inspector上隐藏,无法在Editor中进行编辑
MultilineAttribute支持输入多行文本
RangeAttribute限定输入值的范围
RequireComponent组件依赖,使用该组件后自动添加依赖组件
RuntimeInitializeOnLoadMethodAttribute上文说喽
SerializeField强制对变量进行序列化,即使变量是private
SpaceAttribute增加空位
TooltipAttribute提示信息,当鼠标移到Inspector上时显示相应的提示
InitializeOnLoadAttribute允许在Unity加载时初始化编辑器类,而不需要用户进行操作
InitializeOnLoadMethodAttributeUnity启动而无需用户操作,就可以在项目中运行一些编辑器脚本代码
MenuItem导航栏的菜单项
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值