当碰到有类似地图跟随
这样的功能,每个相机渲染的内容不一样,即Main Camera
渲染UI
对象以外的所有对象,UI Camera
只渲染UI
对象,我们要设置所有UI
对象的Group
为UI
。
编辑framework/scripts/view/LayerMgr.ts
,添加viewGroup
成员变量,修改init
、newLayer
方法 。
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
成员变量,修改init
、initFramework
方法 。
// 主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()
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。