C# 在Unity编辑器中调用函数
我需要一个脚本,它在子脚本中包含大量的单行为,并以特定的方式将它们排列到父脚本中的列表中,以将父脚本保存为预置。用手去做这件事需要很长时间。我不想在运行时的Start()中这样做,因为这些预置可能会在每帧中实例化很多次,并且在子帧中搜索脚本时会导致微小的延迟峰值。那么,如何在编辑器中执行一次,以保存对Prefable的所有引用?从未做过类似的事情,但在自定义检查器中看到了为插件调用函数的按钮。我尝试了[ExecuteInEditMode],结果很好,但它也会在运行时继续执行,所以我想知道,在编辑器中调用一个函数并使其在运行时不起作用最简单的方法是什么?尝试以下方法:C# 在Unity编辑器中调用函数,c#,unity3d,C#,Unity3d,我需要一个脚本,它在子脚本中包含大量的单行为,并以特定的方式将它们排列到父脚本中的列表中,以将父脚本保存为预置。用手去做这件事需要很长时间。我不想在运行时的Start()中这样做,因为这些预置可能会在每帧中实例化很多次,并且在子帧中搜索脚本时会导致微小的延迟峰值。那么,如何在编辑器中执行一次,以保存对Prefable的所有引用?从未做过类似的事情,但在自定义检查器中看到了为插件调用函数的按钮。我尝试了[ExecuteInEditMode],结果很好,但它也会在运行时继续执行,所以我想知道,在编辑
[ExecuteInEditMode]
public class YourClass : MonoBehaviour
{
void Update()
{
if (!Application.isPlaying)
{
Debug.Log("This should only run in edit mode.");
// More code
}
}
}
根据您的具体操作,可能有比
ExecuteInEditMode
更好的触发方法,但这是获得所需效果的最简单方法。只要应用程序返回true,它就不会运行。因此,它永远不会在播放模式下运行,也不会在任何版本中运行。请尝试以下操作:
[ExecuteInEditMode]
public class YourClass : MonoBehaviour
{
void Update()
{
if (!Application.isPlaying)
{
Debug.Log("This should only run in edit mode.");
// More code
}
}
}
根据您的具体操作,可能有比ExecuteInEditMode
更好的触发方法,但这是获得所需效果的最简单方法。只要应用程序返回true,它就不会运行。因此,它永远不会在播放模式下运行,也不会在任何版本中运行