如何保存颜色

时间:2015-07-27 14:25:21

标签: c# unity3d

好的,所以我尝试过使用花车和琴弦,但它们似乎不起作用。控制台刚刚抛出无法将类型bleh转换为类型bleh。我已经看了这个,人们建议使用PlayerPrefs.SetColor,但似乎团结已经摆脱了这一点。我现在不确定我是怎么想保存一种颜色的。我确实在统一网站上找到了这个,但我不确定如何实现它。

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");

2 个答案:

答案 0 :(得分:1)

我建议您使用ArrayPrefs2,这样您就可以使用PlayerPrefsX.SetColor()PlayerPrefsX.GetColor()或将其作为参考,以便针对您的需求做一些具体的事情。

已编辑:更具体地说,您需要将提供的PlayerPrefsX类的内容复制到脚本中的某个PlayerPrefsX类中(有c#和unity脚本版本)。或者只是根据需要使用该代码创建另一个帮助程序。

答案 1 :(得分:0)

您可以使用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;
}

请务必在解析前添加#