cocos creator从零开发简单框架(25)-多相机处理

当碰到有类似地图跟随这样的功能,每个相机渲染的内容不一样,即Main Camera渲染UI对象以外的所有对象,UI Camera只渲染UI对象,我们要设置所有UI对象的GroupUI

Main相机

UI相机

UI对象

编辑framework/scripts/view/LayerMgr.ts,添加viewGroup成员变量,修改initnewLayer方法 。

private static viewGroup: string

// 层级及对应节点
private static _layerMap: Map<number, cc.Node> = new Map()

private static _zIndex: number = 0


// 初始化层级
public static init(viewGroup: string) {
    this.viewGroup = viewGroup
    
    // 框架初始化和切换场景后都会调用, 所以要清除之前的数据
    this._layerMap.clear()
    // ...... 省略代码 ......
}

public static newLayer(name: string, value: number) {
    // ...... 省略代码 ......
    layer.parent = cc.Canvas.instance.node
    layer.group = this.viewGroup
    layer.zIndex = value
    // ...... 省略代码 ......
}

编辑framework/scripts/App.ts,添加viewGroup成员变量,修改initinitFramework方法 。

// 主UI(进入主UI时会清空当前打开的所有UI记录)
private static _uiMain: string = 'UIMain'
// view 的分组(如果场景有多相机, 要设置 view 的分组为 UI摄像机的分组)
private static _viewGroup: string = 'default'


// 初始化
public static init(uiMain?: string, viewGroup?: string) {
    if (uiMain) this._uiMain = uiMain
    if (viewGroup) this._viewGroup = viewGroup

    this.initFramework()
}

// ...... 省略代码 ......

// 初始化框架
private static initFramework() {
    LayerMgr.init(this._viewGroup)

    UIMgr.init(this._uiMain)
    PanelMgr.init()
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值