Unity之CreateGameObjectWithHideFlags-四

来源:互联网 发布:问卷收集分析软件 编辑:程序博客网 时间:2024/05/29 10:58

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 ,    }}









































0 0
原创粉丝点击