0
それぞれの個別のゲームオブジェクトのアクティブ状態を保存したいので、リロードするときに収集したものはもう存在しません。 マイコード:Unity GameObject setActive playerprefsに保存
public class PlayerController : MonoBehaviour {
public LevelManager levelManager;
public GameObject[] stardust; //array of stardust in level
public int isActive; //variable for amount of stardust collected
void Start()
{
isActive = PlayerPrefs.GetInt("stardust");
active();
}
void OnTriggerEnter(Collider other)
{
//Stardust
if (other.gameObject.CompareTag("stardust"))
{
isActive = 1;
PlayerPrefs.SetInt("stardust", isActive);
active();
//other.gameObject.SetActive(false);
levelManager.score++;
levelManager.setScoreText();
audioSource.Play();
PlayerPrefs.SetInt("score", levelManager.score);
}
}
void active()
{
if (isActive == 0) //if none are collected
{
for (int i = 0; i < stardust.Length; i++)
{
stardust[i].SetActive(true); //make all visible
}
}
if (isActive == 1) //first one collected
{
stardust[0].SetActive(false);
stardust[1].SetActive(false);
stardust[2].SetActive(false);
}
}
}
をあなたは私が個別に各1をチェックしないか、それが非アクティブにすべてのオブジェクトを設定し、見ることができるように?
私はすべてのスターダストに対して、playerprefsで単一のキーを使用しています。むしろスターダストごとにキーを設定すべきですか?
私はそれぞれ独自の方法でそれぞれをチェックしていない成功
[Unityでゲームオブジェクトをシリアライズして保存する方法](https://stackoverflow.com/questions/36852213/how-to-serialize-and-save-a-gameobject-in-unity)の可能な複製 –