Unity 3d 构建后更改纹理

问题描述 投票:0回答:1

我有一个脚本连接到一个游戏对象。我也有一个按钮。当按钮被按下时,文件资源管理器打开,并允许选择一个自定义图像从PC和导入后的原始纹理的Gameobject变化。但是,当我退出并再次运行,然后自定义的纹理替换与原始的。我想保存一个自定义的纹理,而不是原始纹理,然后删除自定义的选项,并返回到原始纹理。请帮助我。对不起,我的英语不好。这是我的代码。

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;

    }

}
android unity3d 3d textures texture2d
1个回答
1
投票

简单的方法是存储路径到你的图像在 播放器refs. 这是一个独立于平台的功能,它允许你在设备存储中放置和获取一些播放器设置。将其存储在设备存储中可以让您在重新启动应用程序后获得您的数据。

要将您的设置保存到存储中,您必须将其放入并保存。

PlayerPrefs.SetString(IMAGE_PATH_KEY, path);

获取设置。

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

然后不需要调用 OpenExplorer() 你可以检查你的路径在PlayerPrefs中的 Start()Awake() 第一

© www.soinside.com 2019 - 2024. All rights reserved.