编辑器脚本所附的Unity Access脚本

时间:2018-08-01 10:43:53

标签: c# unity3d

我正在为某种类型的组件脚本创建编辑器脚本,我想访问由该编辑器脚本实例引用的特定组件脚本。例如,目标返回编辑器附加到的游戏对象,但我想在其中获取实际的脚本组件。游戏对象可能具有这种类型的多个组件,因此需要获取特定的组件。

[CustomEditor(typeof(CameraCutscene))] //Attaches to the CameraCutscene script
public class CutsceneEditor : Editor
{
    private CameraCutscene cameraCutscene;

    private void OnEnable()
    {
        Debug.Log(target.name);
        cameraCutscene = (CameraCutscene)target; //Attempt to cast to the script type but target returns the actual game object
    }
}

1 个答案:

答案 0 :(得分:3)

import datetime dt = "2018-06-07T12:22:00+0200" ndt = datetime.datetime.strptime(dt, "%Y-%m-%dT%H:%M:%S%z") # output 2018-06-07 12:22:00+02:00 变量是target的类型。要从附加的脚本访问组件,请将UnityEditor.Object强制转换为UnityEditor.Object,然后使用MonoBehaviour函数来获取组件。

GetComponent
  

游戏对象可能具有这种类型的多个组件,因此需要   得到特定的一个。

如果您需要访问附加到相同目标的MonoBehaviour monoBev = (MonoBehaviour)target; CameraCutscene cameraCutscene = monoBev.GetComponent<CameraCutscene>(); 脚本的多个实例,请使用CameraCutscene,它返回附加到目标的组件的数组。注意其中的“ s”。请注意,未记录它们的返回顺序。

GetComponents