Unity Editor 打包指定资源(AssetBundle)和加载指定资源
前言:
一般用于ui资源打包和加载,代码比较简单没什么好说的,直接上代码。
打包代码:
[MenuItem("Assets/打包指定的预设")]public static void BuildAsset() {var selectObject = Selection.activeObject;if (selectObject != null) {if (selectObject is GameObject go) {try {EditorUtility.DisplayProgressBar("打包资源", go.name, 1.0f);AssetBundleBuild build = new AssetBundleBuild();var path = Application.streamingAssetsPath + "/assetbundle";if (!Directory.Exists(path)) {Directory.CreateDirectory(path);}build.assetBundleName = go.name;build.assetNames = new string[] { AssetDatabase.GetAssetPath(selectObject) };AssetBundleManifest manifest = BuildPipeline.BuildAssetBundles(path,new AssetBundleBuild[] { build },BuildAssetBundleOptions.ChunkBasedCompression, BuildTarget.StandaloneWindows64);File.Delete(path + "/" + go.name + ".manifest");AssetDatabase.Refresh();}catch (Exception e) {Debug.Log($"打包资源:{go.name}失败,Error:{e.Message}");}EditorUtility.ClearProgressBar();}}//string inputPath = EditorUtility.OpenFolderPanel("选择编译文件夹",// UnityEngine.Application.dataPath, "HostScripts");//if (string.IsNullOrEmpty(inputPath)) {// EditorUtility.DisplayDialog("错误", "必须选择文件夹才能进行编译", "确定");//}}
加载代码:
public void LoadUIformAB<T>(string path, string assetName, Action<T> callBack) where T : UnityEngine.Object {AssetBundle ab = null;if (abUIMap.TryGetValue(path, out ab)) {try {T asset = (T)GameObject.Instantiate(ab.LoadAsset(assetName));callBack?.Invoke(asset);}catch (Exception e) {McLogger.Error("UI", nameof(UISetting), $"加载UIab包报错{e.Message}---->{e.StackTrace}");callBack?.Invoke(null);}}else {if (File.Exists(path)) {try {ab = AssetBundle.LoadFromFile(path);abUIMap.Add(path, ab);T asset = (T)GameObject.Instantiate(ab.LoadAsset(assetName));callBack?.Invoke(asset);}catch (Exception e) {McLogger.Error("UI", nameof(UISetting), $"加载UIab包报错{e.Message}---->{e.StackTrace}");callBack?.Invoke(null);}}else {callBack?.Invoke(null);}}}
private string path = Application.streamingAssetsPath + $"/assetbundle/sequenceframe";//ab包路径private void LoadAssetBundleFile(){SimApp.UIRuntime.LoadUIformAB<GameObject>(path, "sequenceframe", (data) =>{if (data != null){data.transform.SetParent(transform);data.GetComponent<RectTransform>().localPosition = Vector3.zero;data.GetComponent<RectTransform>().sizeDelta = Vector2.zero;data.transform.localScale = Vector3.one;}});}
相关文章:
Unity Editor 打包指定资源(AssetBundle)和加载指定资源
前言: 一般用于ui资源打包和加载,代码比较简单没什么好说的,直接上代码。 打包代码: [MenuItem("Assets/打包指定的预设")]public static void BuildAsset() {var selectObject Selection.activeObject;if (selectObje…...
网站批量替换关键词方法
注意替换操作之前先对文件做好备份 1.下载http://downinfo.myhostadmin.net/ultrareplace5.02.rar 解压出来,运行UltraReplace.exe 2.点击菜单栏中的配置,全选所有文件类型,或者根据自己的需求选择部分,如htm、html、php、asp等 3.若替换单个文件,点击文件,若是要…...
RabbitMQ的LazyQueue
在默认情况下,RabbitMQ会将接收到的信息保存在内存中以降低消息收发的延迟。但在某些特殊情况下,这会导致消息积压,比如: 消费者宕机或出现网络故障消息发送量激增,超过了消费者处理速度消费者处理业务发生阻塞 一旦…...
面试经典150题——Day16
文章目录 一、题目二、题解 一、题目 42. Trapping Rain Water Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it can trap after raining. Example 1: Input: height [0,1,0,2,1,0,1,3,2,1,2,…...
从零开始搭建第一个django项目
目录 配置环境创建 Django 项目和 APP项目组成 子目录文件组成应用文件组成 配置 settings.py启动项目 数据表创建models.pyDjango-models的常用字段和常用配置 Django-admin 引入admin后台和管理员外键views.pyurls.pypostman接口测试 QuerySetInstance功能APIView 的概念…...
Godot2D角色导航-自动寻路教程(Godot获取导航路径)
文章目录 开始准备获取路径全局点坐标 开始准备 首先创建一个导航场景,具体内容参考下列文章: Godot实现角色随鼠标移动 然后我们需要设置它的导航目标位置,具体关于位置的讲解在下面这个文章: Godot设置导航代理的目标位置 获取…...
用c++写一个高精度计算的减法运算
这段代码是一个用C编写的程序,它实现了两个大整数的减法运算。 #include<iostream> #include<cstdio> #include<cstring> using namespace std;int main(){int a[256],b[256],c[256],lena,lenb,lenc,i;char n[256],n1[256]"1001",n2[2…...
基于白鲸优化的BP神经网络(分类应用) - 附代码
基于白鲸优化的BP神经网络(分类应用) - 附代码 文章目录 基于白鲸优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.白鲸优化BP神经网络3.1 BP神经网络参数设置3.2 白鲸算法应用 4.测试结果:5.M…...
Matlab遗传算法工具箱——一个例子搞懂遗传算法
解决问题 我们一般使用遗传算法是用来处理最优解问题的,下面是一个最优解问题的例子 打开遗传算法工具箱 ①在Matlab界面找到应用程序选项,点击应用程序(英文版的Matlab可以点击App选项) ②找到Optimization工具箱,点击打开 创建所需要…...
Coreldraw2020最新64位电脑完整版本下载教程
安装之前所有的杀毒软件都要退出。无论是360,腾讯管家,或者电脑自带的安全中心,要不然会阻止安装。 CorelDRAW2020版win下载如下:https://wm.makeding.com/iclk/?zoneid55678 CorelDRAW2020版mac下载如下:https://wm.makeding.com/iclk/?…...
第一节——vue安装+前端工程化
作者:尤雨溪 官网:简介 | Vue.js 脚手架文档 创建一个项目 | Vue CLI 一、概念(了解) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&…...
vue集成钉钉单点登录
初始环境判断 判断是否是来自钉钉环境的访问,返回:boolean类型值 window.navigator.userAgent.includes("DingTalk")前端引入vue中钉钉相关的依赖,并获取钉钉的临时授权码 import * as dingtalk from dingtalk-jsapi; let that …...
凉鞋的 Godot 笔记 203. 变量的常用类型
203. 变量的常用类型 在上一篇,我们对变量进行了概述和简介,知识地图如下: 我们已经接触了,变量的字符串类型,以及一些功能。 在这一篇,我们尝试多接触一些变量的类型。 首先是整数类型。 整数类型 整…...
【现场问题】批量新建工作流的问题
批量建工作流的优势和劣势 关于批量建工作流的优势缺点 关于批量建工作流的优势 不需要手动,直接一键建立,同时节点的批量建立也成功了 缺点 1、机器识别,一次性成形,没有办法手动的去干涉这东西 2、大数据量的表需要单独处理的…...
动态规划14(Leetcode516最长回文子序列)
代码: class Solution {public int longestPalindromeSubseq(String s) {int n s.length();int[][] dp new int[n][n];for(int in-1;i>0;i--){dp[i][i] 1;char c1 s.charAt(i);for(int ji1;j<n;j){char c2 s.charAt(j);if(c1c2){dp[i][j] dp[i1][j-1]2…...
写一个简单的解释器(0) 简介和目标
解释语言和编译语言 编译语言,是指其编译器生成的可执行文件为机器码,可以直接在计算机上运行的语言,比如说 C/C \texttt{C/C} C/C 。 解释语言,是指经由解释器生成的可执行文件为字节码文件,只能运行在特殊的虚拟机…...
通过Chain Prompts方式将LLM的能力引入测试平台:正交实验测试用例生成
通过Chain Prompts方式将LLM的能力引入测试平台:正交实验测试用例生成 Chain Prompts Chain Prompts是指在一个对话或文本生成任务中,将前一个提示的输出作为下一个提示的输入,形成一个连续的链条。这种方法常常用于创建连贯的、有上下文关联的文本。在对话系统中,这种方…...
M-BUS和modbus的区别是什么?
M-BUS与Modbus是两种在工业自动化和楼宇自动化领域广泛应用的通信协议。那么,这两种通信协议有哪些区别呢?下面,就由小编带大家一起来了解下吧! 一、简介 M-BUS(Multi-dropBus,多点通信总线)和Modbus(莫迪波特率)都是用于设备和系统之间通信…...
CSS 滚动驱动动画 timeline-scope
timeline-scope 语法兼容性 timeline-scope 看到 scope 就知道这个属性是和范围有关, 没错, timeline-scope 就是用来修改一个具名时间线(named animation timeline)的范围. 我们介绍过的两种时间线 scroll progress timeline 和 view progress timeline, 使用这两种时间线(通…...
R语言时间序列分析
目录 概述 1、什么是时间序列分析 2、时间序列分析的应用 时间序列的基本操作...
AI Agent如何通过声波协议实现高效通信:GibberLink项目深度解析
1. 项目概述:当AI开始用“声音”说悄悄话 去年二月,一个关于两个AI智能体在对话中“切换语言”的演示视频在技术圈里小火了一把。视频里,两个扮演“客户”和“酒店前台”的AI对话机器人,在聊了几句确认对方也是AI后,突…...
从多智能体系统到共生AI:构建协同进化的分布式智能架构
1. 项目概述:当AI学会“共生”最近在GitHub上闲逛,发现了一个名为lout33/symbiotic-ai的项目,这个名字立刻抓住了我的眼球。“共生AI”(Symbiotic AI)—— 这听起来不像是一个简单的工具库或者模型,更像是一…...
从‘拉面条’到‘找焦点’:一个地质工程师眼中的速度分析实战避坑指南
从‘拉面条’到‘找焦点’:一个地质工程师眼中的速度分析实战避坑指南 1. 速度谱解读:从机械操作到地质思维 第一次拿到速度谱时,我像大多数新人一样,把它当作一张需要"拉平"的数学试卷——直到在塔里木盆地的一个深夜&…...
【Matlab】工业机器人协作焊接路径规划仿真与程序实现
【Matlab】工业机器人协作焊接路径规划仿真与程序实现 一、引言 智能制造与高端装备制造产业快速升级背景下,焊接作为机械制造、汽车车身成型、工程机械结构件加工、压力容器生产等行业的核心基础工艺,焊接质量与作业效率直接决定产品整体性能与生产产能。传统单台工业机器…...
Qwen3.6-27B 开源:昇腾适配已到位,AtomGit AI 开放体验
270 亿参数稠密多模态模型 Qwen3.6-27B 正式开源。目前,昇腾生态已完成对 Qwen3.6-27B 模型的适配支持,相关模型文件与权重已同步上线 AtomGit AI,开发者们可直接获取并进行部署测试。 🔗 SGLang 部署:https://ai.atom…...
实战验证:爱搜索GEO营销系统如何为工业制造企业实现精准AI搜索优化
在传统搜索引擎优化(SEO)已进入存量竞争的红海时,一种基于生成式人工智能(AIGC)的全新流量战场——AI搜索优化(GEO)正在迅速崛起。对于企业而言,这不仅是技术升级,更是一…...
从NTU RGB+D到NTU RGB+D 120:骨架行为识别数据集的演进与动作标签全景解析
1. 骨架行为识别数据集的演进背景 骨架行为识别是计算机视觉领域的重要研究方向,它通过分析人体关节点的运动轨迹来识别和理解人类行为。在这个领域中,高质量的数据集是算法研发和性能评估的基础。NTU RGBD系列数据集作为该领域的标杆性资源,…...
CAN总线数据抓包逆向分析:用can-utils和Wireshark破解汽车ECU通信协议
CAN总线数据逆向实战:从抓包到协议解析的全链路拆解 在汽车电子和工业控制领域,CAN总线如同神经脉络般连接着各种电子控制单元(ECU)。当我们需要诊断车辆故障、开发后装设备或进行安全研究时,逆向分析CAN协议就成为必备…...
Flux2-Klein-9B-True-V2惊艳效果:风格迁移+细节增强真实生成案例分享
Flux2-Klein-9B-True-V2惊艳效果:风格迁移细节增强真实生成案例分享 1. 模型能力概览 Flux2-Klein-9B-True-V2是基于官方FLUX.2 [klein] 9B改进的文生图/图生图模型,在风格迁移和细节增强方面表现出色。这个模型不仅能根据文字描述生成高质量图片&…...
GLM-4.7智能体部署实战:从模型选型到性能调优全解析
1. 项目概述:从GLM-4.5到GLM-4.7,一个开源智能体基座的演进之路如果你在过去一年里深度参与过AI智能体或者大语言模型的应用开发,那么“GLM”这个系列对你来说一定不陌生。从GLM-4.5的横空出世,到GLM-4.6的稳步提升,再…...
