Unity 多场景/大场景加载解决方法
Unity 多场景/大场景加载解决方法
文章目录
- Unity 多场景/大场景加载解决方法
- 前言
- 一、通过距离判断实现加载场景
- 1.1.原理:
- 1.2.范围检测
- 1.3.方法弊端
- 二、通过触发检测实现加载场景
- 2.1.原理
- 2.2.碰撞检测
- 2.3.方法弊端
- 总结
- 完整代码工程示例
前言
记录一下最近学习的新的知识,关于解决多场景加载的问题,方便下次及时的巩固复习。
此次使用的是Unity的异步加载
来实现功能。
一、通过距离判断实现加载场景
1.1.原理:
将一个大场景的地图分成好几个场景,利用玩家的距离来判断加载哪个场景和卸载哪个场景。
1.2.范围检测
利用玩家的自身距离和预加载场景的距离判断
代码如下:
void DistanceCheck(){if (Vector3.Distance(player.position, transform.position) < loadRange){LoadScene();}else{UnLoadScene();} }
1.3.方法弊端
检测范围如果过大,临近很多的场景都会被加载出来。
二、通过触发检测实现加载场景
2.1.原理
将预加载场景处创建空的物体碰撞体,当玩家的碰撞器与其碰撞时,场景加载。如下图所示:
2.2.碰撞检测
代码如下:
private void OnTriggerEnter(Collider other){if (other.CompareTag("Player")){shouldLoad = true;}}private void OnTriggerExit(Collider other){if (other.CompareTag("Player")){shouldLoad = false;}}void TriggerCheck(){if (shouldLoad){LoadScene();}else{UnLoadScene();}}
2.3.方法弊端
大型项目内碰撞检测复杂,玩家容易与别的物体发生碰撞。
总结
以上就是今天学到的内容,本文仅仅简单介绍了大场景、多场景加载的两种方法思路。
完整代码工程示例
Unity 多场景/大场景加载解决方法相关推荐
- 猎豹浏览器插件无法加载怎么办 插件无法加载解决方法
首先,点击浏览器左上角的"豹头"图标,并在随后弹出的页面中选择[选项/设置]; 猎豹浏览器插件无法加载怎么办?插件无法加载解决方法 接着,在设置页面单击[我的应用],这时就可以看到 ...
- 【Unity】场景异步加载、卸载
场景异步加载.卸载: using System.Collections; using System.Collections.Generic; using UnityEngine; using Unit ...
- mysql_connect() 不支持 请检查 mysql 模块是否正确加载 解决方法
本文出自 "小鸡哥哥的空间" 博客,请务必保留此出处http://aishaoer.blog.51cto.com/769164/283947 本文出自 51CTO.COM技术博客 ...
- 谷歌浏览器导致图片无法加载解决方法总结
解决方法一参考:http://www.vimiy.com/a/dazahui/198679.html 解决浏览器 图片不显示 快捷方式后面加空格接着 -disable-ssl-false-start ...
- 群晖NoteStation一直显示“正在加载”解决方法(适用黑白群辉)
一.问题原因 最近套件中心提示NoteStation要升级(版本 2.6.0-1407),于是手贱点了升级按钮. 升级完成后打开NoteStation一直显示 "正在加载" ,等待 ...
- 群晖note station新版本一直显示“正在加载”解决方法
最新群晖NoteStation更新一直显示"正在加载".需要先备份好便签然后彻底删除掉NoteStation2.6.0版本 官方就能下载https://archive.synolo ...
- Unity 异步使用Additive加载场景导致的光照贴图出错的坑及解决办法
Lightmap(光照贴图)是Unity里很常用的一个功能,毕竟移动设备上实时光照不靠谱,要出效果还是得烘焙.但是在使用中发现了几坑的地方,通过自己写了个两个脚本就轻松搞定,这里分享下. 坑1: 异步 ...
- Unity 场景异步加载(加载界面的实现)
前言: 玩游戏最讨厌的是什么呢?当然是游戏加载界面啦 但是你知道吗,加载界面在游戏制作中是不可或缺的,它可以使我们的场景完全加载完毕后再进入游戏,确保用户不会出现加载卡顿的情况. 如何实现一个简易的加 ...
- Angular URL地址参数改变,视图不更新的解决办法(监听URL变化,重新加载数据方法)
import { ActivatedRoute,Router,NavigationEnd } from '@angular/router'; //钩子(组件组装完成之后调用的方法,仅调用一次)ngAf ...
最新文章
- C++程序的多文件组成
- 一直在纠结怎样取出 combox 控件elect的文字
- python配色_python语言再次解决文章配色难题
- java 控制路由器_停用角度路由器链路
- DTCMS插件的制作实例电子资源管理(三)前台模板页编写
- UAC绕过思路(未完)
- Nginx 自定义404 页面
- javascript闭包(转)
- 离散傅里叶变换(DFT)
- Serializer对象
- docker(四)---dockerfile 编写优化
- 跟Java面试官对线的一天!唬住就要50K,唬不住就要5K
- HAL库版STM32双轮自平衡车(五) ———— 调参
- qt creator在高分辨率笔记本上控件运行显示不全的问题解决方法
- java web项目混淆
- 程序员白头发是怎样一种感受?
- cmake命令之foreach
- 嵌入式实时操作系统7——任务优先级表
- Python编程好学吗 为什么Python如此受欢迎
- 【软件测试】测试驱动开发与行为驱动开发
热门文章
- 港大计算机硕士面试多久有通知,港大计算机 HKU CS面试准备
- 火车车次查询正则表达式
- LeetCode题解:找到 K 个最接近的元素
- 解决PanDownload登录提示账号登录失败,获取bdstoken失败问题
- NanoCore RAT流量分析报告
- 听GlobalSources关于PSC系统的培训后有感...
- android人脸解锁亮屏,EMUI 8.0升级加入全新人脸解锁 抬腕亮屏功能:快来看看如何开启...
- 飞腾CPU的汇编指令帮助(持续更新)
- 《正在爆发的互联网革命》——30余位互联网大腕一致推荐,3.5亿网民必看!...
- 目标检测YOLO实战应用案例100讲-基于深度学习的水下图像增强及目标检测算法研究与应用