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