Unity 3D:在这个SendMessage中使用了什么方法



我有一个脚本当前正在运行OnValidate((,以便在编辑器中更新GameObject。有时,当事情重置时,脚本会运行以下行:

private void OnValidate()
{
if (reset == true)
{
obj.transform.parent = transform;
}
}

作为回报,我在控制台中收到了一些警告,如下所示:

SendMessage cannot be called during Awake, CheckConsistency, or OnValidate
UnityEngine.Transform:set_parent(Transform)
Planet:Initialize() (at Assets/Planet.cs:46)
Planet:OnValidate() (at Assets/Planet.cs:20)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

所以我的问题是:程序试图使用SendMessage发送什么消息/方法,但无法调用

请参阅https://forum.unity.com/threads/sendmessage-cannot-be-called-during-awake-checkconsistency-or-onvalidate.428580/#post-2772943

显然,set_parent在背后使用SendMessage,这可能会在OnValidate调用中产生问题。

最新更新