在Unity中,如何让脚本在场景之间相互共享值?

时间:2017-06-02 02:10:23

标签: unity3d

我正在制作一个具有几个阶段的游戏,这些阶段各有十个级别,在C#中,你将如何编写一个脚本,当第一阶段的第十级完成时,告诉另一个场景中的另一个脚本十级第一阶段结束并解锁第二阶段。

2 个答案:

答案 0 :(得分:1)

您可以将它们保存在PlayerPrefs中:

https://docs.unity3d.com/ScriptReference/PlayerPrefs.html

或在文件中:

https://unity3d.com/learn/tutorials/topics/scripting/persistence-saving-and-loading-data

或者只是将变量存储在游戏对象的Monobehaviour脚本中,该游戏对象在GameManager等场景之间是持久的(它必须在Awake()中使用DontDestroyOnLoad()函数)

答案 1 :(得分:0)

实际上有几种不同的方法来完成这项工作。我们可以将它分为两​​种类型

  1. 本地
  2. 基于服务器
  3. 本地意味着您的系统就像播放器prefas一样,或者在基于服务器的数据库中不会在负载下销毁,您可以跟踪指定的用户并定期更新其数据以允许或解锁不同的级别。数据库对您来说有点困难,因为您必须编写服务器端代码,需要为最终用户创建数据库和Internet。因此,您可以轻松地使用本地选项 您还可以在此处阅读我的详细答案Best way to save data in unity