【unity】(1)场景

ops/2024/10/11 5:30:27/

Unity的场景(Scene)是构建游戏中各种环境和级别的基础。一个场景可以包含游戏中的所有对象,如角色、道具、地形等。

创建和管理场景

  1. 创建新场景

    • 在Unity编辑器中,选择File > New Scene,或者使用快捷键Ctrl+N(Windows)或Cmd+N(Mac)。
    • 你可以选择创建一个空场景或使用预设配置(如2D、3D、VR等)。
  2. 保存场景

    • 保存新创建的场景通过File > Save Scene,或者Ctrl+S(Windows)或Cmd+S(Mac)。
    • 命名场景,并选择合适的文件夹保存。
  3. 加载场景

    • 在Unity中,可以通过File > Open Scene打开已存在的场景,或者使用Ctrl+O(Windows)或Cmd+O(Mac)。

场景视图和导航

  • 场景视图:场景视图(Scene View)是Unity编辑器中用于查看和编辑当前场景的工作区域。
  • 导航
    • 平移(Pan):按住鼠标中键并移动鼠标。
    • 旋转(Orbit):按住Alt键和左键并移动鼠标。
    • 缩放:使用鼠标滚轮或按住Alt键和右键并移动鼠标。

场景层次结构

  • 层次结构视图(Hierarchy):显示当前场景中所有游戏对象的树状列表。你可以通过这个视图来选择、排列和管理对象。
  • 父子关系:通过拖放一种游戏对象到另一种上,可以创建一个父子关系。这对于创建组织有序的场景结构非常有用。

场景发布

  • 构建设置(Build Settings):通过File > Build Settings配置游戏的发布设置。这里你可以添加需要包含在游戏构建中的场景。

代码控制

Unity使用SceneManager类来管理场景的加载、卸载以及查询。要使用场景管理功能,需要引入命名空间:

using UnityEngine.SceneManagement;

同步加载场景

同步加载会在加载新场景时阻塞游戏的运行。这是最基本的加载方式,但在加载大型场景时可能导致游戏短暂卡顿。

SceneManager.LoadScene("SceneName");

异步加载场景

异步加载可以在后台加载场景,这样游戏就不会在加载过程中冻结。这对于提升用户体验非常有用。

IEnumerator LoadYourAsyncScene(string sceneName)
{AsyncOperation asyncLoad = SceneManager.LoadSceneAsync(sceneName);// 等待加载完成while (!asyncLoad.isDone){yield return null;}
}

设置物体延时加载

在某些情况下,你可能希望场景中的某些物体不是立即加载,而是在特定条件满足后才加载。这可以通过在场景加载后动态加载资源来实现。

  1. 预制体:首先,将需要延时加载的物体制作成预制体(Prefab)。

  2. 脚本控制加载:编写脚本来在运行时实例化这些预制体。

public GameObject prefabToLoad; // 指向你的预制体void Start()
{// 可以在这里调用LoadObject(),或根据需要在其他地方调用
}void LoadObject()
{Instantiate(prefabToLoad, new Vector3(0, 0, 0), Quaternion.identity);
}

场景加载优化技巧

  1. 使用异步加载:使用SceneManager.LoadSceneAsync来避免加载大型场景时的卡顿。
  2. 分离场景:将游戏分成多个小场景,通过SceneManager.LoadSceneAsyncLoadSceneMode.Additive选项逐渐加载,可以实现无缝场景转换。
  3. 延迟加载非关键资源:对于非立即需要的资源,可以在场景加载完成后,根据游戏进度或玩家行为动态加载。
  4. 使用加载画面:在场景加载期间显示一个加载画面,提升用户体验。

http://www.ppmy.cn/ops/25783.html

相关文章

【论文阅读】IPT:Pre-TrainedImageProcessingTransformer

Pre-TrainedImageProcessingTransformer 论文地址摘要1. 简介2.相关作品2.1。图像处理2.2。 Transformer 3. 图像处理3.1. IPT 架构3.2 在 ImageNet 上进行预训练 4. 实验4.1. 超分辨率4.2. Denoising 5. 结论与讨论 论文地址 1、论文地址 2、源码 摘要 随着现代硬件的计算能…

Django模板查找顺序

Django模板查找顺序 首先看django项目的settings.py文件中是否定义DIRS 如果有定义,首先去这个目录下面查找(根目录下templates),找到了后续就不找了;如果没有,就顺着app的注册顺序进行查找

嵌入式MCU和SOC的区别?

你大概率并不知晓嵌入式 MCU 与 SOC 之间的区别吧?从表面上来看,MCU 指代的是嵌入式微控制器,而 SOC 则代表着片上系统,这仿佛仅仅是嵌入式系统的不同称谓罢了。然而,在实际的研发以及产品设计过程中,你将会…

Docker——数据管理和网络通信

目录 一、Docker的数据管理 1.数据卷 2.数据卷容器 3.容器互联 二、Docker镜像的创建 1.基于现有镜像创建 2.基于本地模板创建 3.基于Dockerfile 创建 3.1联合文件系统(UnionFS) 3.2镜像加载原理 3.3为什么Docker里的Centos大小才200M 4.Dcok…

PLC通过Modbus转Profinet网关连接变频器与电机通讯

Modbus转Profinet网关(XD-MDPN100)是一种能够实现Modbus协议和Profinet协议之间转换的设备。Modbus转Profinet网关可提供单个或多个RS485接口,PLC作为控制中枢,变频器作为控制电机转速,通过Modbus转Profinet网关&#…

Python数据爬取超简单入门

## 什么是网络爬虫? 网络爬虫是一种自动浏览器程序,能够自动地从互联网获取数据。爬虫的主要任务是访问网页,分析网页内容,然后提取所需的信息。爬虫广泛应用于数据收集、数据分析、网页内容监控等领域。 ## 爬虫的基本步骤 1.…

2024全新瀚海跑道:矢量图片迅速养号游戏玩法,每天一小时,日转现200

最初我注意到这种玩法,是因为最近在浏览各大平台的视频时,我发现了一种特殊类型的账号,其养号成功率高达90%。这些账号发布的视频内容和数据非常夸张,而且制作起来非常简单,任何人都可以轻松上手。这些账号主要发布矢量…

智慧农场系统 搭建重点,会用到哪些三方服务?

智慧农场小游戏的搭建重点主要集中在游戏设计、用户体验、数据安全和稳定性等方面。为了实现这些目标,可能会用到以下第三方服务: 游戏引擎和开发工具:使用成熟的游戏引擎和开发工具可以极大地简化开发流程,提高开发效率。例如&a…