Объявление
public static bool BeginFoldoutHeaderGroup(bool foldout, string content, GUIStyle style = EditorStyles.foldoutHeader, Actionpublic static bool BeginFoldoutHeaderGroup(bool foldout, GUIContent content, GUIStyle style = EditorStyles.foldoutHeader, Action
Параметры
foldout | Показан в разложенном состоянии. |
content | Ярлык для отображения. |
style | Необязательный стиль GUIStyle. |
menuAction | Действие, которое происходит при нажатии на значок. |
menuIcon | Необязательный GUIStyle для значка. |
Возвращает
bool Состояние раскрытия, выбранное пользователем. Если это правда, вы должны визуализировать подобъекты.
Описание
Создаёт метку с развернутой стрелкой слева от нее.
Это полезно для структур, похожих на папки, где дочерние объекты появляются только в том случае, если вы развернули родительскую папку. Этот элемент управления не может быть вложен в другую группу BeginFoldoutHeaderGroup. Чтобы использовать несколько таких раскладок, вы должны заканчивать каждый метод EndFoldoutHeaderGroup.

// Создать складное меню заголовка, которое скрывает или показывает выбранную позицию Transform.
// Если вы не выбрали Transform, элемент Foldout остается свернутым, пока
// вы выбираете преобразование.
using UnityEditor;
using UnityEngine;
public class FoldoutHeaderUsage : EditorWindow
{
bool showPosition = true;
string status = "Select a GameObject";
[MenuItem("Examples/Foldout Header Usage")]
static void CreateWindow()
{
GetWindow();
}
public void OnGUI()
{
showPosition = EditorGUILayout.BeginFoldoutHeaderGroup(showPosition, status);
if (showPosition)
if (Selection.activeTransform)
{
Selection.activeTransform.position =
EditorGUILayout.Vector3Field("Position", Selection.activeTransform.position);
status = Selection.activeTransform.name;
}
if (!Selection.activeTransform)
{
status = "Select a GameObject";
showPosition = false;
}
// End the Foldout Header that we began above.
EditorGUILayout.EndFoldoutHeaderGroup();
}
}
Create a menu item action that moves the selected object to 0,0,0 when you click it.
// Create a foldable header menu that hides or shows the selected Transform position.
// If you have not selected a Transform, the Foldout item stays folded until
// you select a Transform.
using UnityEditor;
using UnityEngine;
public class FoldoutHeaderUsage : EditorWindow
{
bool showPosition = true;
string status = "Select a GameObject";
[MenuItem("Examples/Foldout Header Usage")]
static void CreateWindow()
{
GetWindow();
}
public void OnGUI()
{
showPosition = EditorGUILayout.BeginFoldoutHeaderGroup(showPosition, status, null, ShowHeaderContextMenu);
if (showPosition)
if (Selection.activeTransform)
{
Selection.activeTransform.position =
EditorGUILayout.Vector3Field("Position", Selection.activeTransform.position);
status = Selection.activeTransform.name;
}
if (!Selection.activeTransform)
{
status = "Select a GameObject";
showPosition = false;
}
// End the Foldout Header that we began above.
EditorGUILayout.EndFoldoutHeaderGroup();
}
void ShowHeaderContextMenu(Rect position)
{
var menu = new GenericMenu();
menu.AddItem(new GUIContent("Move to (0,0,0)"), false, OnItemClicked);
menu.DropDown(position);
}
void OnItemClicked()
{
Undo.RecordObject(Selection.activeTransform, "Moving to center of world");
Selection.activeTransform.position = Vector3.zero;
}
}