Unity之CreateGameObjectWithHideFlags-四

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值