Unity WebGL项目问题记录

一、资源优化

可通过转换工具配套提供的资源优化工具,将游戏内纹理资源针对webgl导出做优化。

工具入口:

工具介绍

Texture

搜索规则介绍

已开启MipMap: 搜索已开启了MipMap的纹理。

NPOT: 搜索非POT图片。

isReadable: 搜索已开启readable纹理。

MaxSize大于512: 搜素MaxSize大于512纹理。

修复规则讲解

注意: 每次修复时将当前所要修复资源的importer覆盖写入到Library/AssetImporterbak;

还原时,从Library/AssetImporterbak读取选中资源的importer设置并还原后,会删除Library/AssetImporterbak,并不是undo/redo逻辑

禁用readable:关闭readable

禁用mipmap:关闭mipmap

优化maxsize:勾选后,可选择优化maxsize的方式

改变纹理压缩格式:勾选后可修改纹理压缩格式

筛选列表结果展示

列表总览:描述资源个数和资源总内存

引用查找 选中一个资源,查找资源被引用关系

使用前后对比

修复资源前

修复资源后

可以发现资源总内存减少了很多。

二、使用Addressable Assets System进行资源按需加载

1.概述

对于Unity WebGL转换的小游戏启动耗时,资源下载通常是贡献最大的部分。这是由于手游APP往往很少针对首包资源进行特殊优化。因此,优化原则是:

首包资源量不超过5M。

资源按需延迟加载,拆分得尽量细。

2.Addressable在小游戏中的应用

2.1什么是Addressable Assets System

 Addressable特点如下:

低使用门槛:使用Addressable在开发前期就进入快速开发的阶段,使用任何你喜欢的资源管理技术,你都能快速的切换来Addressable系统中,几乎不需要修改代码。

依赖管理:Addressable系统不仅仅会帮你管理、加载你指定的内容,同时它会自动管理并加载好该内容的全部依赖。在所有的依赖加载完成,你的内容彻底可用时,它才会告诉你加载完成。

内存管理:Addressable不仅仅能记载资源,同时也能卸载资源。系统自动启用引用计数,并且有一个完善的Profiler帮助你指出潜在的内存问题。

内容打包:Addressable系统自动管理了所有复杂的依赖连接,所以即使资源移动了或是重新命名了,系统依然能够高效地找到准确的依赖进行打包。当你需要将打包的资源从本地移到服务器上面,Addressable系统也能轻松做到,几乎不需要任何代价。

2.2使用WXAssetBundleProvider节省内存

WXAssetBundle可以减轻iOS的内存压力,对于使用Addressable的项目,需要替换Provider来使用WXAssetBundle。

使用方式

下载WXAssetBundleProvider.cs,放到WX-WASM-SDK-V2/Runtime/目录下。

导入插件后会有WXAssetBundleProvider.cs缺依赖的报错,需要给WX-WASM-SDK-V2/Runtime 增加 Unity.ResourceManager 的引用。

进入AA的组设置修改Provider如下

最后重新导出 AA包 和 小游戏。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/37576.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一分钟上手!用 Video GPT 一天制作上百条短视频

一分钟上手!用 Video GPT 一天制作上百条短视频 学会简单烹饪,享受美味家常菜 Video GPT by VEED 使用链接: https://chatgpt-plus.top/g/g-Hkqnd7mFT-video-gpt-by-veed 1. 选择视频主题 在开始之前,确定视频的主题和目标受众…

代码随想三刷贪心篇5

代码随想三刷贪心篇5 738. 单调递增的数字题目代码968. 监控二叉树题目代码738. 单调递增的数字 题目 链接 代码 class Solution {public int monotoneIncreasingDigits(int n) {char[] arr = String.valueOf

深度之眼(二十八)——神经网络基础知识(三)-卷积神经网络

文章目录 一、前言二、卷积操作2.1 填充(padding)2.2 步长2.3 输出特征图尺寸计算2.4 多通道卷积 三、池化操作四、Lenet-5及CNN结构进化史4.1 Lenet-5 一、前言 卷积神经网络–AlexNet(最牛)-2012 Lenet-5-大规模商用(1989) 二、…

网络编程:使用udp实现数据文件的接收java

目录 1、需求 2、逻辑实现 3、代码实现 4、总结 1、需求 发送方将文件按照数据帧进行发送,接收方完成数据接收的还原,即还原为相应的文件。 2、逻辑实现 采用ConcrrenutHashMap作为缓冲区,每次处理时都判断,数据是否连续&…

昇思25天学习打卡营第3天|网络构建

学习目标:熟练掌握网络构建方法 了解mindspore.nn 实例构建简单的神经网络 网络模型中各层参数 昇思大模型平台 AI实验室 学习记录: 一、关于mindspore.nn 在MindSpore中,Cell类是构建所有网络的基类,也是网络的基本单元。cell…

在CentOS 7 64位 Docker容器里面部署mysql数据库定时备份和还原步骤

备份 案例:在CentOS 7系统内的Docker容器中设置一个定时任务,每周五备份MySQL数据库,可以通过以下步骤实现: 1、创建备份脚本 首先,编写一个备份脚本来执行MySQL数据库的备份操作。假设你将这个脚本命名为backup.sh…

在vs上远程连接Linux写服务器项目并启动后,可以看到服务启动了,但是通过浏览器访问该服务提示找不到页面

应该是被防火墙挡住了,查看这个如何检查linux服务器被防火墙挡住 • Worktile社区 和这个关于Linux下Nginx服务启动,通过浏览器无法访问的问题_linux无法访问nginx-CSDN博客 的提示之后,知道防火墙开了,想着可能是我写的服务器的…

【R语言】plot输出窗口大小的控制

如果需要输出png格式的图片并设置dpi,可采用以下代码 png("A1.png",width 10.09, height 10.35, units "in",res 300) 为了匹配对应的窗口大小,在输出的时候保持宽度和高度一致即可,步骤如下: 如上的“10…

Ubuntu Docker 安装

curl -fsSL https://test.docker.com -o test-docker.sh sudo sh test-docker.sh Ubuntu Docker 安装 | 菜鸟教程

kali Linux基本命令(超全)_kali linux命令

一、系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件- (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpu…

python opencv 持续点选开始帧,结束帧,切割视频成几个小段

import osimport cv2 import timedef on_mouse(event,x,y, flag, para):global status_value, start_frame, end_frame, timesif event cv2.EVENT_LBUTTONDOWN: # 鼠标左键点击times 1status_value not status_valueif status_value:start_frame frame_number# print(f&qu…

泽众云真机-平台华为机型HarmonyOS NEXT系统已上线!

泽众云真机平台华为机型HarmonyOS NEXT系统已上线! 之前文章《泽众云真机-平台即将升级支持华为机型HarmonyOS NEXT系统泽众云真机-平台即将升级支持华为机型HarmonyOS NEXT系统》,为什么要升级HarmonyOS NEXT系统?我们之前有说过&#xff0c…

C语言pow函数简单介绍

目录 开头什么是pow函数pow函数本身和正常返回值pow函数本身pow函数的返回值 pow函数的实际运用求6^8的值程序输出 求3^‎‏ 3^3的值程序输出 求11.4^5.14的值程序输出 结尾 开头 大家好,我叫这是我58,在这篇博客中,我将会介绍C语言里的pow…

OSI 网络模型

OSI 模型 开放式系统互联模型(英语:Open System Interconnection Model,缩写:OSI;简称为OSI模型)是一种概念模型,由国际标准化组织(ISO)提出,一个试图使各种…

第7章_低成本 Modbus 传感器的实现

文章目录 第7章 低成本 Modbus 传感器的实现7.1 硬件资源介绍与接线7.2 开发环境搭建7.3 创建与体验第 1 个工程7.3.1 创建工程7.3.2 配置调试器7.3.3 配置 GPIO 操作 LED 7.4 UART 编程7.4.1 使用 STM32CubeMX 进行配置1.UART12.配置 RS485方向引脚 7.4.2 封装 UART7.4.3 上机…

实现写入缓存策略的最佳方法探讨

实现写入缓存策略的最佳方法探讨 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨在软件开发中实现写入缓存策略的最佳方法。缓存在提升应用性能和…

计算机的错误计算(十五)

摘要 介绍历史上由于计算精度问题引起的灾难或事件。 今天换个话题,说说历史上曾经发生过的一些事件。 1961 年 , 美国麻省理工学院气象学家洛伦兹在仿真天气预报时 , 将 0.506127 舍入到 0.506 , 所得计算结果大相径庭 ! 这种“差之毫厘 , 谬以千里”的现象…

第十一节:学习通过动态调用application.properties参数配置实体类(自学Spring boot 3.x的第二天)

大家好,我是网创有方。这节实现的效果是通过代码灵活地调用application.properties实现配置类参数赋值。 第一步:编写配置类 package cn.wcyf.wcai.config;import org.springframework.beans.factory.annotation.Value; import org.springframework.boo…

深入探索:WebKit中Flexbox布局的全面支持与实践

标题:深入探索:WebKit中Flexbox布局的全面支持与实践 摘要 Flexbox布局是CSS3的一部分,提供了一种更加强大和灵活的方式来布局、对齐和分配容器内项目的空间,即使它们的大小未知或是动态变化的。WebKit作为Safari浏览器的渲染引…

11. Revit API UI 补充

11. Revit API UI 补充 UI篇我也只写了主要的,部分关联的没有写。 以前发的又不想去改,这里就做一些补充吧。 一、可停靠窗口补充 在可停靠窗口那篇,提到要实现IDockablePageProvider接口,就略过了。 该接口要求实现一个方法。…