关于editor:Addressable编辑器相关开发问题

41次阅读

共计 2078 个字符,预计需要花费 6 分钟才能阅读完成。

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(原群已满员)

正文完
 0