我的游戏中有一些关卡。其中一些关卡包含金币。我需要玩家只能收集一次。如果用户再次玩同一级别的硬币,则不应再次出现。 (我正在使用unity和c#)
这里是附在硬币上的脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Goldcoin : MonoBehaviour
{
void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player"))
{
SaveManager.Instance.state.goldcoin++;
SaveManager.Instance.Save();
Destroy(gameObject);
}
}
}
您想要的是场景之间的数据持久性。
[Data persistence表示即使关闭应用程序或更改场景,此数据也将保留,不会被删除。
如果只希望在同一程序执行中具有持久性,则可以使用DontDestroyOnLoad来创建一个不会在每次场景加载时都被销毁的对象。
但是,如果要在多次执行应用程序之间保留此信息,则需要其他内容,例如文件。您可以通过多种方式存储当前场景(甚至整个游戏)的状态,最简单的一种是:
如果您不熟悉JSON,可以检查我的JsonManager存储库。