using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
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()
{
//创建一个临时相机
GameObject go = new GameObject("CubemapCamera");
go.AddComponent<Camera>();
// 将相机的位置修正到想要渲染的位置
go.transform.position = renderFromPosition.position;
//渲染纹理到cubemap中
go.GetComponent<Camera>().RenderToCubemap(cubemap);
//销毁临时相机
DestroyImmediate(go);
}
[MenuItem("GameObject/Render into Cubemap")]
static void RenderCubemap()
{
ScriptableWizard.DisplayWizard<RenderCubemapWizard>(
"Render cubemap", "Render!");
}
}
UnityShader中级篇——创建用于环境映射的立方体纹理
最新推荐文章于 2022-10-17 20:41:07 发布