Unity在菜单栏创建按钮,点击按钮创建一个窗口,在窗口上创建 Toggle、TextField、button等, 在窗口创建了一个Create按钮,点击按钮创建对象
勾选 Create a GO: 的Toggle,显示Create按钮
点击Create按钮,在 Hierarchy 窗口创建 对象“aaa” “ccc”
选中 “aaa”,Inspector窗口如下所示
选中 “cccc” 在,Inspector窗口如下所示,”cccc“绑定的组件在Inspector面板隐藏
在Editor文件夹下创建脚本
using UnityEngine;
using System.Collections;
using UnityEditor;
public class TestEditor : EditorWindow
{
private string objName = "GameObject";
private int instanceID = 0;
private bool create = true;
private GameObject go = null;
private bool hideHierarchy = true;
[MenuItem("Examples/GameObject flags")]
static void Init()
{
TestEditor window = (TestEditor)GetWindow(typeof(TestEditor)); //初始化一个窗口
window.Show();
}
void OnGUI()
{
create = EditorGUILayout.Toggle("Create a GO:", create); //在窗口创建一个 Toggle
GUI.enabled = create; //GUI是否可以创建
objName = EditorGUILayout.TextField("GameObject Name:", objName); //创建文本框
if (GUILayout.Button("Create")) //创建按钮
{ //点击按钮,创建一个GameObject
GameObject created = EditorUtility.CreateGameObjectWithHideFlags(
objName,
hideHierarchy ? HideFlags.HideInHierarchy : 0);
//HideFlags.HideInHierarchy 对象在Hierarchy 窗口隐藏
//HideFlags.HideInInspector 对象在Hierarchy窗口可见,点击该对象,在Inspector面板不显示任何属性
GameObject ccc = EditorUtility.CreateGameObjectWithHideFlags("cccc", HideFlags.HideInInspector);
Debug.Log("Created GameObject ID: " + created.GetInstanceID());
}
GUI.enabled = !create;
EditorGUILayout.BeginHorizontal(); //开始水平布局
instanceID = EditorGUILayout.IntField("Instance ID:", instanceID); //创建一个 整数输入框
if (GUILayout.Button("Search & Update flags")) //创建一个按钮,更新flags
{
go = null;
go = (GameObject)EditorUtility.InstanceIDToObject(instanceID); //给该对象实例化一个ID
if (go)
go.hideFlags = hideHierarchy ? HideFlags.HideInHierarchy : 0;
}
EditorGUILayout.EndHorizontal(); //结束水平布局
if (!go)
EditorGUILayout.LabelField("Object: ", "No object was found");
else
EditorGUILayout.LabelField("Object: ", go.name);
GUI.enabled = true;
hideHierarchy = EditorGUILayout.Toggle("HideInHierarchy", hideHierarchy); //创建一个Toggle ,
}
}