AB包框架

1. 为啥有AB包? 因为资源需要更新, 避免更新一次打包一次 动态修改.
2. AB包注意啥?  依赖关系 找依赖关系应该找到对应的平台!!!
3. 打包策略是分场景打包  若文件被文件夹包含打包出来的就是文件夹的名字 否则是场景文件夹名称
4. 当我AB包从硬盘加载完成之后 是不是就该加载到内存 并实例化了?  带有缓存的ab加载机制
知道加载的过程 说出来! 这个很重要(依赖加载必须会). 知道框架的基本作用 以后会拿出来用或修改
  1. 新建场景并Build出来
  2. 拖入ABFW文档,Plugins文档,新建AssetBundle_Res文档 StreamingAssets文档
  3. 在AssetBundle_Res文档下建立场景文档(修改的话则需在PathTools脚本中重新定义此文档名)
  4. 在场景中新建物体挂载脚本
    4.1: 指定场景
    4.2: 指定abname
    4.3: 指定objinabname
    4.4: 协同
    4.5: 委托 void string
    4.6: 在委托里面进行物体的实例化操作
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using LLWHABFW;
using UnityEngine.SceneManagement;

public class s3LoadAAB : MonoBehaviour {

	// Use this for initialization
	private string _aBScence = "scenes03";//指定场景
    private string _aBName = "scenes03/scenes03.ab";//指定abname需要实例化的是哪个,就要写对名字,在预制体在prefab中,就写scenes03/prefab.ab
    private string _objInAB01 = "Plane.prefab";//指定objinabname
    private string _objInAB02 = "RollerBall.prefab";
	private List<GameObject> _list; 
	void Start ()
	{
		_list = new List<GameObject>();

        //协同                                                                              委托 void  string 
        StartCoroutine(AssetBundleMgr.GetInstance().LoadAssetBundlePack(_aBScence, _aBName, XXXX));
	}
	
	// Update is called once per frame
	void Update () {
        //跳转场景及销毁当前场景所有
		if (Input.GetKeyDown(KeyCode.Space))
		{
			for (int i = 0; i < _list.Count; i++)
			{
				Destroy(_list[i]);
			}
			_list.Clear();
			AssetBundleMgr.GetInstance().DisposeAllAssets(_aBScence);
		
			SceneManager.LoadScene("1");
		}
		
	}
    //在委托里面进行物体的实例化操作
    private void XXXX(string LLWH)
	{
		GameObject Plane, Ball;
	Plane =	AssetBundleMgr.GetInstance().LoadAsset(_aBScence, _aBName, _objInAB01, false) as GameObject;
	Ball =	AssetBundleMgr.GetInstance().LoadAsset(_aBScence, _aBName, _objInAB02, false) as GameObject;
		_list.Add(Instantiate(Plane));
		_list.Add(Instantiate(Ball));

	}
	
	
	
	
}

  1. 点击AssetBundelTools,set AB Lable,buildingAllAssetsBundle.打包
  2. 运行

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ABFrameWork是一种快速开发软件的框架 框架的概念很简单,它是整个软件开发的骨架,它实现了数据访问的底层服务和业务领域通用的功能模块。如用户管理、权限分配、数据访问、二次开发、多语切换、自动更新等。 使用框架开发可以大大缩短开发软件的周期、提高代码质量。此种模式下可最大化的并行开发、最大化的利用资源,从而降低成本、提高效率。 在实际开发中,开发团队可以在实现了底层服务与通用功能的框架上开始具体的系统开发,对要设计的业务进行分工,编码后将业务模块注册到框架系统中进行调试和运行。形象一点来说,就像盖高楼,当一个新项目开始设计和施工时,经过多次考验的大楼框架已经矗立在那里,我们要做的事就是分工做好每个内部房间,然后吊装到大楼内部就可以了,如下图所示。 clip0001 (2)、ABFrameWork是基于组件技术的快速开发工具 框架是面向开发团队的快速开发工具,框架提供了大量的组件和函数库,开发团队可直接使用已有的组件和函数库,大大减少了代码量,并提高了代码速度和质量,甚至可在运行期通过脚本开发新的模块或通过脚本对已有模块进行重定义。在实践中,利用本框架设计的软件开发周期缩短约70%以上,框架在程序稳定性和团队协作方面带来的价值更高。 (3)、ABFrameWork是企业业务可持续开发的平台架构 经过简单培训的系统管理员可以根据业务的变化自由增加或修改模块,经过SQL数据库操作培训的系统管理员可以增加修改报表、查询、图形分析等多项功能,具备DELPHI开发能力的企业人员可以根据需求的增加去设计新的模块并且可无缝添加到已有系统中。 (4)、ABFrameWork是快速方便的系统升级分发工具 由于框架本身具备模块分发功能,因此当有模块升级或新模块加入系统时,系统会自动将模块分发到具有操作权限的用户所使用的计算机当中。可以进行热拨插式的升级,即在不关闭客户端的情况下单独对业务模块升级。 二、ABFrameWork的特色 (1)、支持C/S的两层与三层方式且可运行时动态切换 一个本地参数决定当前架构是三层还是两层,对开发人员来说两层与三层都是使用同一组控件和组件,开发人员在设计期不用考虑两层或三层架构,两层还是三层只是在运行时通过一个本地参数设置来决定的,可实现A客户端(如企业内部)使用二层,B客户端使用三层(外网访问)。 (2)、脚本的完美支持 可通过脚本编辑已有功能模块的界面控件任何事件,也可通过脚本开发新的功能模块,最大程度地使二次开发更加灵活,更加简单。 (3)、解决简繁体与多语言的问题且可运行时动态切换 在简体下编译的程序不用任何修改,就可以在繁体下运行且显示繁体,反之也然,可动态增加、删除或切换语言。 (4)、先进的EXE+BPL分发架构 框架采用EXE +BPL架构,一个功能模块是一个BPL,由主EXE调用,方便发布更新,同时也减少了主程序的体积,功能划分更加清晰,主程序只负责调用BPL或其它程序,增强模块独立性, 框架不涉及具体的业务逻辑,但为所有业务系统服务,实现公共业务功能的部分,如角色管理,操作员管理等。 (5)、先进的自动更新机制 客户端只是一个几M的exe程序,客户端登录运行时会自动将模块分发到具有操作权限的用户所使用的计算机当中。当某一功能模块有更新时,只需将此模块拷贝到任何一台客户端,点击客户端的“上传本地程序”按钮,客户端就会将新的本地程序升级到服务器中,其它客户端在重启或重新打开这个模块时就会先从服务器下载新版本后再运行,从而实现了热拨插式的升级方式,即在不关闭客户端程序的情况下单独对业务模块升级,而这些对客户来说是无感觉的,客户没有感觉到升级,但用的却是最新版本的程序,这样我们就可以一边修正一边编译一边运行,而不用重启动客户端。 (6)、方便灵活的角色控制 .可对操作员分配可用的角色 .可对角色分配各种权限 如一个操作员可分配多种角色,此操作员登录时就可以使用所拥有的多种角色的权限了 权限分类如下所列 v功能模块权限(登录后可以看到哪些模块),如张三、李四登录后能看到客户管理模块,而王五登录后不能看到客户管理模块 v功能模块报表权限(模块的哪些报表可以使用),如张三、李四登录后能看到客户管理模块,但张三能看到客户列表报表,而李四看不到 v功能模块输入模板权限(模块的哪些输入模板可以使用),如张三、李四登录后能看到客户管理模块,但张三能看到大客户输入模板,而李四看不到 v功能模块脚本权限(模块的哪些脚本可以使用,脚本中可灵活设置界面控件的是否显示等属性),如张三、李四登录后能看到客户管理模块,但张三看到的是执行过某个脚本后的窗体,而李四看到的是没执行过脚本的窗体 v扩展报表权限(哪些扩展报表可以使用),如张三、李四登录后能看到交易分析的扩展报表,但王五看不到 v定制对象权限(哪些定制对象可以使用,如可将界面上一组按钮定义为一个功能点,则具有此功能点用户可以看到这组按钮),如张三分配了功能点权限A,则张三登录时可以看到客户管理中的属于功能点权限A的一组按钮,而李四没有分配,则本四登录时就看不到这一组按钮了 v数据表权限(哪些数据表可以新增、修改、删除、打印,可以看到数据表的哪些行),如登录相同的客户管理模块,张三能增加、删除、修改客户的数据,而李四只能查询客户的数据;如登录相同的客户管理模块,张三能看到部门A的数据,而李四能看到部门B的数据 v字段权限(可以看到数据表的哪些字段),如张三能看到客户管理模块的保证金字段,而李四看不到此字段 (7)、完美支持数据库中设置的唯一约束、主键等特性 数据集组件会自动解解释表的约束主键,字段的唯一值等特性,在提交数据时数据集组件会自动检测这些设置,当提交失败时会自动翻译为”某某字段不能为空”, ”某某字段不能重复杂”等提示信息,同时框架也支持自定义不能为空\只读\不能重复的字段及颜色等设置. (8)、多人协同工作提高开发速度、缩短开发周期 组成系统的BPL模块可并行开发测试,互不关联,框架还提供大量函数库,尽可能的增强代码重用,从而加快开发效率、减少开发人员、降低维护费用,进而提高软件生产效率和质量,如一个类似销售订单的复杂模块可控制在500行,甚至一个工资系统的代码量不会超过5000行,有利于在一个项目内多人协同工作,在实践中,利用本框架设计的代码开发周期缩短约70%甚至更短,在程序稳定性和团队协作方面带来的价值更高。 (9)、高效的数据库访问机制、高性能的数据库交互 框架自动解释各种数据操作的动作,框架内置的SQL解析器自动生成相应的新增、删除、修改的SQL语句,提高与数据库交互的效率。 (10)、框架的发展支持 本框架是一个轻量级的应用框架,已有众多实例上线使用,还在继续更新完善中,目前只能支持C/S结构两层或三层应用。暂不支持B/S架构。
本课程总体分为两大部分:理论篇与架构篇AssetBundle架构篇:     1: 讲解Unity原生AssetBundle不适用工程化实战开发的原因与解决方案。     2: 详述AssetBundle框架设计原理图,以及核心设计理念。     3: Untiy编辑器界面全自动化创建AssetBundle与打理念与代码实现。     4: 关于单一AssetBundle的综合加载与管理以及相应测试实现。     5: AssetBundle整体管理。          本模块含*.Manifest清单文件读取、AB之间复杂依赖关系管理、整体场景化自动打与加载管理流程、项目辅助全局定义与路径管理等 一、热更新系列(技术含量:中高级):A:《lua热更新技术中级篇》https://edu.csdn.net/course/detail/27087B:《热更新框架设计之Xlua基础视频课程》https://edu.csdn.net/course/detail/27110C:《热更新框架设计之热更流程与热补丁技术》https://edu.csdn.net/course/detail/27118D:《热更新框架设计之客户端热更框架(上)》https://edu.csdn.net/course/detail/27132E:《热更新框架设计之客户端热更框架(中)》https://edu.csdn.net/course/detail/27135F:《热更新框架设计之客户端热更框架(下)》https://edu.csdn.net/course/detail/27136二:框架设计系列(技术含量:中级): A:《游戏UI界面框架设计系列视频课程》https://edu.csdn.net/course/detail/27142B:《Unity客户端框架设计PureMVC篇视频课程(上)》https://edu.csdn.net/course/detail/27172C:《Unity客户端框架设计PureMVC篇视频课程(下)》https://edu.csdn.net/course/detail/27173D:《AssetBundle框架设计_框架篇视频课程》https://edu.csdn.net/course/detail/27169三、Unity脚本从入门到精通(技术含量:初级)A:《C# For Unity系列之入门篇》https://edu.csdn.net/course/detail/4560B:《C# For Unity系列之基础篇》https://edu.csdn.net/course/detail/4595C: 《C# For Unity系列之中级篇》https://edu.csdn.net/course/detail/24422D:《C# For Unity系列之进阶篇》https://edu.csdn.net/course/detail/24465四、虚拟现实(VR)与增强现实(AR):(技术含量:初级)A:《虚拟现实之汽车仿真模拟系统 》https://edu.csdn.net/course/detail/26618五、Unity基础课程系列(技术含量:初级) A:《台球游戏与FlappyBirds—Unity快速入门系列视频课程(第1部)》 https://edu.csdn.net/course/detail/24643B:《太空射击与移动端发布技术-Unity快速入门系列视频课程(第2部)》https://edu.csdn.net/course/detail/24645 C:《Unity ECS(二) 小试牛刀》https://edu.csdn.net/course/detail/27096六、Unity ARPG课程(技术含量:初中级):A:《MMOARPG地下守护神_单机版实战视频课程(上部)》https://edu.csdn.net/course/detail/24965B:《MMOARPG地下守护神_单机版实战视频课程(中部)》https://edu.csdn.net/course/detail/24968C:《MMOARPG地下守护神_单机版实战视频课程(下部)》https://edu.csdn.net/course/detail/24979

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值