【SKFramework框架核心模块】3-9、资源模块

推荐阅读

  • CSDN主页
  • GitHub开源地址
  • Unity3D插件分享
  • QQ群:398291828
  • 小红书
  • 小破站

大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。

一、前言

【Unity3D框架】SKFramework框架完全教程《全网最全》-专栏文章目录:
https://blog.csdn.net/q764424567/article/details/143926557

二、正文

2-1、介绍

AssetBundleUnity提供的一种资源存储压缩包,包含了一些Unity的资源,如图片,模型,纹理,音视频等等,也可以包含用户自定义的二进制文件。提供了一种程序运行时动态加载资源包的方法,如游戏中不同版本的资源更新即通过更新资源AB包即可。

Unity官方文档描述AssetBundle为一个容器,就像文件夹一样,包含其他文件。这些其他文件有两种类型,一种是序列化文件,包含资产分解成单独的对象并写到该单个文件中。另一种是资源文件,是为某些资产(纹理和音频)单独存储的二进制数据块,以允许Unity从另一个线程上的磁盘有效加载它们。

总而言之,AssetBundle就是一种资源包,让你能在运行时动态的加载卸载它,也可以灵活更新,即可以无需放在游戏本地,大大降低了包体大小。

SKFramework框架的资源加载模块,将AssetBundle加载的代码进行了封装调用。

接下来,看一下如何使用。

2-2、使用说明

Mode:资源加载模式

  • Editor:编辑器模式
  • SIMULATIVE:模拟模式(StreamingAssets)
  • REALITY:真实环境

AssetBundleUrl:AssetBundle资源包所在路径

AssetBundleManifestName:manifest文件名称

加载资产:

void LoadAssetAsync<T>(string assetPath, Action<float> onLoading, Action<bool, T> onCompleted)
void LoadAssetAsync<T>(MonoBehaviour executer, string assetPath, Action<float> onLoading, Action<bool, T> onCompleted)参数:
executer:开启加载协程的Monobehaviour
assetPath:资产路径
onLoading:加载中回调
onCompleted:加载完成回调返回值:
Coroutine加载协程

卸载资产:

void UnloadAsset(AssetInfo assetInfo, bool unloadAllLoadedObjects)参数:
assetInfo:资产信息
unloadAllLoadedObjects:是否卸载其所有实例,默认为false

卸载所有资产:

UnloadAllAsset(bool unloadAllLoadedObjects)

加载场景:

void LoadSceneAsync(string sceneAssetPath, Action<float> onLoading, Action onCompleted)
void LoadSceneAsync(MonoBehaviour executer, string sceneAssetPath, Action<float> onLoading, Action onCompleted)参数:
executer:开启加载协程的Monobehaviour
sceneAssetPath:场景资源路径
onLoading:加载中回调
onCompleted:加载完成回调返回值:
Coroutine加载协程

卸载场景:

bool UnloadScene(SceneInfo sceneInfo)参数:
sceneInfo:场景信息返回值:
true:卸载成功
false:未加载该场景,卸载失败

调用示例:

using SK.Framework;
using SK.Framework.Resource;
using UnityEngine;public class UseResource : MonoBehaviour
{void Start(){//异步加载资产SKFramework.Module<Resource>().LoadAssetAsync<AudioClip>("Assets/click01.mp3", onCompleted: (success, clip) =>{if (success){AudioSource source = gameObject.AddComponent<AudioSource>();source.clip = clip;source.Play();}});//异步加载场景SKFramework.Module<Resource>().LoadSceneAsync("Assets/Scenes/Example.unity");}
}

2-3、实现及代码分析

异步加载资源,核心代码使用了UnityWebRequest进行ab包加载:
在这里插入图片描述
加载完成后回调,使用资源:

在这里插入图片描述

三、后记

如果觉得本篇文章有用别忘了点个关注,关注不迷路,持续分享更多Unity干货文章。


你的点赞就是对博主的支持,有问题记得留言:

博主主页有联系方式。

博主还有跟多宝藏文章等待你的发掘哦:

专栏方向简介
GameFramework框架框架Unity之GameFramework框架快速应用、使用说明、源码分析等文章合集。
Unity3D开发小游戏小游戏开发教程分享一些使用Unity3D引擎开发的小游戏,分享一些制作小游戏的教程。
Unity3D从入门到进阶入门从自学Unity中获取灵感,总结从零开始学习Unity的路线,有C#和Unity的知识。
Unity3D之UGUIUGUIUnity的UI系统UGUI全解析,从UGUI的基础控件开始讲起,然后将UGUI的原理,UGUI的使用全面教学。
Unity3D之读取数据文件读取使用Unity3D读取txt文档、json文档、xml文档、csv文档、Excel文档。
Unity3D之数据集合数据集合数组集合:数组、List、字典、堆栈、链表等数据集合知识分享。
Unity3D之VR/AR(虚拟仿真)开发虚拟仿真总结博主工作常见的虚拟仿真需求进行案例讲解。
Unity3D之插件插件主要分享在Unity开发中用到的一些插件使用方法,插件介绍等
Unity3D之日常开发日常记录主要是博主日常开发中用到的,用到的方法技巧,开发思路,代码分享等
Unity3D之日常BUG日常记录记录在使用Unity3D编辑器开发项目过程中,遇到的BUG和坑,让后来人可以有些参考。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Swing中密码框组件

一、介绍 密码框&#xff08;JPasswordField&#xff09;与文本框的定义和用法基本相同&#xff0c;唯一不同的是密码框将用户输入的字符串以某种符号进行加密。密码框对象是通过javax.swing.JPasswordField类创建的。 二、常用构造方法 1、public JPasswordField() 2、pub…

SpringMVC ——(1)

1.SpringMVC请求流程 1.1 SpringMVC请求处理流程分析 Spring MVC框架也是⼀个基于请求驱动的Web框架&#xff0c;并且使⽤了前端控制器模式&#xff08;是⽤来提供⼀个集中的请求处理机制&#xff0c;所有的请求都将由⼀个单⼀的处理程序处理来进⾏设计&#xff0c;再根据请求…

【英一】1998年

阅读1 suffering. 苦难at the mercy of. 完全受...的支配do ones bidding. 服从某人threaten to. 可能...&#xff08;发生不好的事情&#xff09;do more harm than good. 弊大于利strive to. 争取&#xff0c;努力assert. 主张cement. 巩固bid for. (尤指许下诺言)企图获得&…

BT.1120视频传输协议标准介绍

1.BT.1120 BT.656 协议主要是针对 PAL、NTSC下的标清视频。随着高清视频的发展的需要&#xff0c;又推出了 BT.1120 标准&#xff0c;它与 BT656 有许多类似的地方&#xff0c;不同点在于时钟频率更高了&#xff0c;更加适合高清视频的传输&#xff0c;隔行传输和逐行传输兼备。…

RabbitMQ学习-Eleven

SpringBoot中RabbitMQ的消息确认和Return机制 1.再application.yml文件中开启消息确认机制和return机制 spring:rabbitmq:publisher-confirm-type: simplepublisher-returns: true 2.创建confirm和return监听 // MsgConfirmAndReturn.java 中的代码片段Component public cla…

GAMES101 完结篇(笔记和作业)

写在前面 我已经把笔记和作业代码放在了GitHub上&#xff0c;欢迎访问GAMES101笔记及作业 (github.com)&#xff0c;如果对你有帮助&#xff0c;欢迎fork or star 下面我想简单介绍一下这里面的东西 Homework Homework文件夹里有0~8的作业框架&#xff0c;参考的其他大佬的代…

修改mobaxterm字体为全绿色

修改前&#xff1a; 修改步骤步骤&#xff1a; 红色方框里面的颜色都改为绿色&#xff0c;然后点击OK 重启mobaxterm即可&#xff1a;

vue+mars3d叠加展示arcgis动态服务

数据格式&#xff1a;使用arcgis发布的动态服务 叠加和移除arcgis服务图层的方法 //加载arcgis地图服务function arcgisServer(i,d,m,p){i[d.data] new mars3d.layer.ArcGisLayer({name:d.label,url:p,flyTo: true})m.addLayer(i[d.data])}//移除arcgis服务范围线function rem…

模型案例:| 手机识别模型!

导读 2023年以ChatGPT为代表的大语言模型横空出世&#xff0c;它的出现标志着自然语言处理领域取得了重大突破。它在文本生成、对话系统和语言理解等方面展现出了强大的能力&#xff0c;为人工智能技术的发展开辟了新的可能性。同时&#xff0c;人工智能技术正在进入各种应用领…

241205_给自己的应用加上语音助手功能

241205_给自己的应用加上语音助手功能 前面我们自己做了一个网易云音乐&#xff0c;但每次都要去点点点显得有点麻烦&#xff0c;所以我就考虑添加一些语音助手的功能。 其实当前在日常windows使用中&#xff0c;我觉得也就音乐播放需要一个语音助手交互&#xff0c;其他的功…

Navicat连接服务器MySQL

Navicat连接服务器MySQL 1. Navicat连接服务器MySQL2. 如何查看MySQL用户名和密码3. 修改MySQL登录密码4. 安装MySQL(Centos7)遇到错误和问题 1. error 1045 (28000): access denied for user ‘root’‘localhost’ (using password:yes) 1. Navicat连接服务器MySQL 选择数据…

得物新一代可观测性架构:海量数据下的存算分离设计与实践

一、引言 得物作为全球领先的潮流网购社区&#xff0c;日益增长的用户和数据带来了巨大的技术挑战。当前&#xff0c;得物的可观测性平台每天生成数PB级Trace数据和数万亿条Span记录&#xff0c;要求平台具备高效的实时处理能力和低成本的数据存储解决方案。 传统的存算一体架…

​ 基于51单片机的智能公交车报站系统GPS定位语音播报智能安全检测人数统计

功能介绍 以51单片机为控制核心.LCD12864可显示当前年月日&#xff0c;星期&#xff0c;时间&#xff0c; 当前站名&#xff0c;经纬度&#xff0c;是否连接GPS&#xff0c;自动/手动模式&#xff0c;自带GPS定位&#xff0c;可实时显示经纬度&#xff1b;通过DS1302时钟芯片…

Gitee配置SSH公钥

采用SSH协议同步Git仓库代码的好处就是高效。在配置好SSH公钥后&#xff0c;不需要每次操作都要输入用户名和密码&#xff08;主要针对命令行来说&#xff09;。 以我个人项目为例。 生成 SSH 公钥 1. 通过命令 ssh-keygen 生成 SSH Key&#xff1a; ssh-keygen -t ed25519…

CV(2)-插值和卷积

前言 仅记录学习过程&#xff0c;有问题欢迎讨论 看看年前可以学到哪。 频率&#xff1a; 灰度值变化程度的指标&#xff0c;是灰度再平面上的梯度幅值: 幅值&#xff1a; 是在一个周期内&#xff0c;交流电瞬时出现的最大绝对值&#xff0c;也是一个正弦波&#xff0c;波…

D362 php+mysql旅游服务网站的设计与实现 源码 配置 文档 全套资料

旅游服务网站的设计与实现 1.摘要2.开发目的和意义3.系统功能设计4.系统界面截图5.源码获取 1.摘要 近几年&#xff0c;随着我国国民经济和信息技术的迅速发展&#xff0c;旅游项目的开发和建设&#xff0c;已是我国旅游业发展重要经济来源之一&#xff0c;我国旅游业近几年的…

python——列表

目录 一&#xff0c;选择题 二&#xff0c;判断题 三&#xff0c;列表的思维导图 一&#xff0c;选择题 1.已知列表 xlist(range(9))&#xff0c;那么执行之后&#xff0c;x的值为( D ) A. [1,3&#xff0c;5&#xff0c;7&#xff0c;9] B.[1,3,5&#xff0c;7] C.[0,1…

JAVA面试基础(总结了很多)

最近帮整理了一份JAVA的面试基础&#xff0c;不过很基础后面还回继续更新。 java的专业技能 2.1 java的基础部分 2.1.1 简单讲一下java的跨平台原理 由于各操作系统&#xff08;windows,liunx等&#xff09;支持的指令集&#xff0c;不是完全一致的。就会让我们的程序在不同的操…

基于SpringBoot的社区医院管理系统(代码+论文)

&#x1f389;博主介绍&#xff1a;Java领域优质创作者&#xff0c;阿里云博客专家&#xff0c;计算机毕设实战导师。专注Java项目实战、毕设定制/协助 &#x1f4e2;主要服务内容&#xff1a;选题定题、开题报告、任务书、程序开发、项目定制、论文辅导 &#x1f496;精彩专栏…

linux下使用gdb运行程序,查看程序崩溃原因

1.什么是gdb? gdb 是 GNU Debugger 的缩写&#xff0c;是一个功能强大的用于调试程序的开源调试器工具。它可以帮助开发人员诊断和解决程序中的错误、跟踪程序执行过程、查看变量的值等。gdb 支持多种编程语言&#xff0c;包括 C、C、Objective-C、Fortran 等&#xff0c;并可…