Объявление
public static bool BeginFoldoutHeaderGroup(Rect position, bool foldout, string content, GUIStyle style = EditorStyles.foldoutHeader, Actionpublic static bool BeginFoldoutHeaderGroup(Rect position, bool foldout, GUIContent content, GUIStyle style = EditorStyles.foldoutHeader, Action
Параметры
foldout | Показан в разложенном состоянии. |
content | Ярлык для отображения. |
style | Необязательный стиль GUIStyle. |
menuAction | Действие, которое происходит при нажатии на значок. |
menuIcon | Необязательный GUIStyle для значка. |
position | Прямоугольник на экране для управления. |
Возвращает
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()
{
// An absolute-positioned example: We make foldout header group and put it in a small rect on the screen.
showPosition = EditorGUI.BeginFoldoutHeaderGroup(new Rect(10, 10, 200, 100), showPosition, status);
if (showPosition)
if (Selection.activeTransform)
{
Selection.activeTransform.position =
EditorGUI.Vector3Field(new Rect(10, 30, 200, 100), "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.
EditorGUI.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()
{
// An absolute-positioned example: We make foldout header group and put it in a small rect on the screen.
showPosition = EditorGUI.BeginFoldoutHeaderGroup(new Rect(10, 10, 200, 100), showPosition, status, null, ShowHeaderContextMenu);
if (showPosition)
if (Selection.activeTransform)
{
Selection.activeTransform.position =
EditorGUI.Vector3Field(new Rect(10, 30, 200, 100), "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.
EditorGUI.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;
}
}