当玩家死亡然后使用一生时,如何节省生命?

时间:2016-11-19 23:25:23

标签: unity3d

嗨,我正在努力解决这个问题。在问这里之前我经常搜索。

所以我编写了一个街机游戏,当它死亡时,会弹出一个带有继续选项的菜单,使用五个生命中的一个。与地铁冲浪者一样用钥匙。

问题在于,当我使用一颗心时,我想要保存它。但每次我重新启动游戏时,它都会一直说出初始数字为五。或者不使用生命,它本身就会减去一个而不用点击"救救我"按钮。

这是我的代码:

public Text heart;
public Text heart2;

public int counter;




void Start () {

    heart.text = "" + counter;
    heart2.text = "" +counter;

}

// Update is called once per frame
void Update () {

}

public void SaveMe()
{
    heart.text = counter.ToString();
    heart2.text = counter.ToString();
    int heartScore = PlayerPrefs.GetInt("Life2", 0);
    heartScore--;
    if(heartScore<0)
    {
        heartScore = counter;
    }
    PlayerPrefs.SetInt("Life2", heartScore);
    heart.text = PlayerPrefs.GetInt("Life2", 0).ToString();
    heart2.text = PlayerPrefs.GetInt("Life2", 0).ToString();
}

}

然后我在按钮脚本中调用此方法。

2 个答案:

答案 0 :(得分:1)

您应该将生命计数器保存在文件中,或将PlayerPrefs保存为统一,以便加载场景不会影响计数器。

  

在游戏会话之间存储和访问玩家偏好。

答案 1 :(得分:-1)

当Unity加载一个新场景(如果不是以加法方式)时,它会在加载新场景之前销毁属于它的所有内容。如果您不想自动销毁GameObject,请阅读DontDestroyOnLoad

的说明

通常还要考虑将您的游戏模型(在这种情况下是变量计数器)与不同的组件分开,并使用scriptable objects来管理它/它们。从长远来看,它会让你的生活更轻松。