2 回答
TA貢獻1827條經驗 獲得超8個贊
你可以這樣做;
public static void SaveColor (Color color, string key) {
PlayerPrefs.SetFloat(key + "R", color.r);
PlayerPrefs.SetFloat(key + "G", color.g);
PlayerPrefs.SetFloat(key + "B", color.b);
}
public static Color GetColor (string key) {
float R = PlayerPrefs.GetFloat(key + "R");
float G = PlayerPrefs.GetFloat(key + "G");
float B = PlayerPrefs.GetFloat(key + "B");
return new Color(R, G, B);
}
或者你可以將它的十六進制代碼保存為字符串并加載它
TA貢獻1856條經驗 獲得超17個贊
在Awake中,獲取對GameObject的渲染器的引用:
private Renderer rend;
void Awake() {
rend = GetComponent<Renderer>();
}
將紅色、藍色、綠色和——如果需要的話——顏色的 alpha 通道保存為不同的浮動首選項:
// Saving
if (GUI.Button(new Rect(700, 330, 50, 30), "Save"))
{
Color colorOfObject = rend.material.GetColor("_Color");
PlayerPrefs.SetFloat("rValue", colorOfObject.r);
PlayerPrefs.SetFloat("gValue", colorOfObject.g);
PlayerPrefs.SetFloat("bValue", colorOfObject.b);
PlayerPrefs.SetFloat("aValue", colorOfObject.a);
}
然后加載它,GetFloat相應地使用:
// Loading
if (GUI.Button(new Rect(770, 330, 50, 30), "Load"))
{
Color defaultColor = Color.red;
Color colorOfObject = new Color(
PlayerPrefs.GetFloat("rValue", defaultColor.r),
PlayerPrefs.GetFloat("gValue", defaultColor.g),
PlayerPrefs.GetFloat("bValue", defaultColor.b),
PlayerPrefs.GetFloat("aValue", defaultColor.a)
);
rend.material.SetColor("_Color", colorOfObject);
}
- 2 回答
- 0 關注
- 193 瀏覽
添加回答
舉報
