Unity3d 如何使用字符串引用纹理?

Unity3d 如何使用字符串引用纹理?,unity3d,textures,texture2d,Unity3d,Textures,Texture2d,我已将texture2设置为PlayerRefs中的新纹理,如下所示: PlayerPrefs.SetString("texture","texture2") void Update() { if(textureBool == false) { AudioListener.pause = true; mainTexture = Texture2; } else if(textureBool == true) {

我已将texture2设置为PlayerRefs中的新纹理,如下所示:

PlayerPrefs.SetString("texture","texture2")
 void Update()
{
    if(textureBool == false)
    {
        AudioListener.pause = true;
        mainTexture = Texture2;
    }
    else if(textureBool == true)
    {
        AudioListener.pause = false;
        mainTexture = Texture1;
    }
}
但是如何打开以下脚本的字符串:

PlayerPrefs.GetString("texture")
进入:

因此,它会将texture2更改为texture:

mainTexture = texture2

我不使用变量,因为我希望保存并加载所选纹理。提前谢谢!感谢您的帮助!:

通过了解纹理路径加载纹理如下

但这不是你想要的 答案是根据这些问题和 不要将字符串转换为纹理生成布尔值,如果为真,则将纹理设置为tex1,如果为假,则将纹理设置为tex2

我已经弄明白了:

我将PlayerRefs更改为:

PlayerPrefs.SetString("tex","texture2")
为texture1再做一个

然后,我创建了一个名为MuteCheck的函数,这是我放在里面的:

public void MuteCheck()
{
    texture = PlayerPrefs.GetString ("tex");

    if (texture == "texture2") 
    {
        textureBool = false;
    }
    else if (texture == "texture1")
    {
        textureBool = true;
    }
}
之后,我创建了如下更新函数:

PlayerPrefs.SetString("texture","texture2")
 void Update()
{
    if(textureBool == false)
    {
        AudioListener.pause = true;
        mainTexture = Texture2;
    }
    else if(textureBool == true)
    {
        AudioListener.pause = false;
        mainTexture = Texture1;
    }
}

现在它工作得很好

你好!!好的,您已经看到了我的脚本,但是我应该在哪里添加您的脚本呢?对不起,我弄糊涂了。顺便说一句,谢谢你回答我所有的问题并帮助我,伙计使用PlayerPrefs.Save如果您正在为android制作,确保数据保存如果它是pc,那么没有必要使用PlayerPrefs.SetString,我应该使用PlayerPrefs.Save来代替PlayerPrefs.SetString?或者只保留字符串并在其下方添加“PlayerPrefs.Save”?不,在更改场景之前,请使用PlayerPrefs.Save不要更改任何内容。因此,您测试了此功能,没有问题您的意思是我说的“Application.Loadlevelscene1;”aI还必须编写“PlayerPrefs.Save;”;?我还没测试过,我得走了,几个小时后我会测试的。顺便说一句,昨天我试了一下,没有.Save,数据就按它应该做的那样保存了。
 void Update()
{
    if(textureBool == false)
    {
        AudioListener.pause = true;
        mainTexture = Texture2;
    }
    else if(textureBool == true)
    {
        AudioListener.pause = false;
        mainTexture = Texture1;
    }
}