1234567891011121314151617181920212223242526272829303132 |
- using UnityEngine;
- using UnityEditor;
- public class RenderSkyboxToCubemap : MonoBehaviour
- {
- [MenuItem("Tools/Render Procedural Skybox To Cubemap")]
- static void RenderToCubemap()
- {
- // 创建一个临时摄像机
- GameObject go = new GameObject("SkyboxCaptureCamera", typeof(Camera));
- Camera cam = go.GetComponent<Camera>();
- cam.clearFlags = CameraClearFlags.Skybox;
- cam.cullingMask = 0; // 不渲染任何物体,只渲染天空
- // 创建 Cubemap
- int resolution = 1024;
- Cubemap cube = new Cubemap(resolution, TextureFormat.RGBA32, false);
- // 渲染天空盒到 Cubemap
- cam.RenderToCubemap(cube);
- // 保存为资源文件
- string path = "Assets/RenderedSkyboxCubemap.cubemap";
- AssetDatabase.CreateAsset(cube, path);
- AssetDatabase.SaveAssets();
- // 清理
- GameObject.DestroyImmediate(go);
- Debug.Log("✅ Skybox 已成功渲染并保存为 Cubemap: " + path);
- }
- }
|