问题描述
我有此代码设置,可让我更改播放器的颜色。在Unity测试器中,当我点击播放时,我可以更改播放器的颜色并在场景之间进行更改,而该颜色保存得很好,但是当我构建项目时,我只能在播放器自定义菜单中更改颜色,当我更改场景时,我会获得默认的颜色
using UnityEngine;
public class CustomizeColors : MonoBehavIoUr
{
public Color[] headColors;
public Material headMat;
public void ChangeHeadColor(int colorIndex)
{
headMat.color = headColors[colorIndex];
PlayerPrefs.SetInt("HeadColor",colorIndex);
PlayerPrefs.Save();
}
}
解决方法
您在此处显示的代码不完整。如果要保存颜色,可以在PlayerPrefs.GetInt()
函数中使用Start()
。正如我所说,如果您更新了问题并向我们展示了用于在开始时选择颜色的完整班级代码,我会为您提供帮助。
在开始之前,请删除您的PlayerPrefs.cs脚本,因为该脚本会干扰UnityEngine。这应该起作用:
using UnityEngine;
public class CustomizeColors : MonoBehaviour
{
public Color[] Colors;
public Material Mat;
public void Start()
{
if (PlayerPrefs.HasKey("HeadColor"))
{
Mat.color = Colors[PlayerPrefs.GetInt("HeadColor")];
Debug.Log("works");
}
}
public void ChangeColor(int colorIndex)
{
Mat.color = Colors[colorIndex];
PlayerPrefs.SetInt("HeadColor",colorIndex);
PlayerPrefs.Save();
}
}