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()
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!