【发布时间】:2019-01-31 12:43:55
【问题描述】:
我使用 Unity 已经有一段时间了,但从未尝试过编辑器。今天我决定尝试制作一个 EditorWindow 来帮助我的开发捷径。
我想要的是单击窗口上的按钮来打开和关闭场景中的特定灯光。
在下面添加了代码和窗口的图像。
我不知道如何继续。任何帮助将不胜感激!
public class DevTools : EditorWindow
{
public Object workLight;
[MenuItem("Window/DevTools")]
public static void ShowWindow()
{
GetWindow<DevTools>("Development Tools");
}
private void OnGUI()
{
GUILayout.Label("This is the development tools.", EditorStyles.boldLabel);
workLight = EditorGUILayout.ObjectField(workLight, typeof(object), true);
if (GUILayout.Button("Working Light"))
{
if(workLight == null)
{
ShowNotification(new GUIContent("No light selected"));
}
else
{
}
}
}
}
【问题讨论】:
-
请在问题中输入代码
-
您需要将
workLight对象转换为实际的Light或 Unity 中的任何等效类型,这样您就可以访问灯光的属性/方法并调用适当的方法 -只是看一下文档,因为所有对象都是 GameObject 实例,您需要使用GetComponent<Light>()从实例中获取Light组件-您的workLight不应该是GameObject类型吗?如果没有,我假设您可以直接投射,然后使用GetComponent?
标签: c# visual-studio unity3d