# HasPreviewGUI()

> Override this method in subclasses if you implement Editor.OnPreviewGUI.

## Definition

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

```csharp
public virtual bool HasPreviewGUI()
```

### Returns

| Type                                                          | Description                                                   |
| ------------------------------------------------------------- | ------------------------------------------------------------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | True if this component can be Previewed in its current state. |

### Remarks

You can also use it to disable or enable preview depending on the target asset. The default implementation simply returns false, so if you override [Editor.OnPreviewGUI](/engine/6000.0/script-reference/unityeditor/editor/onpreviewgui.md) you have to override this method as well.

**Note:** Inspector previews are limited to the primary editor of persistent objects (assets), e.g., GameObjectInspector, MaterialEditor, TextureInspector. This means that it is currently not possible for a component to have its own inspector preview.

### Examples

```csharp
using UnityEngine;
using UnityEditor;

public class GameObjectEditorWindow: EditorWindow
{
    GameObject gameObject;
    Editor gameObjectEditor;

    [MenuItem("Window/GameObject Editor")]
    static void ShowWindow()
    {
        GetWindow<GameObjectEditorWindow>("GameObject Editor");
    }

    void OnGUI()
    {
        gameObject = (GameObject) EditorGUILayout.ObjectField(gameObject, typeof(GameObject), true);

        if (gameObject != null)
        {
            if (gameObjectEditor == null)
                gameObjectEditor = Editor.CreateEditor(gameObject);

            gameObjectEditor.OnPreviewGUI(GUILayoutUtility.GetRect(500, 500), EditorStyles.whiteLabel);
        }
    }
}
```
