Unity3d 在Unity中,如何使脚本在场景之间彼此共享值?

Unity3d 在Unity中,如何使脚本在场景之间彼此共享值?,unity3d,Unity3d,我正在制作一个有几个阶段的游戏,每个阶段有十个级别,在C#中,你如何制作一个脚本,当第一阶段的十个级别完成时,告诉另一个场景中的另一个脚本第一阶段的十个级别完成并解锁第二阶段。实际上有几种不同的方法来完成这项工作。我们可以把它分为两类 本地的 基于服务器的 本地方法在您的系统上,如播放器prefas或不在加载时销毁,而基于服务器的包括数据库,您可以在其中跟踪指定的用户并定期更新其数据,以允许或解锁不同级别。数据库对您来说有点困难,因为您必须编写服务器端代码,需要为最终用户创建数据库和intern

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

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

  • 本地的
  • 基于服务器的
  • 本地方法在您的系统上,如播放器prefas或不在加载时销毁,而基于服务器的包括数据库,您可以在其中跟踪指定的用户并定期更新其数据,以允许或解锁不同级别。数据库对您来说有点困难,因为您必须编写服务器端代码,需要为最终用户创建数据库和internet。因此,您可以轻松地使用本地选项,如
    您也可以在此处阅读我的详细答案。

    您可以将它们保存在播放器中参考:

    或在文件中:


    或者简单地将变量存储在游戏对象上的MonoBehavior脚本中,该对象在场景之间是持久的,比如GameManager(必须在Awake()中使用DontDestroyOnLoad()函数)

    Id say要使用PlayerRefs来保存这些变量类型的值这里回答了可能的重复项非常感谢您的帮助,除了如何使用playerprefs?每次需要保存某些内容时,请使用playerprefs。例如:PlayerPrefs.SetFloat(“玩家健康”,playerHealthVariable);然后,当您更改场景时,可以使用PlayerPrefs.GetFloat(“玩家健康”);非常感谢你!非常有用!