foldout | 以箭头显示的折叠状态。 |
targetObj | 标题栏对应的一个对象(例如一个组件)或多个对象。 |
bool 用户选择的折叠状态。
创建一个类似于 Inspector 窗口的标题栏。
Create a custom inspector that shows the X,Y,Z,W quaternion components on the rotation.
// Create a custom transform inspector that shows the X,Y,Z,W // quaternion components instead of the rotation angles.
using UnityEditor; using UnityEngine;
public class InspectorTitlebarExample : EditorWindow { bool fold = true; Vector4 rotationComponents; Transform selectedTransform;
[MenuItem("Examples/Inspector Titlebar")] static void Init() { var window = GetWindow(typeof(InspectorTitlebarExample)); window.Show(); }
void OnGUI() { if (Selection.activeGameObject) { selectedTransform = Selection.activeGameObject.transform;
fold = EditorGUILayout.InspectorTitlebar(fold, selectedTransform); if (fold) { selectedTransform.position = EditorGUILayout.Vector3Field("Position", selectedTransform.position); EditorGUILayout.Space(); rotationComponents = EditorGUILayout.Vector4Field("Detailed Rotation", QuaternionToVector4(selectedTransform.localRotation)); EditorGUILayout.Space(); selectedTransform.localScale = EditorGUILayout.Vector3Field("Scale", selectedTransform.localScale); }
selectedTransform.localRotation = ConvertToQuaternion(rotationComponents); EditorGUILayout.Space(); } }
Quaternion ConvertToQuaternion(Vector4 v4) { return new Quaternion(v4.x, v4.y, v4.z, v4.w); }
Vector4 QuaternionToVector4(Quaternion q) { return new Vector4(q.x, q.y, q.z, q.w); }
void OnInspectorUpdate() { this.Repaint(); } }
标题栏中有一个用于展开的箭头、一个帮助图标和一个设置菜单,具体取决于所提供对象的类型。