public override void OnPreviewGUI(Rect r, GUIStyle background) { m_mouseDelta = CheckMouseMovement(m_mouseDelta, r); if (Event.current.type == EventType.Repaint) { m_previewRenderUtility.BeginPreview(r, background); Texture resultRender = m_previewRenderUtility.EndPreview(); m_previewRenderUtility.DrawMesh(m_previewMesh, Matrix4x4.identity, m_material, 0); m_cameraTransform.rotation = Quaternion.Euler(new Vector3(-m_mouseDelta.y, -m_mouseDelta.x, 0)); m_cameraTransform.position = m_cameraTransform.forward * -8f; m_previewRenderUtility.m_Camera.Render(); GUI.DrawTexture(r, resultRender, ScaleMode.StretchToFill, false); } }
public void OnPreviewGUI(Texture t, Rect r, GUIStyle background, float exposure) { if (t == null) { return; } if (!ShaderUtil.hardwareSupportsRectRenderTexture) { if (Event.current.type == EventType.Repaint) { EditorGUI.DropShadowLabel(new Rect(r.x, r.y, r.width, 40), "Cubemap preview requires\nrender texture support"); } return; } m_PreviewDir = PreviewGUI.Drag2D(m_PreviewDir, r); if (Event.current.type != EventType.Repaint) { return; } InitPreview(); m_PreviewUtility.BeginPreview(r, background); const float previewDistance = 6.0f; RenderCubemap(t, m_PreviewDir, previewDistance, exposure); Texture renderedTexture = m_PreviewUtility.EndPreview(); GUI.DrawTexture(r, renderedTexture, ScaleMode.StretchToFill, false); if (mipLevel != 0) { EditorGUI.DropShadowLabel(new Rect(r.x, r.y, r.width, 20), "Mip " + mipLevel); } }