TextureImporter类是否在运行时工作?

时间:2017-05-30 08:42:42

标签: c# android unity3d google-cardboard

我目前正在使用Unity for Android制作360度全景图片。所有equirectangular图片都加载在资源文件夹中。

我想知道在运行时是否可以使用TextureImporter类将2d纹理转换为Cubemap。

目前,我正在将2d纹理转换为Cubemaps。为其上的每一个创建材料。并将此材料加载到主摄像头中添加的天空盒组件下。使用这种方法的缺点是apk大小超过250 mb。

如果我可以动态制作立方体贴图,我可以节省一些空间。

请帮忙!

1 个答案:

答案 0 :(得分:2)

  

我想知道TextureImporter类是否可用于转换2d   在运行时将纹理转换为Cubemap。

不,它不能。

请参阅TextureImporter的文档。它是UnityEditor命名空间中的一个类。该命名空间中的任何类或API都不能在构建中使用它仅供编辑器使用。 enter image description here

您可以使用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();
}