运行时属性

[ExecuteInEditMode]
public class AttributesExample : MonoBehaviour 
{

    [RuntimeInitializeOnLoadMethod]
    private static void FooBar() 
    {
        [...]
    }

    [RuntimeInitializeOnLoadMethod( RuntimeInitializeLoadType.BeforeSceneLoad )]
    private static void Foo() 
    {
        [...]
    }

    [RuntimeInitializeOnLoadMethod( RuntimeInitializeLoadType.AfterSceneLoad )]
    private static void Bar() 
    {
        [...]
    }

    void Update() 
    {
        if ( Application.isEditor )
        {
            [...]
        } 
        else
        {
            [...]
        }
    }
}
[ExecuteInEditMode]
public class AttributesExample : MonoBehaviour 

即使游戏没有播放,ExecuteInEditMode 属性也会强制 Unity 执行此脚本的魔术方法。

这些功能不像播放模式那样经常被调用

  • 仅在场景中的某些内容发生更改时调用更新。
  • 当游戏视图收到事件时调用 OnGUI。
  • 在场景视图或游戏视图的每次重绘时都会调用 OnRenderObject 和其他渲染回调函数。
[RuntimeInitializeOnLoadMethod]
private static void FooBar()

[RuntimeInitializeOnLoadMethod( RuntimeInitializeLoadType.BeforeSceneLoad )]
private static void Foo() 

[RuntimeInitializeOnLoadMethod( RuntimeInitializeLoadType.AfterSceneLoad )]
private static void Bar() 

RuntimeInitializeOnLoadMethod 属性允许在游戏加载运行时调用运行时类方法,而无需用户进行任何交互。

你可以指定是否要在场景加载之前或之后调用方法(默认之后)。使用此属性的方法无法保证执行顺序。