Android Unity 3d在构建后更改纹理

Android Unity 3d在构建后更改纹理,android,unity3d,3d,textures,texture2d,Android,Unity3d,3d,Textures,Texture2d,我有一个附加到游戏对象的脚本。我还有一个按钮。当按下按钮时,文件资源管理器打开,允许从PC中选择自定义图像,并在导入游戏对象的原始纹理更改后。但当我退出并再次运行时,自定义纹理将替换为原始纹理。我想保存自定义纹理而不是原始纹理,然后选择删除自定义纹理并返回原始纹理。请在这方面帮助我。对不起,我的英语不好。这是我的代码: using System.Collections; using System.Collections.Generic; using UnityEngine; using Unit

我有一个附加到游戏对象的脚本。我还有一个按钮。当按下按钮时,文件资源管理器打开,允许从PC中选择自定义图像,并在导入游戏对象的原始纹理更改后。但当我退出并再次运行时,自定义纹理将替换为原始纹理。我想保存自定义纹理而不是原始纹理,然后选择删除自定义纹理并返回原始纹理。请在这方面帮助我。对不起,我的英语不好。这是我的代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEditor;
using System.IO;


public class ChangeTex : MonoBehaviour 

{
    string path;
    public MeshRenderer mRenderer;

    public void OpenExplorer()
    {
        path = EditorUtility.OpenFilePanel("Overwrite with png", "", "png");
        GetImage();
    }

    void GetImage()
    {
        if (path != null)
        {
            UpdateImage();
        }
    }
    void UpdateImage()
    {
        byte[] imgByte = File.ReadAllBytes(path);
        Texture2D texture = new Texture2D (2, 2);
        texture.LoadImage(imgByte);

        mRenderer.material.mainTexture = texture;

    }

}

最简单的方法是在中存储图像的路径。这是一个平台无关的功能,允许您在设备存储中放置和获取一些播放器设置。将其存储在设备存储器中,可以在重新启动应用程序后获取数据

要将设置保存到存储器,您必须将其放入并保存:

PlayerPrefs.SetString(IMAGE_PATH_KEY, path);
获取设置:

if (PlayerPrefs.HasKey(IMAGE_PATH_KEY))
{
    path = PlayerPrefs.GetString(IMAGE_PATH_KEY);
}

然后,您可以先在
Start()
Awake()
中的PlayerPrefs中检查路径,而不是调用
OpenExplorer()
。请给我推荐任何类似的android代码,因为它不是在android平台上构建的,没有保存功能。对不起,我的错!您不需要调用empty Save()。所以你要做的就是调用
SetString(KEY,VALUE)
。我刚刚编辑了我的答案