当前位置:网站首页>Unity场景跳转及退出
Unity场景跳转及退出
2022-07-06 09:18:00 【SQ刘】
简介:
Unity中实现简单的各个场景跳转,以及实现发布后点击“退出场景”实现界面的关闭操作。
实现效果:
实现步骤:
一、新建场景
在你创建的工程里,添加几个需要实现跳转的场景,这里以4个场景相互跳转为例。4个场景名如下图所示。
上图场景中,可以先创建对应场景名的3D物体,例如,场景Capsule中,就可以创建几个胶囊体Capsule(如下图所示);场景Cube中,就可以创建几个立方体Cube;场景Sphere中,就可以创建几个球体Sphere。具体创建什么场景,根据大家各自项目,以及需要完成跳转的场景来定,我这里只是案例说明。
二、创建跳转按钮
1、如下图所示,创建UI-Button。
2、修改画布Canvas的UI Scale Mode及其分辨率。
3、修改Button名,做到见名知意,防止后面添加其他按钮造成混淆,具体操作如下图所示。
4、Ctrl+D复制4份,分别将其按钮重命名为BtnCube,BtnMain,BtnSphere,BtnTuiChu,并调整它们在画布中的位置,如下图所示。
三、添加代码
1、新建一个名为“Scripts”的文件夹,用来存放所有的C#脚本。
2、全部跳转代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class ChangJingTiaoZhuan : MonoBehaviour
{
public void TiaoZhuanCapsule()
{
SceneManager.LoadScene("Capsule");
}
public void TiaoZhuanCube()
{
SceneManager.LoadScene("Cube");
}
public void TiaoZhuanMain()
{
SceneManager.LoadScene("Main");
}
public void TiaoZhuanSphere()
{
SceneManager.LoadScene("Sphere");
}
public void TuiChuChangJing()
{
//#if UNITY_EDITOR
//UnityEditor.EditorApplication.isPlaying = false;//编辑状态下退出
//#else
Application.Quit();//打包编译后退出
//#endif
}
}
四、添加按钮事件注册
1、将脚本拖到Canvas里,如下图所示。
2、具体操作如下图所示。
3、下面几个按钮响应事件的添加道理同上,注意对应事件不要添加错位即可。
4、全部添加完成后,保存当前场景。
5、鼠标选中Canvas和EventSystem,右击选择复制Copy,如下图所示。
6、鼠标双击进入场景Cube,然后粘贴Paste上一个场景中的Canvas。
7、另外的Main场景和Sphere场景操作步骤同上。
8、点击File,选择Build Settings,将需要实现跳转的场景全部拖进来,如下图所示。
注:这一步一定要有,不然运行后会找不到要跳转的场景!!
9、至此,各个不同场景之间的跳转切换,以及退出场景操作全部完成。
五、工程发布
1、点击File,选择Build Settings,选择Player Settings,修改其部分属性,完成后点击“Build”即可。
2、Build完成后,打开其所在文件夹,双击打开“TiaoZhuan.exe”程序即可运行。
边栏推荐
- @Autowired 和 @Resource 的区别
- [leetcode622]设计循环队列
- [Nodejs] 20. Koa2 onion ring model ----- code demonstration
- .elf .map .list .hex文件
- Stm32f1+bc20+mqtt+freertos system is connected to Alibaba cloud to transmit temperature and humidity and control LED lights
- Arduino get random number
- (3) Introduction to bioinformatics of R language - function, data Frame, simple DNA reading and analysis
- Learning notes of JS variable scope and function
- ES6语法总结--上篇(基础篇)
- Types de variables JS et transformations de type communes
猜你喜欢
js题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
[Clickhouse kernel principle graphic explanation] about the collaborative work of partitioning, indexing, marking and compressed data
Arduino uno R3 register writing method (1) -- pin level state change
ESP8266连接onenet(旧版MQTT方式)
VSCode基础配置
Single chip Bluetooth wireless burning
(5) Introduction to R language bioinformatics -- ORF and sequence analysis
Conditional probability
[Red Treasure Book Notes simplified version] Chapter 12 BOM
程序员老鸟都会搞错的问题 C语言基础 指针和数组
随机推荐
Understanding of AMBA, AHB, APB and Axi
RT thread API reference manual
编译原理:源程序的预处理及词法分析程序的设计与实现(含代码)
Intermediate use tutorial of postman [environment variables, test scripts, assertions, interface documents, etc.]
MySQL时间、时区、自动填充0的问题
Pat 1097 duplication on a linked list (25 points)
Esp8266 connects to onenet cloud platform (mqtt) through Arduino IDE
ES6 grammar summary -- Part I (basic)
Learning notes of JS variable scope and function
基於Redis的分布式ID生成器
[Clickhouse kernel principle graphic explanation] about the collaborative work of partitioning, indexing, marking and compressed data
[esp32 learning-1] construction of Arduino esp32 development environment
[leetcode15] sum of three numbers
Who says that PT online schema change does not lock the table, or deadlock
Common properties of location
【ESP32学习-2】esp32地址映射
VIM command line notes
ARM PC=PC+8 最便于理解的阐述
Flink late data processing (3)
Types de variables JS et transformations de type communes