版本: Unity 6 (6000.0)
语言英语
  • C#

Editor.OnInteractivePreviewGUI

建议更改

成功!

感谢您帮助我们改进 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们会阅读用户提出的每个建议更改,并在适用的情况下进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们改进 Unity 文档的质量。

关闭

取消

声明

public void OnInteractivePreviewGUI(Rect r, GUIStyle background);

参数

r 用于绘制预览的矩形。
background 背景图像。

描述

实现此方法以创建您自己的交互式自定义预览。交互式自定义预览在检查器和对象选择器的预览区域中使用。

要显示交互式自定义预览,请实现此方法,而不是实现 OnPreviewGUI。当一些预览是交互式的,而另一些不是时,您可以实现这两种方法。覆盖的方法应该使用传入的矩形并渲染资源的预览。默认实现是空操作。

注意:检查器预览仅限于持久对象的(资源)主编辑器。例如,GameObjectInspector、MaterialEditor、TextureInspector 等。这意味着目前组件无法拥有自己的检查器预览。

using UnityEngine;
using UnityEditor;

// Create an editor window which can display a chosen GameObject. // Use OnInteractivePreviewGUI to display the GameObject and // allow it to be interactive.

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

[MenuItem("Example/GameObject Editor")] static void ShowWindow() { GetWindowWithRect<ExampleClass>(new Rect(0, 0, 256, 256)); }

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

GUIStyle bgColor = new GUIStyle(); bgColor.normal.background = EditorGUIUtility.whiteTexture;

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

gameObjectEditor.OnInteractivePreviewGUI(GUILayoutUtility.GetRect(256, 256), bgColor); } } }