Объявление
public static GameObject CreateGameObjectWithHideFlags(string name, HideFlags flags, params Type[] components);Описание
Создает игровой объект с HideFlags и указанными компонентами.
Это очень похоже на создание GameObject обычным способом, за исключением того, что немедленно устанавливает указанные HideFlags.

using UnityEngine;
using UnityEditor;
public class CreateGOHideFlagsExample : EditorWindow
{
string objName = "GameObject";
int instanceID = 0;
bool create = true;
GameObject go = null;
bool hideHierarchy = false;
[MenuItem("Example/GameObjectFlags")]
static void Init()
{
// Get existing open window or if none, make a new one:
CreateGOHideFlagsExample window = (CreateGOHideFlagsExample)EditorWindow.GetWindow(typeof(CreateGOHideFlagsExample));
window.Show();
}
void OnGUI()
{
create = EditorGUILayout.Toggle("Create a GO:", create);
GUI.enabled = create;
objName = EditorGUILayout.TextField("GameObject Name:", objName);
if (GUILayout.Button("Create"))
{
GameObject created = EditorUtility.CreateGameObjectWithHideFlags(objName,
hideHierarchy ? HideFlags.HideInHierarchy : 0);
instanceID = created.GetInstanceID();
Debug.Log("Created GameObject ID: " + instanceID);
}
GUI.enabled = !create;
EditorGUILayout.BeginHorizontal();
instanceID = EditorGUILayout.IntField("Instance ID:", instanceID);
if (GUILayout.Button("Search & Update flags"))
{
go = null;
go = EditorUtility.InstanceIDToObject(instanceID) as GameObject;
if (go)
go.hideFlags = hideHierarchy ? HideFlags.HideInHierarchy : 0;
}
EditorGUILayout.EndHorizontal();
if (!go)
EditorGUILayout.LabelField("Object: ", (go == null) ? "No object was found" : go.name);
GUI.enabled = true;
hideHierarchy = EditorGUILayout.Toggle("HideInHierarchy", hideHierarchy);
}
void OnInspectorUpdate()
{
Repaint();
}
}