头图

Addressable编辑器相关开发问题

1)Addressable编辑器相关开发问题
​2)Addressable动态设置更新地址
3)Addressable在网络差的环境中下载资源
4)Android ETC2 Fallback的疑问
5)内置Shader中“Dependency”的定义


这是第245篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。

UWA 问答社区:answer.uwa4d.com
UWA QQ群2:793972859(原群已满员)

Addressable

Q:我想通过编辑器脚本来做自动导入下图这个选项并打钩,能自己设置相关的Key。有没有参考的工程或代码示例?谢谢!

A:用AssetDatabase.AssetPathToGUID和AddressableAssetSettings.CreateOrMoveEntry。

感谢老王@UWA问答社区提供了回答

Addressable

Q:Addressable动态配置的热更新地址,使用了文档里面的静态变量 (放大括号里),Addressable启动后获取到的Catalogs.Count一直为零,怀疑是地址的问题,有没有要求这个类也是静态的?

如果我配死地址,是能更新下来的,比如这样:

这种更新已经测试通过,目前是想在生成首包后动态去改这个RemoteLoadPath。

A:我们是这样子的,RemoteLoadPath指向一个static的property,这个property从配置表里返回资源更新的地址。

感谢jim@UWA问答社区提供了回答

Addressable

Q:我们使用Addressable来做资源的热更新。现在模拟了一个较差网络环境下的下载资源情况,使用Windows上模拟丢包的软件模拟了网络环境,丢包率设置为30%。

Addressable的下载会卡死在某个百分比,DownloadDependenciesAsync的Completed事件不会被触发,所以无法通过AsyncOperationHandle的status判断是失败还是成功。

Log显示的报错是:

请问这种情况有什么好的解决方法吗?

A:后来发现是有几个资源的Time Out值设置得太大了,导致一直在等待,所以进度条卡死。解决方法是将Time Out值设置的小一点,并增加retry次数。

我Time Out设置的是20。感觉不宜太长,否则超时的时候下载进度感觉会长时间卡死;太短的话,移动网络太差,也经常会超时导致超时下载失败。

感谢题主jim@UWA问答社区提供了回答

Editor

Q:我们的游戏在模拟器上运行一会儿就会崩溃,怀疑是图片被解压成RGBA32导致内存过大产生的崩溃。Android ETC2 Fallback设置为16 bit是不是能够大幅降低在低端手机的内存占用呢?

另外我在Build Setting选择ETC2 Fallback后,Project Setting没有任何变化,这个值是保存在哪里的?应该怎么上传?(版本:Unity 2018.4.31)

A:模拟器一般内存都够的,如果怕是内存问题可以调整一下分配给模拟器的内存。最好还是连上Logcat看一下Log,是因为内存问题,还是32位或者64位应用的问题,又或者是64位LuaJit之类的问题。这个值存在LibraryEditorUserBuildSettings.asset文件中。

感谢郑骁@UWA问答社区提供了回答

Shader

Q:正在尝试自定义Terrain的Shader,发现内置Shader的末尾有这样两行,想问问其中的“Dependency”是做什么用的,后面指定的Shader起什么作用?

Dependency “AddPassShader” = "Hidden/TerrainEngine/Splatmap/Diffuse-AddPass"
Dependency “BaseMapShader” = “Diffuse”

A:Dependency是一个未文档的关键词,其用于指定Shader依赖关系,实际作用有两个:

  • 打包的时候依赖不会遗漏,可以通过AssetBundle Browser验证。
  • Unity 2019之后可以通过C#接口Shader.GetDependency(等号左侧依赖名) 获取等号右侧Shader名。

地形系统那么做,是因为有三种光照模型,通过GetDependency(依赖名) 可以减少一些Shader名的硬编码,依赖名充当了接口的作用。

感谢庄沁@UWA问答社区提供了回答

封面图来源于网络


今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在UWA问答网站上准备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你加入,也许你的方法恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”。

官网:www.uwa4d.com
官方技术博客:blog.uwa4d.com
官方问答社区:answer.uwa4d.com
UWA学堂:edu.uwa4d.com
官方技术QQ群:793972859(原群已满员)

UWA官网:[链接]

27 声望
12 粉丝
0 条评论
推荐阅读
如何避免游戏炸服——游戏上线的RoadMap
本文我想写一下,一款游戏上线前需要做哪些事情,以保证项目上线后的稳定性。若你们公司之前没有大DAU游戏上线和运维经验,现在准备上线一款新游戏,可以按照这个RoadMap去做或者检查一遍自己游戏的上线准备工作。

侑虎科技阅读 74

封面图
Monaco Editor 光标定位问题及解决
2、存在font相关样式变化 比如,font-size、font-family等。这时需要保证编辑器初始化前后字体相关样式保持一致就可以了(可能需要与上面的方法一起使用)。

checkitout阅读 404

封面图
CesiumJS PrimitiveAPI 高级着色入门 - 从参数化几何与 Fabric 材质到着色器 - 下篇
明确一个定义,在 Primitive API 中应用着色器,实际上是给 Appearance 的 vertexShaderSource、fragmentShaderSource 或 Material 中的 fabric.source 设置着色器代码,它们所能控制的层级不太一样。但是他们的...

岭南灯火阅读 268

封面图
fabric.js开发图片编辑器的细节实现
当时的版本比较粗糙,只能说是一个基础版的Demo,很多细节不够完善,参考了稿定设计和创客贴的设计编辑器,优化了很多必要的细节,也算是fabric.js的进阶用法,整理成笔记分享出来。

nihaojob阅读 192

封面图
主界面边框流动效果长时间挂机后会卡顿
1)主界面边框流动效果长时间挂机后会卡顿​2)检测内存是否超过阈值问题3)堆内存会持续上升,如何用UWA报告来分析4)关于AssetBundle加密这块,如何重新实现LoadFromFile接口

侑虎科技阅读 189

封面图

UWA官网:[链接]

27 声望
12 粉丝
宣传栏