如何保存颜色

本文关键字:颜色 保存 何保存 | 更新日期: 2023-09-27 18:04:49

好的,所以我试过使用浮点数和字符串,但它们似乎不起作用。控制台刚刚抛出不能将类型bleh转换为类型bleh。我查过这个,人们建议使用PlayerPrefs.SetColor,但似乎unity已经摆脱了它。我都不知道该怎么保存颜色了。我确实在unity网站上找到了这个,但是我不确定如何实现它。

Renderer rend = GetComponent<Renderer>();
rend.material.shader = Shader.Find("Specular");
rend.material.SetColor("_SpecColor", Color.red); Any help here? 

帮忙吗?

好的,这就是我所尝试的:

PlayerPrefs.SetString("myColor1", Title.myColor1);
PlayerPrefs.SetString("myColor2", Title.myColor2);

和在另一个脚本上:

myColor1 = PlayerPrefs.GetString("myColor1");
myColor2 = PlayerPrefs.GetString("myColor2");

如何保存颜色

我建议你使用ArrayPrefs2,这样你就可以只使用PlayerPrefsX.SetColor()PlayerPrefsX.GetColor(),或者把它作为参考来做一些具体的你的需要。

edited:更具体地说,你需要将这个PlayerPrefsX类的内容复制到脚本中的某个地方的PlayerPrefsX类中(有c#和unity脚本版本)。或者在您希望创建另一个帮助器时使用该代码。

您可以使用Unity ColorUtility将颜色序列化为字符串

const string Key = "my_stored_color";
public void SetColor(Color color)
{
    PlayerPrefs.SetString(Key, ColorUtility.ToHtmlStringRGBA(color));
}
public Color GetColor()
{
    var storedColorAsString = "#" + PlayerPrefs.GetString(key);
    Color result;
    ColorUtility.TryParseHtmlString(storedColorAsString, out result);
    return result;
}

确保在解析

之前添加#