问题
如果点击Play之后有一些代码执行了,而你又完全找不到调用者。
那么,作者很有可能使用了以下的这些小技巧,它们的特点是只要进入Playmode就会自动执行。
InitializeOnLoad属性
允许在 Unity 加载时和重新编译脚本时初始化 Editor 类。
重新编译项目中的脚本时,会调用带有此属性的静态构造函数(也称为域重新加载)。
在 Unity 首次加载项目时、在 Unity 检测到脚本修改时(取决于自动刷新首选项),以及当进入运行模式时(取决于运行模式配置),会进行此调用。
代码示例如下:
using UnityEngine;
using UnityEditor;
[InitializeOnLoad]
public class Startup {
static Startup()
{
Debug.Log("Up and running");
}
}
InitializeOnLoadMethod属性
允许在 Unity 加载时初始化编辑器类方法,无需用户操作。
using UnityEngine

本文介绍了Unity中几种在PlayMode下立即运行的属性,如InitializeOnLoad用于在Unity加载时初始化Editor类,InitializeOnLoadMethod允许在加载时初始化编辑器类方法,PostProcessScene则是在构建场景后或进入PlayMode时触发。此外,还讲解了playModeStateChanged事件,它在进入或退出PlayMode时执行相关代码。这些特性对于开发者在Unity编辑器中实现特定功能非常有用。
最低0.47元/天 解锁文章
1389

被折叠的 条评论
为什么被折叠?



