《laya源码分析》四种UI加载模式

本文详细介绍了Laya的四种UI加载模式:内嵌、加载、分离和文件模式。内嵌模式适用于小型项目,加载模式和分离模式在节省包体大小和加载速度上各有优势,而文件模式则为小游戏优化。根据项目需求,小于4M的游戏推荐内嵌模式,常规项目可选加载或分离模式,不建议使用文件模式。理解各种模式的差异对于优化游戏性能至关重要。
摘要由CSDN通过智能技术生成

 laya提供4中UI加载模式:内嵌模式,加载模式,分离模式,文件模式(默认)

这些模式的区别就是我的场景UI数据究竟放哪里。

内嵌模式:内嵌模式会把编辑器的UI内容生成一个场景类代码文件,代码脚本里包含IDE创建的UI场景的信息,在小游戏和轻游戏还没有问世的时候,不用考虑js 的大小,正常开发h5最常用的选择,而且不涉及异步加载打开页面速度也最快

生成场景类,会增加bundle.js包的体积

简单来讲:bundle.js内包含了UI信息

适用ui资源+js代码构建的bundle.js包总内存小于4m的情况

 

加载模式: 加载模式也会生成场景类(layaMaxUI.ts),其他的UI数据信息会放到一个ui.json内,使用时需要加载这个json,同样在没有小游戏的时代不常用,场景信息可以不在js中,可以节省js包体大小,给小游戏4m包节省更多空间。使用时可以作为资源加载。

生成ui.json,UI信息包含在ui.json里面

简单来讲:bundle.js内不含有ui信息,减少包体体积,使用场景需要自己加载ui.json,然后去new->addChild,同时页面过大时会导致加载缓慢,后续不需要在加载各个ui的信息

Laya.loader.load("ui.json", Laya.Handler.create(this, this.onLoadUI));
 
private onLoadUI{
    Laya.View.uiMap = Laya.loader.getRes("ui.json");
    Laya.stage.addChild(new TestView());
}

export default class TestView extends Laya.View {
    constructor() {
        super();
    }
 
    createChildren(){
        super.createChildren();
        this.createView(Laya.View.uiMap["test/TestView"]);
    }
}

适用于页面较少的游戏

分离模式: 分离模式是在加载模式基础上,同样也会生成场景类(layaMaxUI.ts),但他会把每个场景生成单独的场景数据文件,每次单独加载场景文件,区别于加载模式一次把所有场景都加载。在2.0以后,开发小游戏或轻游戏,为了减少主包大小和提升加载速度都是常用的模式。

单个ui界面生成单个json,会生成很多个json文件

Laya.Scene.open("test/TestView.scene")
	
this.loadScene("test/TestView");

简单来说,一个界面生成一个ui.json,当需要显示的时候再去加载,可以有效减少加载界面的等待时间

适用页面较多,切需要加载速度快的游戏

文件模式(默认):文件模式是2.0特有的,为了开发小游戏而创建的,他不生成场景类(layaMaxUI.ts),也就是能进一步减少js包的大小,使用的时候用Scene.load方式加载,区别于前三种最大的的不同就是,文件模式不能直接调用场景内的变量,需要getchild获取之后进行操作。前三种的场景类里声明了变量,有代码提示直接可以操作内部的变量。

ui界面生成单个json,

支持的加载方式

Laya.Scene.open("test/TestView.scene");
export default class TestView extends Laya.View {
    constructor() {
        super();
    }<br>    createChildren():void{<br>       super.createChildren();<br>        this.loadScene("test/TestView ");<br>    }
}

简单来说,IDE默认的加载方式,没有代码提示,不建议使用

适用于测试demo

 

现在我们知道了4种模式的区别。那么实际项目如何使用

当游戏非常小(小于4M)时,推荐内嵌模式

正常推荐使用 加载模式分离模式

不建议使用文件模式

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值