我目前正在使用Unity for Android制作360度全景图片。所有equirectangular图片都加载在资源文件夹中。
我想知道在运行时是否可以使用TextureImporter类将2d纹理转换为Cubemap。
目前,我正在将2d纹理转换为Cubemaps。为其上的每一个创建材料。并将此材料加载到主摄像头中添加的天空盒组件下。使用这种方法的缺点是apk大小超过250 mb。
如果我可以动态制作立方体贴图,我可以节省一些空间。
请帮忙!
答案 0 :(得分:2)
我想知道TextureImporter类是否可用于转换2d 在运行时将纹理转换为Cubemap。
不,它不能。
请参阅TextureImporter
的文档。它是UnityEditor
命名空间中的一个类。该命名空间中的任何类或API都不能在构建中使用它仅供编辑器使用。
您可以使用Cubemap
类创建立方体贴图。您可以使用Texture2D.GetPixels();
获取纹理像素,使用Cubemap.SetPixels()
将像素设置为立方体贴图。
例如:
public Cubemap c;
private Color[] CubeMapColors;
public Texture2D t;
void Start()
{
CubeMapColors = t.GetPixels();
c.SetPixels(CubeMapColors, CubemapFace.PositiveX);
c.Apply();
}