C# 由用户保存游戏中的材料
我在我的游戏中有颜色选择器来定制游戏中的角色服装。 如何保存这些更改? 我尝试过这种方法,但不起作用,我不知道为什么:C# 由用户保存游戏中的材料,c#,unity3d,C#,Unity3d,我在我的游戏中有颜色选择器来定制游戏中的角色服装。 如何保存这些更改? 我尝试过这种方法,但不起作用,我不知道为什么: public Material[] ShirtColorMat; Renderer renderer; int PantSaver; void Start() { renderer = this.GetComponent<Renderer>(); PantSaver = PlayerPrefs.GetInt("Saver");
public Material[] ShirtColorMat;
Renderer renderer;
int PantSaver;
void Start()
{
renderer = this.GetComponent<Renderer>();
PantSaver = PlayerPrefs.GetInt("Saver");
}
public void _000000() // i use this on button
{
renderer.material = ShirtColorMat[0];
Save();
}
void Save()
{
PlayerPrefs.SetInt("Saver", PantSaver);
}
公共材料[]衬衫配色;
渲染器渲染器;
int PantSaver;
void Start()
{
renderer=this.GetComponent();
PantSaver=PlayerPrefs.GetInt(“Saver”);
}
public void _000000()//我使用这个on按钮
{
renderer.material=ShirtColorMat[0];
Save();
}
作废保存()
{
PlayerPrefs.SetInt(“Saver”,PantSaver);
}
谢谢您可能在Save()
中想说PlayerPrefs.SetInt(“Saver”,ShirtColorMat[0])代码>取而代之。“PantSaver”中的内容。这意味着使用上述代码,您当前首先获得值“Saver”,然后再次设置相同的值
的第一个字符串参数是保存到的键,以后可以从中获取。您没有更新PantSaver
值
也许应该是这样
public void _000000()
{
PantSaver = 0;
renderer.material = ShirtColorMat[PantSaver];
Save();
}
void Save()
{
PlayerPrefs.SetInt("Saver", PantSaver);
}
通常情况下,此处的物业可能很有用:
private int _pantSaver;
private int PantSaver
{
get => _pantSaver;
set
{
_pantSaver = value;
PlayerPrefs.SetInt("Saver", value);
PlayerPrefs.Save();
renderer.material = ShirtColorMat[value];
}
}
这样,每次将新值指定给PantSaver
时,它都会自动保存,并更新渲染器
那么你只需要
public void _000000()
{
PantSaver = 0;
}
最后,请将\u000000
重命名为更有意义的名称,例如ResetPant
或类似名称。ShirtColorMat[0]
将是材料。。不是int
。。。如何将材质
保存为int
?可以从材质中获取颜色值并将其保存为字符串或多个int。