Unity 场景切换

Unity场景切换可使用以下方法:

1、SceneManager.LoadScene()方法:

using UnityEngine.SceneManagement;// 切换到Scene2场景
SceneManager.LoadScene("Scene2");

2、使用SceneManager.LoadSceneAsync()方法异步加载场景,异步加载我们还可以设置进度条:

using System.Collections;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
using TMPro;public class SceneLoader : MonoBehaviour
{public Image progressImg; // 进度条UI元素public TextMeshProUGUI progressText; // 百分比文本元素private void Start(){}private IEnumerator LoadSceneAsync(string name){AsyncOperation asyncOperation = SceneManager.LoadSceneAsync(name);// 禁止场景在加载完成后自动切换asyncOperation.allowSceneActivation = false;while (!asyncOperation.isDone){// 更新进度条的值float progress = Mathf.Clamp01(asyncOperation.progress / 0.9f); // 0.9是加载完成时的进度progressImg.fillAmount = progress;// 更新百分比文本int percentage = Mathf.RoundToInt(progress * 100);progressText.text = percentage.ToString() + "%";// 如果进度达到90%,允许场景切换if (progress >= 0.9f){//因为在加载完成时,asyncOperation.progress的值可能不会达到100%,因此我们使用0.9作为阈值来判断加载是否完成。asyncOperation.allowSceneActivation = true;}//此处暂停一帧,等待进度条更新完成后进行渲染yield return null;}}// 启动异步加载场景的协程public void LoadAnotherScene(string name){StartCoroutine(LoadSceneAsync(name));}
}

这里,我通过一个Image设置进度条,并加一个Text记录进度百分比,并写了个方法调用切换场景方法。我模拟的场景效果如下:

无论使用何种方法,我们都要在Build Setting中把场景加进去。

当我们使用上面两个方法切换场景,其中的参数就是进入这里查询,只有这里有参数对应的场景才能正常切换,此外参数除了用场景名,也可以用上图中场景添加的顺序值,如0,1...作为参数代替场景名参数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/218693.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux:docker基础操作(3)

docker的介绍 Linux:Docker的介绍(1)-CSDN博客https://blog.csdn.net/w14768855/article/details/134146721?spm1001.2014.3001.5502 通过yum安装docker Linux:Docker-yum安装(2)-CSDN博客https://blog.…

pandas根据列正逆序排序

题目:根据 buy_quantity 列进行排名,相同值分配相同的最低排名。 import pandas as pd# 创建一个示例 DataFrame data {item_id: [1, 2, 3, 4, 5, 6, 7], buy_quantity: [1, 2, 2, 3, 3, 4, 5]} df pd.DataFrame(data)# 使用 rank() 函数为 buy_quant…

JMeter 测试脚本编写技巧

JMeter 是一款开源软件,用于进行负载测试、性能测试及功能测试。测试人员可以使用 JMeter 编写测试脚本,模拟多种不同的负载情况,从而评估系统的性能和稳定性。以下是编写 JMeter 测试脚本的步骤。 第 1 步:创建测试计划 在JMet…

Redis分片集群

文章目录 Redis分片集群搭建分片集群散列插槽插槽原理小结 集群伸缩需求分析创建新的redis实例添加新节点到redis转移插槽 故障转移自动故障转移手动故障转移 RedisTemplate访问分片集群 Redis分片集群 搭建分片集群 主从和哨兵可以解决高可用、高并发读的问题。但是依然有两…

MidJourney笔记(3)-Prompts

MidJourney的Prompts介绍 MidJourney的Prompts是MidJourney的核心之一,这也是我们后续使用MidJourney过程中最重要的工作内容,根据生成的图片,不断的优化我们的Prompts内容。 那Prompts的中文意思是提示的意思。 Prompts的提示语有很多,最基础的用法就是: /imagine prompt…

3.前端--HTML标签2【2023.11.25】

1.HTML常用标签(文本图像链接&#xff09; 文本标签 标题 <h1> - <h6> 段落<p> 我是一个段落标签 </p> 换行 <br /> <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta ht…

鸿蒙开发报错:agconnect sdk not initialized. please call initialize()【BUG已解决】

文章目录 项目场景:问题描述原因分析:解决方案:总结:项目场景: 鸿蒙开发报错: agconnect sdk not initialized. please call initialize() 问题描述 报错内容为: 10-25 11:41:01.152 6076-16676 E A0c0d0/JSApp: app Log: 数据查询失败: {“code”:1100001,“messag…

c语言:有关内存函数的模拟实现

memcpy函数&#xff1a; 功能&#xff1a; 复制任意类型的数据&#xff0c;存储到某一数组中。 代码模拟实现功能&#xff1a; #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> #include <stdio.h> #include<assert.h> memcpy…

论文阅读——Prophet(cvpr2023)

一、Framework 这个模型分为两阶段&#xff1a;一是答案启发生成阶段&#xff08;answer heuristics generation stage&#xff09;&#xff0c;即在一个基于知识的VQA数据集上训练一个普通的VQA模型&#xff0c;产生两种类型的答案启发&#xff0c;答案候选列表和答案例子&am…

C++ vector迭代器失效

STL中vector迭代器失效常见错误写法示例 最近在看STL容器失效的例子&#xff0c;涉及到vector数组迭代器失效的问题&#xff0c;如果不注意使用&#xff0c;很容易出现问题&#xff0c;我们先来看一下一个简单的示例程序&#xff0c;在数组nums中删除大于50的元素&#xff0c;…

IT行业多项目管理的方法与策略:优化资源分配与提升项目成功率

多项目管理已成为项目经理们面临的常态&#xff0c;IT行业如何高效进行项目管理呢&#xff1f; 多项目管理过程中存在的问题 1、多类型项目并行&#xff0c;项目流程掺杂混乱&#xff0c;项目进度难以监控&#xff0c;反应缓慢&#xff0c;容易产生延误风险。 2、团队资源有…

从0开始学习JavaScript--JavaScript函数返回值

在JavaScript中&#xff0c;函数是一种强大的工具&#xff0c;不仅能够执行一系列操作&#xff0c;还可以返回值。理解函数返回值的概念对于编写清晰、灵活的代码至关重要。本文将深入探讨JavaScript函数返回值的各种方面&#xff0c;包括基本返回值、多返回值、异步函数的返回…