Cocos2dx 3.7 正式版依然无法使用 setGlobalZOrder 来排序3D模型和UI对象的渲染层级关系
代码:
gWorldScene = cc.Scene:create()
cc.Director:getInstance():runWithScene(gWorldScene)
local sprite3D = cc.Sprite3D:create(“Sprite3DTest/tortoise.c3b”)
gWorldScene:addChild(sprite3D)
sprite3D:setPosition(cc.p(200, 200))
sprite3D:setGlobalZOrder(1)
sprite3D:setScale(0.2)
local button = ccui.Button:create()
gWorldScene:addChild(button)
button:loadTextures(“cocosui/animationbuttonnormal.png”, “cocosui/animationbuttonpressed.png”, “”)
button:setPosition(cc.p(250, 230))
button:setGlobalZOrder(200)
local imageView = ccui.ImageView:create(“cocosui/CloseSelected.png”)
gWorldScene:addChild(imageView)
imageView:setPosition(cc.p(250, 230))
imageView:setGlobalZOrder(200)
结果:

可以看到尽管UI对象的GlobalZOrder设置为200,仍然渲染在3D模型的下面!!
还有,不使用DEMO里面的Camera方式,是应为Camera个数不够做场景层级排序用,所以只好使用 setGlobalZOrder 函数。