Cocos2dx 3.7 正式版依然无法使用 setGlobalZOrder 来排序3D模型和UI对象的渲染层级关系!!!

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 函数。

版主出来解答下

没办法的。。
因为cocos2d从3.4开始。。就把3D和2D的渲染分开了。。
所以不可能到一个层里面。。
只能用Camera。。
而且即使就算用了Camera。。
也无法实现3D模型上面挂2D特效。。然后和另外一个3D模型上挂2D特效有排序关系。。
要实现这种效果。。只能退到cocos2d 3.3…但是3.3没有3D粒子特效。。而且会有一些crash的bug。
总之很蛋疼。。

做3D游戏明显要用unity啊。。用2DX完全自己找罪受

楼主明显没看过camera的说明···

— Begin quote from ____

引用第2楼yclannad于2015-07-28 22:51发表的 回 1楼(mad_potato) 的帖子 :
没办法的。。
因为cocos2d从3.4开始。。就把3D和2D的渲染分开了。。
所以不可能到一个层里面。。
只能用Camera。。
而且即使就算用了Camera。。
http://www.cocoachina.com/bbs/job.php?action=topost&tid=315684&pid=1357446

— End quote

3d模型挂2d特效是可以的,只是稍微要改点东西。

用2DX做3D真是蛋疼啊!

3D挂2d特效是可以的,但是并没有一直正对摄像机,所以很容易变形