当前位置: 首页 > news >正文

将FGUI的Shader全部预热后,WebGL平台没有加载成功

1)将FGUI的Shader全部预热后,WebGL平台没有加载成功
2)iOS如何确认内存扩展使用生效
3)SpriteAtlasManager.atlasRequested延后一帧回调
4)Unity如何使用Java 17打包


这是第442篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。

UI

Q:将FGUI Unity中的Shader全部打包,全部加载预热后,Shader在WebGL平台没有加载成功,在WebGL平台FGUI的Shader都没有显示加载成功,请问是什么问题?在编辑器中加载包体预热,Shader是显示正常加载的。

A:FGUI添加Shader都是通过Shader.Find操作的,要让Shader.Find这方法能找到,需要执行以下操作之一:

  1. 从场景中使用的某些材质中引用它;
  2. 将其添加到ProjectSettings/Graphics中的“始终包含的着色器”列表中;
  3. 将着色器或引用它的对象(例如材质)放入“Resources”文件夹中。

感谢题主K了个O@UWA问答社区提供了回答,欢迎大家转至社区交流:
UWA问答 | 游戏开发者互动问答社区 | 侑虎科技


Platform

Q:请问在iOS开发过程中,开启iOS的应用内存扩展功能后,是如何确认扩展功能生效的?目前我们在开启打包后进行使用感觉不生效,但是发布上线对外后又好像生效了。

A:如果是指的是Increased Memory Limit,该功能的生效对苹果设备和iOS版本都有一定要求。

可参考官网的说法:
An increased memory limit is only available on some device models. Call the os_proc_available_memory function to determine the amount of memory available. Higher memory use can affect system performance.

具体是否生效、效果如何,可能就要看手头测试机内存加压测试中闪退阈值的变化;或线上实际闪退率了。

感谢Faust@UWA问答社区提供了回答,欢迎大家转至社区交流:
UWA问答 | 游戏开发者互动问答社区 | 侑虎科技


Editor

Q:实测,触发SpriteAtlasManager.atlasRequested回调,比加载界面晚了一帧执行,导致会闪一帧白图。请教有何优化办法吗?图集已勾选Include in build。

A:Unity触发SpriteAtlasManager.atlasRequested时,AssetBundle系统还没初始化完毕,导致加载不到图集,进去后显示全白块了。因为我用的是YooAsset插件,这个东西初始化是异步的。只有下次触发SpriteAtlasManager.atlasRequested,才能再次加载图集,这可能是加载一个新的SpriteAtlas、或者加载场景时。

解决这个的方法时,在AssetBundle系统还没初始化时,SpriteAtlasManager.atlasRequested的请求先缓存起来,等初始化结束后再处理。

using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.U2D;namespaceGameCore.Unity
{//场景一加载就会unity就会触发atlasRequested,但是这时候AssetBundle系统还没初始化,无法加载图集。//因此等待AssetBundle初始化后加载。//从编辑场景进入游戏的话,编辑场景里也挂载这个组件就行了。publicclassSpriteAtlasLoader : MonoBehaviour{//缓存Unity的请求privatestatic Dictionary<string, Action<SpriteAtlas>> requestAtlasCallbacks = new();private IResManager resManager;//AssetBundle系统初始化后, 设置ResManagerpublic void SetResManager(IResManager resManager){this.resManager = resManager;foreach(var kv in requestAtlasCallbacks){RequestAtlas(kv.Key, kv.Value);}requestAtlasCallbacks.Clear();}private void OnEnable(){SpriteAtlasManager.atlasRequested += RequestAtlas;}private void OnDisable(){SpriteAtlasManager.atlasRequested -= RequestAtlas;}//AssetBundle系统初始化后,resManager不为nullprotected virtual void RequestAtlas(string atlasName, Action<SpriteAtlas> callback){if(resManager != null){callback(ResManager.Instance.GetAsset<SpriteAtlas>(atlasName));}else{requestAtlasCallbacks.Add(atlasName, callback);}}}
}

因为我有一个专门编辑Prefab的场景,可以直接从这个场景进游戏,因此单独做了一个组件,需要的场景里挂上就行了。

详情可参考《Unity SpriteAtlasManager.atlasRequested趟坑》。

感谢小泽@UWA问答社区提供了回答,欢迎大家转至社区交流:
UWA问答 | 游戏开发者互动问答社区 | 侑虎科技


Platform

Q:Unity如何使用Java 17打包,目前设置Java 17后Unity会提示错误,如何强制设置Java 17?

A:升级Unity版本或者用Unity导出AndroidStudio工程,在AndroidStudio中使用Java 17出包。

详情可参考《Unity2022接入Google广告与支付SDK、导出工程到Android Studio使用JDK17进行打包完整流程与过程中的相关错误及处理经验总结》

感谢hcg@UWA问答社区提供了回答,欢迎大家转至社区交流:
UWA问答 | 游戏开发者互动问答社区 | 侑虎科技

封面图来源于网络


今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。

UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com
UWA学堂:edu.uwa4d.com

 

http://www.dtcms.com/a/349510.html

相关文章:

  • 基于MalConv的恶意软件检测系统设计与实现
  • 大模型 transformer 步骤
  • 《拉康精神分析学中的欲望辩证法:能指的拓扑学与主体的解构性重构》
  • 计算机大数据技术不会?医院体检数据可视化分析系统Django+Vue全栈方案
  • 不止效率工具:AI 在文化创作中如何重构 “灵感逻辑”?
  • 【DFS 或 BFS 或拓扑排序 - LeetCode】329. 矩阵中的最长递增路径
  • 【图像算法 - 23】工业应用:基于深度学习YOLO12与OpenCV的仪器仪表智能识别系统
  • 基于视觉的果园无人机导航:一种基于干预模仿学习与VAE控制器的真实世界验证
  • 机器人中的李代数是什么
  • 抖音多账号运营新范式:巨推AI如何解锁流量矩阵的商业密码
  • 量子计算驱动的Python医疗诊断编程前沿展望(下)
  • 数据结构:单向链表的逆置;双向循环链表;栈,输出栈,销毁栈;顺序表和链表的区别和优缺点;0825
  • 平安产险青海分公司启动2025年“乡风文明100行动” 首站落地海东市乐都区土官沟村
  • 【C++详解】哈希表概念与实现 开放定址法和链地址法、处理哈希冲突、哈希函数介绍
  • Redis缓存雪崩缓存击穿缓存穿透的处理方式
  • [React]Antd Upload组件上传多个文件
  • 阿里云安装postgre数据库
  • Vim 的 :term命令:终端集成的终极指南
  • 中介者模式及优化
  • Flink 状态 RocksDBListState(写入时的Merge优化)
  • 元宇宙与个人生活:重构日常体验的数字新维度
  • 技术攻坚与安全兜底——消防智能仓储立库管理系统的国产化硬核实力
  • ADB 调试工具的学习[特殊字符]
  • 性能优化:首屏加载速度的优化
  • Seaborn数据可视化实战:Seaborn高级使用与性能优化教程
  • C++编译链接与性能优化答案
  • 新手入门GEO优化指南:从0到1掌握生成式引擎优化
  • 我们为你连接网络,安装驱动程序
  • 构建AI智能体:十三、大数据下的“搭积木”:N-Gram 如何实现更智能的语义搜索
  • 60 C++ 现代C++编程艺术9-function用法