PreviewRenderUtility的Example
用PreviewRenderUtility就不用自己再去创建摄像机来做模型在Editor下的预览了
需要注意,默认是用场景天空盒和场景灯光。参考ShaderForge编辑器的做法,配置自定义灯光
这些Unity都有提供接口,不用自己再去创建
using UnityEngine;
using System.Collections;
using UnityEditor;
using UnityEditorInternal; public class Foo : EditorWindow
{
Mesh mPreviewMesh;
Material mPreviewMaterial;
PreviewRenderUtility mPreviewRenderUtility; [MenuItem("Tools/Foo")]
static void Setup()
{
GetWindow<Foo>();
} void OnGUI()
{
if (mPreviewRenderUtility == null)
{
mPreviewRenderUtility = new PreviewRenderUtility();
mPreviewRenderUtility.m_Camera.farClipPlane = ;
mPreviewRenderUtility.m_Camera.clearFlags = CameraClearFlags.SolidColor;
mPreviewRenderUtility.m_Camera.transform.position = new Vector3(, , -); var go = GameObject.CreatePrimitive(PrimitiveType.Cube);
var meshFilter = go.GetComponent<MeshFilter>();
mPreviewMesh = meshFilter.sharedMesh;
mPreviewMaterial = go.GetComponent<MeshRenderer>().sharedMaterial; DestroyImmediate(go);
} var drawRect = new Rect(, , , );
mPreviewRenderUtility.BeginPreview(drawRect, GUIStyle.none); InternalEditorUtility.SetCustomLighting(mPreviewRenderUtility.m_Light, new Color(0.6f, 0.6f, 0.6f, 1f)); mPreviewRenderUtility.DrawMesh(mPreviewMesh, Matrix4x4.TRS(Vector3.zero, Quaternion.Euler(, , ), Vector3.one), mPreviewMaterial, ); mPreviewRenderUtility.m_Camera.Render();
var texture = mPreviewRenderUtility.EndPreview(); InternalEditorUtility.RemoveCustomLighting(); GUI.Box(drawRect, texture);
}
}
效果:

天空盒的话可以自行配置一个带Cubemap的shader:

PreviewRenderUtility的Example的更多相关文章
随机推荐
- spring & java 面试
https://blog.csdn.net/u014079773/article/details/52453002 1.Spring中AOP的应用场景.Aop原理.好处? 答:AOP--Aspect ...
- python之模块hashlib(提供了常见的摘要算法,如MD5,SHA1等等)
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块hashlib(提供了常见的摘要算法,如MD5,SHA1等等) #http://www.c ...
- PLSQL创建DBLINK
Oracle创建dblink,多用于数据的同步机制.不建议直接用dblink对数据库频繁的操作... 00.查看创建dblink权限 select * from user_sys_privs t wh ...
- 51单片机——My-Clock项目
技术:51单片机.光敏传感器.PCF8591.DHT11.DS1302.OLED显示屏 概述 项目My-Clock是一个环境监测时钟,接入光敏传感器和温湿度传感器监测环境信息,加入DS1302模块 ...
- Cocos2d-x执行时错误:Cocos2d: Get data from file(xxx.xxx) failed!
取资源图片时遇到执行时错误: Cocos2d: Get data from file(xxx/xxx.xxx) failed! 原因是我加入资源目录的方式不正确,例如以下图,我选择的是在Resourc ...
- UVM:8.4.3 用factory 机制创建实例的接口
1.create_object_by_name,依据类名字创建object,原型: 一般仅仅用第一个: 2.create_object_by_type.依据类型创建一个object,原型: 一般仅仅用 ...
- Golang 要点汇总
Golang有很多非常强大的用法,本文对网上的一些文章做一个简单的汇总,供以后翻阅. 1,Constant的用法 https://splice.com/blog/iota-elegant-consta ...
- [think]关于个人发展值得记住的一些建议 听别人的话,即使你不想听 不要只做不想 成功不能被复制,但失败总在不停复制。看看别人是怎么倒下的,你可以更早地成功
[think]关于个人发展值得记住的一些建议 偶然看到一篇采访周爱民的文章,里面的一些建议虽然朴实无华,却感觉很有道理,特此记录: 记者:对于程序员的技术发展和职业规划能否给大家一些建议呢?----- ...
- jquery 滑动取值
JavaScript 滑动条效果 jquery 滚动条插件 仿iphone苹果横行滚动条美化样式商品图片展示
- SDL相关学习
原文地址:https://www.cnblogs.com/landmark/category/311822.html 介绍SDL图形库的使用 SDL显示文字 摘要: 前面教程里,我们只显示图片,没提到 ...