【问题标题】:Does TextureImporter class works in runtime?TextureImporter 类是否在运行时工作?
【发布时间】:2017-05-30 08:42:42
【问题描述】:

我目前正在 Unity for Android 中制作 360 度图片查看器。所有 equirectangular 图片都加载到资源文件夹中。

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

目前,我正在将 2d 纹理转换为立方体贴图。为它的每一个创建材料。并在主相机中添加的天空盒组件下加载此材质。使用这种方法的缺点是 apk 大小超过 250 mb。

如果我可以即时制作立方体贴图,我可以节省大量空间。

请帮忙!

【问题讨论】:

  • 您可以使用asset bundles 来避免大型应用程序
  • 我想制作一个不需要互联网连接的应用程序。但是仍然感谢您的帮助,也许其他人会发现它很有用:)

标签: c# android unity3d google-cardboard


【解决方案1】:

我想知道是否可以使用 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();
}

【讨论】:

  • 感谢您的帮助 :) 我现在就试试这个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多