unityc创建CubeMap

转自:http://blog.csdn.net/lyh916/article/details/45270401

首先要创建一个编辑器类。注意一下,helpString与isValid是ScriptableWizard的内置变量,前面不应该加类型修饰符。以下的这个编辑器类是一个向导类。

[csharp] view plain copy

using UnityEngine;
using UnityEditor;
using System.Collections;

public class RenderCubemapWizard : ScriptableWizard {

public Transform renderFromPosition;  
public Cubemap cubemap;  

void OnWizardUpdate()  
{       
    helpString = "Select transform to render from and cubemap to render into";  
    isValid = (renderFromPosition != null) && (cubemap != null);  
}  

void OnWizardCreate()  
{  
    // create temporary camera for rendering  
    GameObject go = new GameObject("CubemapCamera");  
    go.AddComponent<Camera>();  
    // place it on the object  
    go.transform.position = renderFromPosition.position;  
    go.transform.rotation = Quaternion.identity;  
    // render into cubemap        
    go.GetComponent<Camera>().RenderToCubemap(cubemap);  

    // destroy temporary camera  
    DestroyImmediate(go);  
}  

[MenuItem("GameObject/Render into Cubemap")]  
static void RenderCubemap()  
{  
    ScriptableWizard.DisplayWizard<RenderCubemapWizard>(  
        "Render cubemap", "Render!");  
}  

}

效果图:


1.ScriptableWizard.DisplayWizard<RenderCubemapWizard>("Render cubemap", "Render!");
第一个参数是窗口名字,第二个参数是按钮的名字
2.helpString
窗口名字下的提示
3.isValid
当isValid为true时,按钮才可以被点击,否则不可以被点击
4.OnWizardUpdate()
当向导被打开或只要用户在向导改变了某些东西时被调用
5.OnWizardCreate()
当用户点击按钮时调用

创建一个场景,创建一个空物体(用来作为观察点),在Project视图创建一个Cubemap,把空物体和Cubemap赋值到上面的编辑器空槽中,点击“Render!”



Camera的RenderToCubemap会把在观察点的前后左右上下六个方向看到的画面全部存放到一个立方体贴图中。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 10,469评论 4 57
  • 嗯哼嗯哼蹦擦擦~~~ 转载自:https://github.com/Tim9Liu9/TimLiu-iOS 目录 ...
    philiha阅读 4,063评论 0 5
  • 换季,至至没有秋天的衣服可以穿,在网上买了一套,今天到货一试,大了一码。爸爸回来后,我说给儿子买了套衣服,挺好看的...
    至孝妈妈阅读 275评论 0 0
  • 继承 css某些属性具有继承的特点,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代。如以下代码,不...
    CoreyJia阅读 197评论 0 0