C# 如何保存颜色
好吧,我试过使用浮点数和字符串,但它们似乎不起作用。控制台刚刚抛出无法将bleh类型转换为bleh类型。我查过了,人们建议使用C# 如何保存颜色,c#,unity3d,C#,Unity3d,好吧,我试过使用浮点数和字符串,但它们似乎不起作用。控制台刚刚抛出无法将bleh类型转换为bleh类型。我查过了,人们建议使用PlayerPrefs.SetColor,但unity似乎已经解决了这个问题。我真的不知道我现在该如何保存颜色。我确实在unity网站上找到了这个,但是我不确定如何实现它 Renderer rend = GetComponent<Renderer>(); rend.material.shader = Shader.Find("Specular"); rend.
PlayerPrefs.SetColor
,但unity似乎已经解决了这个问题。我真的不知道我现在该如何保存颜色。我确实在unity网站上找到了这个,但是我不确定如何实现它
Renderer rend = GetComponent<Renderer>();
rend.material.shader = Shader.Find("Specular");
rend.material.SetColor("_SpecColor", Color.red); Any help here?
在另一个脚本上:
myColor1 = PlayerPrefs.GetString("myColor1");
myColor2 = PlayerPrefs.GetString("myColor2");
我建议您使用,这样您就可以使用
PlayerPrefsX.SetColor()
和PlayerPrefsX.GetColor()
或将其作为参考,根据您的需要执行一些特定的操作
已编辑:更具体地说,您需要将提供的这个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;
}
请确保在解析之前添加#你能粘贴你正在尝试的代码和你得到的确切错误吗?我读到过,但当我键入它时,它告诉我它在当前上下文中不存在。你是否将脚本添加到你的项目中了?如果您阅读上面链接的整个wiki页面,您将看到它不是由unity本身提供的,而是该wiki页面上提供的一个类;)
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;
}