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