Unity中的LoadScene()函数什么时候改变场景?

2024-02-15

当您调用函数 LoadScene() 时 它是立即切换场景,还是只是表示场景需要更改? LoadScene()的文档没有说。

我正在使用的具体示例如下所示:

LoadScene(levelName);
ItemBox newBox = (ItemBox)Instantiate(...);

因此,通过上面的代码,newBox 会存在于我们刚刚加载的场景中,还是会在旧场景中创建,然后在加载新关卡时销毁。


It's

 UnityEngine.SceneManagement.SceneManager.LoadScene("Gameplay");

是的,它“立即”完成——也就是说s同步地。

换句话说,它“停”在该行代码处,等待加载整个场景(即使需要几秒钟),然后新场景开始。

不要使用您在问题中提到的旧命令。

请注意,Unity 还能够执行以下操作a同步加载..它“在后台缓慢加载新场景”。

However:我鼓励您只使用普通的“LoadScene”。重要的是可靠性和简单性。用户只需不介意如果机器在关卡加载时“停止”几秒钟。

(每次我在电视上单击“Netflix”时,电视都需要一些时间才能执行此操作。没人关心 - 这很正常。)

但如果您确实想在后台加载,请按以下方法...

public void LaunchGameRunWith(string levelCode, int stars, int diamonds)
    {
    .. analytics
    StartCoroutine(_game( levelCode, superBombs, hearts));
    }

private IEnumerator _game(string levelFileName, int stars, int diamonds)
    {
    // first, add some fake delay so it looks impressive on
    // ordinary modern machines made after 1960
    yield return new WaitForSeconds(1.5f);

    AsyncOperation ao;
    ao = UnityEngine.SceneManagement.SceneManager.LoadSceneAsync("Gameplay");

    // here's exactly how you wait for it to load:
    while (!ao.isDone)
        {
        Debug.Log("loading " +ao.progress.ToString("n2"));
        yield return null;
        }

    // here's a confusing issue. in the new scene you have to have
    // some sort of script that controls things, perhaps "NewLap"
    NewLap newLap = Object.FindObjectOfType< NewLap >();
    Gameplay gameplay = Object.FindObjectOfType<Gameplay>();

    // this is precisely how you conceptually pass info from
    // say your "main menu scene" to "actual gameplay"...
    newLap.StarLevel = stars;
    newLap.DiamondTime = diamonds;

    newLap.ActuallyBeginRunWithLevel(levelFileName);
    }

注意:该脚本回答了当玩家点击“进入实际游戏场景”时如何“从主菜单”传递信息的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity中的LoadScene()函数什么时候改变场景? 的相关文章

  • 高级 Win32 图像文件 I/O?

    我想在 Windows C 应用程序中将图像文件读入内存 什么是一个相当简单的解决方案 也许类似于 IOS 提供的UIImage 我希望支持合理数量的文件格式 我需要为图像处理的位图提供一些低级访问权限 我在互联网上阅读了很多内容 看起来
  • 从 SQL 数据库获取日期时间

    我的数据库表中有一个 DateTime 记录 我编写一个查询从数据库中获取它 string command2 select Last Modified from Company Data where Company Name Descrip
  • 在 Windows Phone 上启动 pdf 文件时出现 System.Runtime.InteropServices.COMException

    我正在尝试使用我之前在另一个应用程序上使用过的以下工作代码打开 pdf 文件 但这一次 当流程到达此行时 我收到 System Runtime InteropServices COMException Windows System Laun
  • Qt中正确的线程方式

    我的图像加载非常耗时 图像很大 并且在加载时也完成了一些操作 我不想阻止应用程序 GUI 我的想法是在另一个线程中加载图像 发出图像已加载的信号 然后用该图像重绘视图 我的做法 void Window loadImage ImageLoad
  • C中有const吗?

    这个问题可能很幼稚 但是 有没有constC 中的关键字 从哪个版本开始 之间有任何语义和 或句法差异吗const在 C 和 C 中 C 和 C 之间在语法上没有差异const关键字 除了一个相当晦涩的关键字 在 C 中 自 C99 起 您
  • 根据拦截和返回值自动重试客户端WCF调用

    是否可以拦截 WCF 调用的结果并重试该操作 例如 操作的返回值可能包含状态代码 指示我传递到原始调用的会话令牌已过期 在这种情况下 我可以检索新的会话令牌并使用新的会话令牌重试调用 是否可以通过使用 WCF 拦截返回值 检查它 然后以对操
  • 如何检测斑点并将其裁剪成 png 文件?

    我一直在开发一个网络应用程序 我陷入了一个有问题的问题 我会尝试解释我想要做什么 在这里您看到第一个大图像 其中有绿色形状 我想要做的是将这些形状裁剪成不同的 png 文件 并使它们的背景透明 就像大图像下面的示例裁剪图像一样 第一张图像将
  • CMake - 将预构建库链接到 C# 项目

    我正在使用 CMake 构建 C 库 该库依赖于已构建的库 dll 我似乎无法让图书馆链接到我的图书馆 我尝试过使用target link libraries mylib external lib 我也尝试过暴力破解 reference e
  • 在 C# 中赋值后如何保留有关对象的信息?

    我一直在问我的想法可能是解决方案 https stackoverflow com questions 35254467 is it possible in c sharp to get the attributes attached to
  • 在可观察项目生成时对其进行处理

    我有一个IObservable它会生成一次性物品 并且在其生命周期内可能会生成无限数量的物品 因此 我想在每次生成新项目时处理最后一个项目 因此Using http reactivex io documentation operators
  • 使用 Linq 进行异步Where过滤

    我有一个List通过填充的元素async调用 WebService 没问题 我需要过滤该列表以便在应用程序视图上显示某些内容 我试过这个 List
  • 为什么 C 函数不能返回数组类型?

    我是 C 语言新手 想知道 为什么 C 函数不能返回数组类型 我知道数组名是数组第一个值的地址 而数组是 C 中的二等公民 您自己已经回答了这个问题 数组是二等公民 C 按值返回 数组不能按值传递 因此不能返回它们 至于为什么数组不能按值传
  • 如何使用 Clang 查找内存泄漏

    我在我的机器 ubuntu 中安装了 Clang 以便发现我的 C 代码中的内存泄漏 我编写了一个示例代码来检查它的工作情况 如下所示 File hello c for leak detection include
  • 用 C# 编写的带有点击移动的 WPF 游戏

    我试图将标签网格移动到鼠标的位置 就像冒险游戏中的移动一样 理想情况下 我会在途中删除并重新绘制它们 但是 现在我只想弄清楚如何将 int 转换为厚度或 pointtoscreen 到目前为止我有 player XMove int Mous
  • 改进C++逐行读取文件的能力?

    我正在解析大约 500GB 的日志文件 我的 C 版本需要 3 5 分钟 我的 Go 版本需要 1 2 分钟 我正在使用 C 的流来流式传输文件的每一行以进行解析 include
  • SSBO 是更大的 UBO?

    我目前正在 OpenGL 4 3 中使用 UBO 进行渲染 以将所有常量数据存储在 GPU 上 诸如材料描述 矩阵等内容 它可以工作 但是 UBO 的小尺寸 我的实现为 64kB 迫使我多次切换缓冲区 减慢渲染速度 我正在寻找类似的方法来存
  • 删除对象时指针自动指向空

    假设我有一个对象和其他几个不同类类型的对象中的 10 个指向它的指针 如果对象被删除 这些指针必须设置为空 通常我会将对象的类与具有指向它的指针的类互连 以便它可以通知它们它正在被删除 并且它们可以将它们的指针设置为空 但这也有一个负担 即
  • 宏观评价[重复]

    这个问题在这里已经有答案了 可能的重复 未定义的行为和序列点 https stackoverflow com questions 4176328 undefined behavior and sequence points 我无法理解以下宏
  • 如何使用 g++ 在 c++ 20 中使用模块?

    我读了这个链接https gcc gnu org wiki cxx modules https gcc gnu org wiki cxx modules并尝试从该网站复制以下示例 我已经知道这个编译器部分支持模块系统 注 我用的是windo
  • 有没有办法让 VS2010 在我的方法中扩展或收缩 try 块?

    我的代码有很多 try catch finally 块 与我在 VS2010 中的方法不同 除了添加区域之外 我无法在开发时扩展或收缩这些区域来隐藏内容 try vm R vm Qu vm T vm D vm Fil vm Type vm

随机推荐

  • 将 const char* 返回到 char*,然后更改数据

    我对以下代码感到困惑 string str SDFDFSD char pStr char str data for int i 0 i lt iSize i pStr i tolower pStr i here str data 回报con
  • ZeroMQ 多线程:按需创建套接字还是使用套接字对象池?

    我正在利用 ZeroMQ N to N 发布 订阅模型构建一个 POC 在我们的应用服务器中 当处理 http 请求时 如果线程从数据库中提取数据 它就会使用该数据更新本地 memcache 实例 为了同步应用程序服务器集群中的其他 mem
  • Haskell N 叉树遍历

    我对 Haskell 还很陌生 我正在尝试找出如何遍历 n 叉树 作为输出 我希望获得叶值列表 因为分支没有值 因此对于 testtree 这将是 4 5 到目前为止我的定义是 data Tree a Leaf a Branch Tree
  • 替换 Fragment 时出现 IllegalStateException

    它是使用兼容性包的小型 Android 2 2 测试应用程序 这是我在收到点击时尝试替换片段的 当然是错误的 方法 我试图用同一 Fragment 类的新 不同 实例替换它 正如我将解释的那样 它无法按预期工作 我需要帮助 public c
  • 两个类里面的代码几乎重复

    此时此刻 我有两节课 UserHibernateDao and TicketHibernateDao import java util List import org springframework orm hibernate3 suppo
  • 如何转义 SQLite FTS 查询的字符串

    我正在尝试使用不受信任的用户输入执行 SQLite FTS 查询 我不想让用户访问查询语法 也就是说他们将无法执行类似的匹配查询foo OR bar AND cats 如果他们尝试使用该字符串进行查询 我想将其解释为更像是foo OR ba
  • Android 网络提供商,需要互联网吗?

    我正在使用网络提供商进行位置更新 我的手机需要联网吗 这是我的代码 LocationMngr LocationManager getSystemService Context LOCATION SERVICE LocationMngr re
  • 使用 pojo 自动完成 primefaces

    我读过一些关于同一组件的质量检查 但我觉得我错过了一些东西 因为我落后了一步 当我使用 primefaces 自动完成组件时 我什至无法打开页面 它的片段是
  • JavaScript 中的 Splat 运算符相当于 Python 中的 *args 和 **kwargs?

    我经常使用 Python 而且我现在正在快速学习 JavaScript 或者我应该说重新学习 所以我想问一下 相当于什么 args and kwargs在 JavaScript 中 ES6 在 JavaScript 中添加了扩展运算符 fu
  • 如何从 CMake 命令行更改 C++ 标准?

    目前我有一个需要 C 17 的项目 因此在CMakeLists txt我很早就有这条线 set CMAKE CXX STANDARD 17 从命令行 cmake 偶尔我想测试该项目是否也可以使用 C 20 进行编译 以避免意外 如何选择从命
  • 我的应用或其依赖项是否违反了 Android 广告 ID 政策?

    我刚刚收到来自 Google Play 的这条消息 但我没有收集广告 ID 警告原因 违反Android广告ID使用 政策和开发者分发协议第 4 8 条 Google Play 要求开发者在以下情况下提供有效的隐私政策 应用程序请求或处理敏
  • 如何在运行时修改 web.config appSettings?

    我对如何在运行时修改 web config appSettings 值感到困惑 例如 我有这个 appSettings 部分
  • 为什么 Haskell 不能正确排序这些 IO 操作?

    我的一个朋友问我为什么要学习 Haskell 为了展示 Haskell 的强大功能 我编写了一个小程序来显示素数列表 main do putStr Enter the number of prime numbers to display n
  • 在 VB.NET 表单之间传递数据

    我有一个带有按钮的表单 单击时会弹出一个对话框表单 在此对话框中 用户需要选择一些数据 完成后单击 确定 按钮 一旦他们单击 确定 按钮 它需要将一个整数返回到之前的形式 我创建了一个对话框表单并尝试通过以下代码调用它 Dim intRes
  • JsTree 与 jquery.validate 冲突

    我有一个 Jstree 填充项目列表 当我单击一个节点时 会使用 ajax 加载部分节点 一切正常 直到我包含 jquery validate 脚本来验证我的表单
  • 无法在 Flutter 中使用 Firebase Auth 进行注册

    我正在为我的应用程序使用 Firebase 我已正确设置所有内容 并且 Firebase Firestore 工作正常 没有任何问题 我能够在那里读取和写入数据 但是当我尝试在 Firebase 中创建用户时 我在调试控制台中收到此消息 I
  • 如何在 nightwatch.js 中使用链接文本单击链接

    假设我的网页上有这些元素 a href dynamic1 One a a href dynamic2 Two a a href dynamic3 Three a 我想点击带有文字的链接Two 如何使用链接文字没有任何独特的属性 如 id 或
  • typescript Symbol.iterator

    我正在尝试创建一个自定义的可迭代对象 这是我的代码的简化示例 class SortedArray Symbol iterator yield 1 yield 2 yield 3 return 4 const testingIterables
  • 在 std::map 中搜索特定值[重复]

    这个问题在这里已经有答案了 可能的重复 检查 std map 中是否存在值 C https stackoverflow com questions 535317 checking value exist in a stdmap c 如何遍历
  • Unity中的LoadScene()函数什么时候改变场景?

    当您调用函数 LoadScene 时 它是立即切换场景 还是只是表示场景需要更改 LoadScene 的文档没有说 我正在使用的具体示例如下所示 LoadScene levelName ItemBox newBox ItemBox Inst