
Unity Engine
文章平均质量分 90
记录了Unity实际开发过程中遇到的问题和解决方案。
IMTIY
蓝翔毕业专业级码农,我两天可以码400行代码的哦
展开
-
深入了解Unity剔除(草稿)
剔除是渲染流程的一部分,也是渲染之前首先要做的事情,在Unity中提供摄像机视椎体剔除、遮挡剔除两种解决方案。这两种剔除检测都以摄像机为参考中心,而且每一帧都会执行剔除操作。剔除操作会检查场景中的渲染器,并排除那些不需要绘制的渲染器。默认情况下摄像机执行视椎体剔除,这个过程是排除那些不在摄像机视椎体范围内的渲染器。视椎体剔除不检查被渲染对象是否被遮挡,所以Unity会渲染那些最终帧中不可见的渲染器,仍然浪费时间渲染不可见的对象对于CPU和GPU是徒劳的。...原创 2021-11-12 17:29:08 · 5445 阅读 · 0 评论 -
[Asset Bundle][Technique] Addressable动态寻址的技术解析
序先定义几个名词:流媒体目录:streamingAssetsPath持久化目录:persistentDataPath临时存储目录:temporaryCachePath通常我们会怎么用AssetBundle,我们将它们放在【流媒体】目录,然后在每次安装游戏后,将【流媒体】目录中的AB文件,拷贝到【持久化】目录中,然后统一读取持久化目录中的文件。这里会遇到两个问题,第一个问题是如果AB资源在700M以上1GB以下,这个拷贝的过程将会十分的漫长,在协程和线程的优化下,至少也需要10秒,15原创 2020-09-20 22:33:49 · 592 阅读 · 0 评论 -
[UnityWebRequest] [Technique] 下载文件断点续传
序当你从网上下载文件时,偶尔总会遇到网络不佳的情况,这个时候,端点续传就帮上了大忙。当然,如果能把它应用到游戏文件的下载更新上,那将会给用户带来更好的体验,下面这篇文章将帮助你,在UnityWebRequest的基础上实现端点续传的功能,以及如何应用断点续传来优化你的下载方案。原理 他的原理很简单,只需要在请求数据的时候带上一个A-B的Range参数,来获取A-B的数据段。假设一个文件的大小为2000个字节,那么我们填写区间的有效值应该是0~1999注意:超出1999后将返回所有...原创 2020-08-24 00:12:58 · 298 阅读 · 0 评论 -
[Editor] [Bug] 卡死
事发现场版本号:2018.4.17.f1 LTS日期:2020年4月3日我用的是LTS版本,Window系统的游戏本,今天发现新建工程后,编辑器会处于卡顿,死机等症状,后来找到了原因,是因为1.0.7版本的Messenger在后台工作导致的。这个是新建3D工程自带的插件,如果你在卡顿之后收到了一个异常,像:Json Parse Exception: the parser encou...原创 2020-04-03 13:10:24 · 560 阅读 · 0 评论 -
[Asset Bundle] [Technique] Asset Bundle 卸载技巧
序场景除外的AssetBundle中的资源分为两中类型,GameObject与Asset,GameObject使用GameObject.Destroy进行卸载,Asset使用Resources.Unload(Asset)进行卸载,好,我们来看几个有趣的例子。事发现场例子1 卸载资源//> 代码片段1 在Start中Package = AssetBundle.LoadFro...原创 2020-03-30 15:21:21 · 381 阅读 · 0 评论 -
[Asset Bundle] [Bug] EventSystem,Standalone Input Module会占用AssetBundle的引用导致无法正常卸载
序通常情况下,我们在本地磁盘上通过AssetBundle.LoadXXX加载的资源包,需要通过Resources.Unload(Assets),来释放包中具体的资源。但有一种情况例外,那就是通过引用自动加载的资源,这时候,我们没有具体资源的实例,而只持有包的实例。所以我们只能通过Resources.UnloadUnusedAssets() 来释放没有被占用的资源。那么,假设这时候,恰好某个不知...原创 2020-03-29 23:57:27 · 398 阅读 · 0 评论 -
[Asset Bundle] [Error] 加载过程中的错误集合
目录资源被重复载入载入了相同的资产文件资产中包含了名称相同的*.unity文件载入动态场景资源包内部的资源载入一个格式错误的资源包载入一个不是资源包的文件读取一个不存在的文件资源被重复载入The AssetBundle 'xxxxx.bytes' can't be loaded because another AssetBundle with the same ...原创 2020-03-27 13:12:18 · 7260 阅读 · 1 评论 -
[Asset Bundle] [Bug] AssetBundleRequeset.Completed += 导致无法完成异步请求
事发现场版本号:2018.4.17f1 LTS AssetBundle assetBundle = AssetBundle.LoadFromFile(xxxx); AssetBundleRequest request = assetBundle.LoadAssetAsync<Texture2D>("xxx"); request.completed += (obj)=&g...原创 2020-03-27 01:12:52 · 425 阅读 · 0 评论