unity打AB包,AssetBundle预制体与图集(一)

第一步:打AB包

1、先创建一个AB包的按钮,如图
在这里插入图片描述
新建一个脚本
在这里插入图片描述

public class BulidBundle : Editor
{[MenuItem("TOOL/BuildBundle")]public static void BuildAndroidBundle(){}
}

创建目录

 public static void BuildAndroidBundle(){// 设置AssetBundle的输出目录string saveDir = "Assets/StreamingAssets/AB";// 如果目录存在,先删除if (Directory.Exists(saveDir)){Directory.Delete(saveDir,true);}// 创建目录Directory.CreateDirectory(saveDir);}

如下图,没有就自己新建吧
在这里插入图片描述
创建AB包,加上完整代码

public class BulidBundle : Editor
{[MenuItem("TOOL/BuildBundle")]public static void BuildAndroidBundle(){// 设置AssetBundle的输出目录string saveDir = "Assets/StreamingAssets/AB";// 如果目录存在,先删除if (Directory.Exists(saveDir)){Directory.Delete(saveDir,true);}// 创建目录Directory.CreateDirectory(saveDir);//这个是一个结构体,包含以下元素//assetBundleName: AssetBundle 的名称。//assetNames: 包含在 AssetBundle 中的所有资源的路径数组。AssetBundleBuild[] buildMap = new AssetBundleBuild[2];buildMap[0] = new AssetBundleBuild();buildMap[0].assetBundleName = "Prefab_UI";buildMap[0].assetNames = new string[]{"Assets/Prefabs/Prefab_One.prefab","Assets/Prefabs/Prefab_Two.prefab"};buildMap[1] = new AssetBundleBuild();buildMap[1].assetBundleName = "Prefab_Altlas";buildMap[1].assetNames = new string[]{"Assets/Atlas/Atlas_One.spriteatlas"};BuildAssetBundleOptions options = BuildAssetBundleOptions.ChunkBasedCompression |BuildAssetBundleOptions.DeterministicAssetBundle;// ChunkBasedCompression: 启用基于块的压缩。这允许 AssetBundle 在加载时按块进行解压缩,而不是一次性解压缩整个包。这有助于减少内存使用,并改善加载性能。// DeterministicAssetBundle: 使 AssetBundle 构建过程具有确定性。这意味着相同的输入将始终产生相同的输出。这对于版本控制和确保构建的一致性很有用。BuildPipeline.BuildAssetBundles(saveDir, buildMap, options, BuildTarget.Android);// 刷新资源,确保新创建的Asset Bundles 能够在Editor中即时显示AssetDatabase.Refresh();}
}

buildMap[0].assetNames 这个是所有要打包的资源的名称,看下图
在这里插入图片描述
如果是一个那就写一个 buildMap[1].assetNames = new string[]{“Assets/Atlas/Atlas_One.spriteatlas”};
如图
在这里插入图片描述
点击

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

至此,AB包完成打包

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

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

相关文章

Leetcode 第 369 场周赛题解

Leetcode 第 369 场周赛题解 Leetcode 第 369 场周赛题解题目1:2917. 找出数组中的 K-or 值思路代码复杂度分析 题目2:2918. 数组的最小相等和思路代码复杂度分析 题目3:2919. 使数组变美的最小增量运算数思路代码复杂度分析 题目4&#xff1…

Lec13 Sleep Wake up

进程切换的流程 一个进程出于某种原因想要进入休眠状态,比如说出让CPU或者等待数据,它会先获取自己的锁;之后进程将自己的状态从RUNNING设置为RUNNABLE;之后进程调用switch函数,其实是调用sched函数在sched函数中再调…

2023年11月编程语言流行度排名

点击查看最新编程语言流行度排名(每月更新) 2023年11月编程语言流行度排名 编程语言流行度排名是通过分析在谷歌上搜索语言教程的频率而创建的 一门语言教程被搜索的次数越多,大家就会认为该语言越受欢迎。这是一个领先指标。原始数据来自…

折叠旗舰新战局:华为先行,OPPO接棒

乌云中的曙光,总能带给人希望。 全球智能手机出货量已经连续八个季度下滑,行业里的乌云挥之不散。不过,也能看到高端市场逆势上涨,散发光亮。个中逻辑在于,当前换机周期已经达到了34个月,只有创新产品才能…

使用遗传算法优化BP神经网络实现非线性函数拟合

大家好,我是带我去滑雪! 非线性函数拟合是一种用于找到与给定数据点集合最好匹配的非线性函数的过程。非线性函数拟合通常用于以下情况: 数据趋势不是线性的:当数据点之间的关系不能用线性方程来表示时,需要使用非线性…

快速解决mfc140u.dll丢失问题,找不到mfc140u.dll修复方法分享

在计算机使用过程中,我们可能会遇到各种问题,其中之一就是某些dll文件丢失。最近,我就遇到了一个关于mfc140u.dll丢失的问题。mfc140u.dll是Microsoft Foundation Class(MFC)库中的一个动态链接库文件,它包…

JSP通用材料收集归档系统eclipse定制开发mysql数据库BS模式java编程jdbc

一、源码特点 JSP 通用材料收集归档系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发,数据库为Mysql5.0&#xff0c…

接口---默认方法

用户操作界面 package Default;public class Dome02interface {public static void main(String[] args) {// 创建实现类对象 // MyInterfaceDefaultA A new MyInterfaceDefaultA(); // A.method01(); // System.out.println("--------------"); // 调用默认方…

【C++】多态(重写)的实现过程及其原理【核心知识点精讲】(22)

前言 大家好吖,欢迎来到 YY 滴C系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! 目录 一.基础知识介绍1)虚函数&a…

SpringBoot整合Mybatis+人大金仓(kingbase8)

陈老老老板🦸 👨‍💻本文专栏:国产数据库-人大金仓(kingbase8)(主要讲一些人大金仓数据库相关的内容) 👨‍💻本文简述:本文讲一下Mybatis框架整合…

Centos7下搭建H3C log服务器

rsyslogH3C 安装rsyslog服务器 关闭防火墙 systemctl stop firewalld && systemctl disable firewalld关闭selinux sed -i s/enforcing/disabled/ /etc/selinux/config && setenforce 0centos7服务器,通过yum安装rsyslog yum -y install rsysl…

Swift语言配合HTTP写的一个爬虫程序

下段代码使用Embassy库编写一个Swift爬虫程序来爬取jshk的内容。我会使用proxy_host为duoip,proxy_port为8000的爬虫IP服务器。 使用Embassy库编写一个Swift爬虫程序可以实现从网页上抓取数据的功能。下面是一个简单的步骤: 1、首先,需要在X…

vue使用websocket与springboot通信

WebSocket是HTML5下一种新的协议,它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯的目的 在很多项目中,都要用到websocket,使得前端页面与后端页进行实时通信,例如,实时查询…

Vue3:自定义图标选择器(包含 SVG 图标封装)

文章目录 一、准备工作(在 Vue3 中使用 SVG)二、封装 SVG三、封装图标选择器四、Demo 效果预览: 一、准备工作(在 Vue3 中使用 SVG) 本文参考:https://blog.csdn.net/houtengyang/article/details/1290431…

Tcl语言:SDC约束命令create_generated_clock详解(下)

相关阅读 Tcl语言https://blog.csdn.net/weixin_45791458/category_12488978.html?spm1001.2014.3001.5482 设定生成时钟特性 前文的末尾提到,当使用-divide by或-multiply_by选项创建生成时钟时,会根据master clock的时钟周期派生出生成时钟的周期&am…

yum工具的使用

yum工具的使用 rpm的弊端 前面我们讲了下rpm,那么rpm有什么弊端呢?其弊端是显而易见的,当用rpm安装软件时,若遇到有依赖关系的软件,必须先安装依赖的软件才能继续安装我们要安装的软件,当依赖关系很复杂的…

[CISCN 2023 初赛]go_session

文章目录 考点代码审计main.goroute.goIndex函数Admin函数Flask函数 解题过程伪造session获取server.py构造payload覆盖server.py命令执行 考点 session伪造,pongo2模板注入,debug模式覆盖源文件 代码审计 main.go package mainimport ("github.c…

汇编-变量

.386 .model flat,stdcall option casemap:none.data sum DWORD 0 ;创建一个全局变量,取名sum,初始化0 sum1 DWORD ? ;创建一个全局变量sum1,无初始化 ;问号(?)初始化值使得变量未被初始化,这意味着在运行时才会为该变量分配一个值 ;变量名…

【Node.js入门】1.3 开始开发Node.js应用程序

1.3 开始开发Node.js应用程序 学习目标 (1)熟悉开发工具Visual Studio Code的基本使用; (2)掌握Node.js应用程序的编写、运行和调试的基本方法。 构建第一个 Node.js应用程序 代码 const http require("htt…

【小技巧】WPS统计纯汉字(不计标点符号)

【小技巧】WPS统计纯汉字(不计标点符号) 首先,CtrlF打开查找页面: 选择“高级搜索”,然后勾选“使用通配符”,然后在“查找内容”后面输入:[一-﨩]。注意:一定要带“[]”和“-”且…