如何从服务器上下载图像,并在Unity 3D上转换为立方体贴图

时间:2019-07-17 01:28:53

标签: c# unity3d

我尝试从url下载图像以保存到我的app mobile中,当我尝试进行文件写入时,由于在场景结束时写入文件,并且在结束时写入文件,所以没有发生一段时间。场景中,我将thats字节转换为立方体贴图的方法不起作用。 我真的需要你的帮助。

我尝试从url下载图像,然后保存在我的手机上,然后转换为cubemap以在实时应用程序上使用。

我以这种方式从服务器下载图像:

    public IEnumerator Get(string url)
        {
            using (UnityWebRequest www = UnityWebRequest.Get(url))
            {
                 www.SendWebRequest();
                if (www.isNetworkError || www.isHttpError)
                {
                    Debug.Log(www.error);
                }
                else
                {
                    if (www.isDone)
                    {
                        string jsonResult = System.Text.Encoding.UTF8.GetString(www.downloadHandler.data);
                        playerList = JsonUtility.FromJson<Player>(jsonResult);
                        Debug.Log(jsonResult);

                        yield return true;
                    }
                }
            }
        }

播放器列出我的Pojo并从中获取值字节,方法是:

    path = Application.dataPath + "/Materials/img/Img360/" + "img360.png";
    PlayerPrefs.SetString(path, playerList.img360);
    System.IO.File.WriteAllBytes(path, playerList.img360);

但是从未发生过,因为执行不等待opcion使用的字节...

然后将下一个代码转换为cubemap,但是由于图像文件不在路径中,因为没有等待写入文件,因此从未发生。

这种图像到立方体贴图的转换在android和ios上不起作用,你知道吗?我该怎么做正确的方法?

var textures = Selection.GetFiltered(typeof(Texture),SelectionMode.Assets).Cast<Texture>();
foreach (var tex in textures)
{
    string path1 = AssetDatabase.GetAssetPath(tex);
    TextureImporter importer = (TextureImporter)TextureImporter.GetAtPath(path);
    if (tex.dimension != UnityEngine.Rendering.TextureDimension.Cube)
    {
        importer.textureShape = TextureImporterShape.TextureCube;
        importer.generateCubemap = TextureImporterGenerateCubemap.Spheremap;
        importer.SaveAndReimport();
    }
}

感谢您的关注

我期望立方体贴图,但是我不能,因为永远不会完成写入文件,仅当处理完成时,图像文件才会写入路径中,但是从未发生过转换为立方体贴图

0 个答案:

没有答案