首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >路径与廊

路径与廊
EN

Stack Overflow用户
提问于 2022-07-15 11:22:01
回答 1查看 40关注 0票数 0

我的画廊代码出了问题,我的安卓无法识别第20行和第30行.jpg图像的正确文件夹。PC代码导致磁盘细节的原因是完全不同的,如果有人能帮助我,我会非常感激的。

代码语言:javascript
复制
 public class Gallery : MonoBehaviour {

    public List<Sprite> gallery = new List<Sprite>();
    public Image displayImage;
    public Button nextImg;
    public Button prevImg;
    public int i = 0;

    void Start ()
    {
        // var Images = Directory.GetFiles("C:/Users/Bandeira/Downloads/Menu Start/Assets/Sprite/JPG/","*.jpg");
        var Images = Directory.GetFiles("file:///" + "/unitypictures/","*.jpg");
        Debug.Log(Images);
        StartCoroutine(LoadImages(Images));
    }

    IEnumerator LoadImages(string[] Images)
    {
        foreach (var path in Images)
        {
            Debug.Log(path);
            using (var uwr = UnityWebRequestTexture.GetTexture("file:///" + path))
            // using (var uwr = UnityWebRequestTexture.GetTexture(path))
            {
                Debug.Log(path);
                yield return uwr.SendWebRequest();
            
                if (uwr.result != UnityWebRequest.Result.Success)
                {
                    Debug.Log(uwr.error);
                    yield break;
                }
            
                var tex = DownloadHandlerTexture.GetContent(uwr);
                    
                var sprite = Sprite.Create(tex, new Rect(0f, 0f, tex.width, tex.height), new Vector2(0.5f, 0.5f), 50f, 0, SpriteMeshType.FullRect);
                gallery.Add(sprite);
                uwr.Dispose();
            }
            yield return null;
        }
    }

    public void BtnNext (){
        if(i + 1 < gallery.Count){
            i++;
        }
        displayImage.sprite = gallery[i];
    }
 
    public void BtnPrev () {
        if (i - 1 > 0){
            i--;
        }
        displayImage.sprite = gallery[i];
    }
}
EN

回答 1

Stack Overflow用户

发布于 2022-07-15 13:41:59

伙计,我昨天已经告诉过你了。您使用的是绝对路径,它们无法工作,因为对于每个操作系统,它们是不同的。如果你把你的安卓手机连接到你的电脑上,或者安装一个文件管理器,你可以看到不应该有一个叫做"UnityPictures“的文件夹,即使有,你也很难到达那里,因为我相信它们是受设备保护的。答案总是一样的:您可以使用持久化数据路径来保存图像并在以后继续。例如,您可以将它们保存在目录(Application.PersistentDataPath + "UnityPictures")中,并将它们从相同的路径中取回。因此,要弄清楚:您必须创建文件夹并插入这些图像,如果您想下载的话。或者,您也可以从服务器下载它们。因此,您可以编辑它们,添加更多,或删除它们而不需要更新,它将可用于所有设备。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72993213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档