using UnityEngine;
public class PreviewExample : MonoBehaviour
{
}
using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(PreviewExample))]
public class PreviewExampleInspector : Editor
{
private PreviewRenderUtility m_PreviewUtility;
private GameObject m_PreviewInstance;
// 预览对象的包围盒
private Bounds m_PreviewBounds;
// 预览的方向
private Vector2 m_PreviewDir = new Vector2(120f, -20f);
public override bool HasPreviewGUI()
{
return true;
}
public override GUIContent GetPreviewTitle()
{
return new GUIContent("预览");
}
private void AddSingleGO(GameObject go)
{
#if UNITY_2017_1_OR_NEWER
m_PreviewUtility.AddSingleGO(go);
#endif
}
public override void OnPreviewSettings()
{
GUILayout.Label("文本", "preLabel");
GUILayout.Button("按钮", "preButton");
}
public override void OnPreviewGUI(Rect r, GUIStyle background)
{
InitPreview();
// 上下左右的旋转
m_PreviewDir = Drag2D(m_PreviewDir, r);
if (Event.current.type != EventType.Repaint)
{
return;
}
m_PreviewUtility.BeginPreview(r, background);
Camera camera = m_PreviewUtility.camera;
float num = Mathf.Max(m_PreviewBounds.extents.magnitude, 0.0001f);
float num2 = num * 3.8f;
Quaternion quaternion = Quaternion.Euler(-m_Previ