# InspectorTitlebar

> Make an inspector-window-like titlebar.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor](/engine/6000.5/script-reference/unityeditor.md)
* **Assembly:** UnityEditor.CoreModule

## InspectorTitlebar(bool, Object)

Make an inspector-window-like titlebar.

```csharp
public static bool InspectorTitlebar(bool foldout, Object targetObj)
```

### Parameters

**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): The foldout state shown with the arrow.**** (\[Object]\(/engine/6000.5/script-reference/unityengine/object)): The object (for example a component) or objects that the titlebar is for.

### Returns

| Type                                                          | Description                             |
| ------------------------------------------------------------- | --------------------------------------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | The foldout state selected by the user. |

### Remarks

![InspectorTitlebarUsage (InspectorTitlebar)](/api/media?file=/engine/6000.5/media/images/InspectorTitlebarUsage.png)

*Create a custom inspector that shows the X,Y,Z,W quaternion components on the rotation.*

```csharp
// 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();
    }
}
```

The titlebar has an arrow for folding out, a help icon, and a settings menu that depends on the type of the object supplied.

## InspectorTitlebar(bool, Object, bool)

Make an inspector-window-like titlebar.

```csharp
public static bool InspectorTitlebar(bool foldout, Object targetObj, bool expandable)
```

### Parameters

**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): The foldout state shown with the arrow.**** (\[Object]\(/engine/6000.5/script-reference/unityengine/object)): The object (for example a component) or objects that the titlebar is for.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)):&#x20;

### Returns

| Type                                                          | Description                             |
| ------------------------------------------------------------- | --------------------------------------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | The foldout state selected by the user. |

### Remarks

![InspectorTitlebarUsage (InspectorTitlebar)](/api/media?file=/engine/6000.5/media/images/InspectorTitlebarUsage.png)

*Create a custom inspector that shows the X,Y,Z,W quaternion components on the rotation.*

```csharp
// 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();
    }
}
```

The titlebar has an arrow for folding out, a help icon, and a settings menu that depends on the type of the object supplied.

## InspectorTitlebar(bool, Object\[])

Make an inspector-window-like titlebar.

```csharp
public static bool InspectorTitlebar(bool foldout, Object[] targetObjs)
```

### Parameters

**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): The foldout state shown with the arrow.**** (\[Object\[]]\(/engine/6000.5/script-reference/unityengine/object)):&#x20;

### Returns

| Type                                                          | Description                             |
| ------------------------------------------------------------- | --------------------------------------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | The foldout state selected by the user. |

### Remarks

![InspectorTitlebarUsage (InspectorTitlebar)](/api/media?file=/engine/6000.5/media/images/InspectorTitlebarUsage.png)

*Create a custom inspector that shows the X,Y,Z,W quaternion components on the rotation.*

```csharp
// 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();
    }
}
```

The titlebar has an arrow for folding out, a help icon, and a settings menu that depends on the type of the object supplied.

## InspectorTitlebar(bool, Object\[], bool)

Make an inspector-window-like titlebar.

```csharp
public static bool InspectorTitlebar(bool foldout, Object[] targetObjs, bool expandable)
```

### Parameters

**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): The foldout state shown with the arrow.**** (\[Object\[]]\(/engine/6000.5/script-reference/unityengine/object)): **** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)):&#x20;

### Returns

| Type                                                          | Description                             |
| ------------------------------------------------------------- | --------------------------------------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | The foldout state selected by the user. |

### Remarks

![InspectorTitlebarUsage (InspectorTitlebar)](/api/media?file=/engine/6000.5/media/images/InspectorTitlebarUsage.png)

*Create a custom inspector that shows the X,Y,Z,W quaternion components on the rotation.*

```csharp
// 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();
    }
}
```

The titlebar has an arrow for folding out, a help icon, and a settings menu that depends on the type of the object supplied.

## InspectorTitlebar(bool, Editor)

Make an inspector-window-like titlebar.

```csharp
public static bool InspectorTitlebar(bool foldout, Editor editor)
```

### Parameters

**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): The foldout state shown with the arrow.**** (\[Editor]\(/engine/6000.5/script-reference/unityeditor/editor)):&#x20;

### Returns

| Type                                                          | Description                             |
| ------------------------------------------------------------- | --------------------------------------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | The foldout state selected by the user. |

### Remarks

![InspectorTitlebarUsage (InspectorTitlebar)](/api/media?file=/engine/6000.5/media/images/InspectorTitlebarUsage.png)

*Create a custom inspector that shows the X,Y,Z,W quaternion components on the rotation.*

```csharp
// 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();
    }
}
```

The titlebar has an arrow for folding out, a help icon, and a settings menu that depends on the type of the object supplied.

## InspectorTitlebar(Object\[])

Make an inspector-window-like titlebar.

```csharp
public static void InspectorTitlebar(Object[] targetObjs)
```

### Parameters

**** (\[Object\[]]\(/engine/6000.5/script-reference/unityengine/object)):&#x20;

### Remarks

![InspectorTitlebarUsage (InspectorTitlebar)](/api/media?file=/engine/6000.5/media/images/InspectorTitlebarUsage.png)

*Create a custom inspector that shows the X,Y,Z,W quaternion components on the rotation.*

```csharp
// 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();
    }
}
```

The titlebar has an arrow for folding out, a help icon, and a settings menu that depends on the type of the object supplied.
