【问题标题】:How to map images at runtime from an Android device's Gallery to Textures in Unity app?如何在运行时将图像从 Android 设备的图库映射到 Unity 应用程序中的纹理?
【发布时间】:2017-03-06 21:00:16
【问题描述】:

我有一个内置于 Unity 的 Android 应用程序,我正在尝试迭代并显示存储在用户的 Android 设备中的 N 个图像。这个想法是将它们的图像读入纹理并将它们映射到我的 Unity 场景中的四边形。

为了简化问题,我只是尝试在以下目录“/storage/emulated/0/DCIM/Camera/”中获取我知道 100% 存在于我设备照片库中的单个文件:/emulated/0/DCIM/Camera/ p>

 string path = "/storage/emulated/0/DCIM/Camera/20161019_142127.jpg";
 WWW www = new WWW("file://" + path);
 yield return www;

 if (string.IsNullOrEmpty(www.error))            
 {
     m_material.mainTexture = www.texture;
     Debug.Log("No Error, texture successfully set");
 }
 else
 {
     Debug.Log("Error returned = " + www.error);
 }

但我不断收到以下错误消息,提示加载文件失败:

Error returned = java.lang.NullPointerException: Attempt to invoke virtual method 'int java.io.InputStream.read(byte[])' on a null object reference

是否有人可以帮助我了解如何正确访问此文件并因此遍历此类目录中的 N 个图像文件?

提前致谢!

【问题讨论】:

    标签: android image unity3d textures


    【解决方案1】:

    也许您可以尝试使用来自System.IOFile.ReadAllBytes

    Texture2D texture = new Texture2D(2, 2, TextureFormat.ARGB32, false);
    byte[] fileByteData = File.ReadAllBytes(path);
    texture.LoadImage(fileByteData);
    

    调用LoadImage时纹理会自动调整大小。

    【讨论】:

    • 嘿@Kardux,首先谢谢你!我不确定为什么到目前为止我看到的每个建议都是使用 WWW 类而不是 System.IO.File,这似乎更明智。但是,我目前收到以下错误: UnauthorizedAccessException: Access to the path "/storage/emulated/0/DCIM/Camera/20161019_142127.jpg" is denied.任何想法在哪里以及如何设置权限以便我的应用可以实际访问图像?
    • @ArthurFox 在构建应用程序时,您可以检查 External (SD Card)Write Access 参数以允许访问。更多信息请查看here
    • 感谢@Kardux!这解决了我的问题!虽然我有你的专业知识,但我想问你是否知道我如何在不知道文件名称的情况下迭代该文件夹中的文件?本质上,我希望能够在我的应用中的 Android 设备的照片库中显示 N 多张照片。
    • @ArthurFox 要实现这一点,您必须使用System.IO.Directory.GetFiles(string path)。这个System.IO 命名空间在处理文件和目录时非常有用:我建议你熟悉它;)
    • Epic,谢谢 - 我会试一试并确保学习 System.IO!我可能会回来寻求更多建议@kardux,不过我自然会发布一个新问题!
    猜你喜欢
    • 1970-01-01
    • 2021-04-29
    • 2013-04-22
    • 2014-12-30
    • 1970-01-01
    • 2017-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多