Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何保存颜色_C#_Unity3d - Fatal编程技术网

C# 如何保存颜色

C# 如何保存颜色,c#,unity3d,C#,Unity3d,好吧,我试过使用浮点数和字符串,但它们似乎不起作用。控制台刚刚抛出无法将bleh类型转换为bleh类型。我查过了,人们建议使用PlayerPrefs.SetColor,但unity似乎已经解决了这个问题。我真的不知道我现在该如何保存颜色。我确实在unity网站上找到了这个,但是我不确定如何实现它 Renderer rend = GetComponent<Renderer>(); rend.material.shader = Shader.Find("Specular"); rend.

好吧,我试过使用浮点数和字符串,但它们似乎不起作用。控制台刚刚抛出无法将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? 
在另一个脚本上:

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;
}