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

Unity AB包

在这里插入图片描述
AB包比对文件内容:
ab包名 包大小 包内容md5字符串

在这里插入图片描述

编辑器功能-设置默认资源:

    可以选择资源作为默认资源保存到StreamingAssets文件夹并且为他们生成资源对比文件1. 在Unity菜单中添加一个功能按钮触发该功能(MenuItem特性)2. 获取在Project窗口选择的资源信息(Selection类)3. 将选择到的资源复制到StreamingAssets文件夹中(AssetDatabase类)4. 为StreamingAssets文件夹中的AB资源生成资源对比文件(文件写入)

在这里插入图片描述
是否需要进行streamingAssetsPath中资源转存到persistentDataPath 取决于你项目中的AB包管理器中的加载机制
1.若都从persistentDataPath中价值,则需要转存(若默认资源很多,会浪费玩家的硬盘存储空间)
2.若persistentDataPath中没有资源,则从streamingAssetsPath中加载,则无需转存(不会浪费玩家空间)

											游戏客户端                                            |                                                   资源服务器进入游戏后     --------------------------        AB包对比文件需要下载远端对比文件|和本地对比文件对比|---------------------------------|------------------------------------|第一次且有默认资源      第一次没有默认资源                非第一次streamingAssetsPath                                                      persistentDataPath|                                          |                                              |读取本地                        下载所有远端对比文件           读取本地streamingAssetsPath        中AB包                                persistentDataPath中对比文件对比                                                             中对比文件对比下载指定AB包                                                                下载指定AB包|                                       |                                           |---------------------------------------------------------------------------------------------AB包资源|                                        |                                           |将远端ab包对比文件更新到本地存储在persistentDataPath中

获取远端对比文件信息 两种做法:

  1. 保存到临时文件中,待AB包下载完成后,在用该临时文件覆盖本地对比文件
  2. 压根不保存文件,直接通过下载流读取字节数组数据转为字符串待ab包下载完后再保存本地资源对比文件

编辑器窗口

在这里插入图片描述
在这里插入图片描述

ABTools.cs 编辑器窗口代码:

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using UnityEditor;
using UnityEngine;public class ABTools : EditorWindow
{private int nowSelIndex = 0;private string[] targetStrings = new string[] { "PC", "IOS", "Android" };//资源服务器默认IP地址private string serverIP = "ftp://192.168.31.178";[MenuItem("AB包工具/打开工具窗口")]private static void OpenWindow(){//获取一个ABTools 编辑器窗口对象ABTools windown = EditorWindow.GetWindowWithRect(typeof(ABTools), new Rect(0, 0, 350, 220)) as ABTools;windown.Show();}private void OnGUI(){GUI.Label(new Rect(10, 10, 150, 15), "平台选择");//页签显示 是从数组中取出字符串内容来显示 所以 需要改变当前选中的索引nowSelIndex = GUI.Toolbar(new Rect(10, 30, 250, 20), nowSelIndex, targetStrings);//资源服务器IP地址设置GUI.Label(new Rect(10, 60, 150, 15), "资源服务器地址");serverIP = GUI.TextField(new Rect(10, 80, 150, 20), serverIP);//创建对比文件 按钮if(GUI.Button(new Rect(10, 110, 100, 40), "创建对比文件"))CreateABCompareFile();//保存默认资源到StreamingAssets 按钮if (GUI.Button(new Rect(115, 110, 225, 40), "保存默认资源到StreamingAssets"))MoveABToStreamingAssets();//上传AB包和对比文件 按钮if (GUI.Button(new Rect(10, 160, 330, 40), "上传AB包和对比文件"))UploadAllABFile();}//生成AB包对比文件private void CreateABCompareFile(){//获取文件夹信息//要根据选择的平台读取对应平台文件夹下的内容 来进行对比文件的生成DirectoryInfo directory = Directory.CreateDirectory(Application

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【计算机网络】网络版本计算器
  • CentOS 7使用RPM安装MySQL
  • Linux 网站服务器的搭建教程
  • js使用run编码计算region的交集并集差集
  • WHAT - 前端跨端识别
  • 图神经网络教程2——循环图神经网络-1
  • Linux ubuntu 使用 wine 安装迅雷不限速版本,并添加快捷方式,解决 desktop 桌面快捷方式不能启动的问题!
  • 鸿蒙关于手机全局本地文件读取,写入
  • The Sandbox 新提案: 2024 年亚洲和拉丁美洲区块链活动预算
  • 一文读懂 服务器
  • Linux搭建环境:从零开始掌握基础操作(二)
  • 高性能 Web 服务器:让网页瞬间绽放的魔法引擎(下)
  • Vue3 的 expose 介绍
  • 代码随想录 day 48 单调栈
  • Chat App 项目之解析(三)
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【笔记】你不知道的JS读书笔记——Promise
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • co.js - 让异步代码同步化
  • Computed property XXX was assigned to but it has no setter
  • EOS是什么
  • gulp 教程
  • JavaScript 奇技淫巧
  • Java基本数据类型之Number
  • JWT究竟是什么呢?
  • October CMS - 快速入门 9 Images And Galleries
  • QQ浏览器x5内核的兼容性问题
  • Swift 中的尾递归和蹦床
  • Web标准制定过程
  • 当SetTimeout遇到了字符串
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 码农张的Bug人生 - 见面之礼
  • 前端存储 - localStorage
  • 如何使用 JavaScript 解析 URL
  • 微信支付JSAPI,实测!终极方案
  • 一份游戏开发学习路线
  • 用jquery写贪吃蛇
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • "无招胜有招"nbsp;史上最全的互…
  • # windows 运行框输入mrt提示错误:Windows 找不到文件‘mrt‘。请确定文件名是否正确后,再试一次
  • #include到底该写在哪
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • $nextTick的使用场景介绍
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (C语言)逆序输出字符串
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (数据大屏)(Hadoop)基于SSM框架的学院校友管理系统的设计与实现+文档
  • (算法)硬币问题