在Unity编辑器中调用函数

时间:2018-08-30 15:35:15

标签: c# unity3d

我需要一个脚本,该脚本需要在子级中处理大量的单行为,并以特定方式将其排列到父级脚本的列表中,以将父级保存为预制件。手工做将需要永恒。而且我不想在运行时在Start()中执行此操作,因为这些预制件可能每帧被实例化很多次,并且在搜索儿童脚本时会导致最小的延迟尖峰。那么,如何在编辑器中一次将所有引用保存到预制件呢?从来没有做过这样的事情,但是在自定义检查器中看到了调用插件功能的按钮。我尝试了[ExecuteInEditMode],它给出了很好的结果,但是它仍然可以在运行时继续执行,所以问问在编辑器中调用一个函数并使之在运行时不起作用最简单的方法是什么?

1 个答案:

答案 0 :(得分:2)

尝试这样的事情:

[ExecuteInEditMode]
public class YourClass : MonoBehaviour
{
    void Update()
    {
        if (!Application.isPlaying)
        {
            Debug.Log("This should only run in edit mode.");
            // More code
        }
    }
}

取决于您要确切执行的操作,可能有比ExecuteInEditMode更好的方法来触发此操作,但这是获得所需效果的最简单方法。只要Application.isPlaying返回true,它就不会运行。因此它永远不会在播放模式下运行,也永远不会在任何版本中运行。