c# - 如何以编程方式在unity3d中使用scenemanager通过loadlevel加载/获取场景变量

标签 c# variables unity3d scene scene-manager

Application.LoadLevel(level); 

已弃用和新增 SceneManager被提议,我想问的是如何使用它来加载/获取简单的参数,如字符串类型,以及生命周期的哪些功能是最佳实践?(例如 StartAwake )

SceneManager.LoadScene("resultScene", chosenOptions);

注意简化:除了编写新类之外还有其他选择吗 such as

最佳答案

Unity 中的内容与 native 移动应用程序不同。加载时无需传递参数即可在下一个场景中使用它们。只需在第一个场景中的空对象上添加一个脚本 DontDestroyOnLoad在其中并将您的值保存在此脚本中。由于此对象会贯穿整个游戏生命周期,您可以将您的值存储在此脚本中。并在加载新场景之前更新它们。然后在新场景的开始等中使用它们。

你可以看看callback execution order并选择适合您需要的方法。

Read more关于预加载的场景/对象

关于c# - 如何以编程方式在unity3d中使用scenemanager通过loadlevel加载/获取场景变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40590567/

相关文章:

c++ - 声明 C++ 中的类型太多

c# - 无法在 Unity 中实例化行为

C# 和 SerialPort 类截断数据

c# - EventWaitHandle 是否有任何隐式 MemoryBarrier?

c# - 如何在 C# 中复制数组

r - 如何根据其他变量创建新的序数变量?

c# - XNA 中的四元数旋转

Java 长数字帮助

c# - 转换为 3D 后速度反射不再起作用

android - Gradle(Android Studio)不会生成jar文件