我通过cocos下载的cocosframework 3.6,通过创建一个项目之后,如下图代码创建一个3d的球,结果就是下面图的效果,不管怎么设置order都会被图片遮挡住,请问这是bug吗?我该怎么解决?找了好久都没有看到这类的问题,难道没有人碰见过吗,希望cocos的大神尽快给个答复。
自己顶一下,坐等大神出现
绘制顺序是按照这种顺序绘制的,
- globalz<0的物体
- 3D不透明的物体,如果3D物体的globalZ为0,3D物体都在这里绘制,否则根据他们的globalZ决定绘制顺序
- 3D透明物体,如果3D透明物体的globalZ为0,都在这里绘制,否则根据他们的globalZ决定绘制顺序,粒子属于3D透明物体,默认在这里绘制。
- globalZ=0的物体
- globalZ>0的物体
注意globalZ只对自己有效,无法影响到孩子。csb是一个树状结构,设置它的globalZ时只设置了根节点的globalZ,所以它上面的标签的globalZ还是之前的值。这就是它把3D物体遮挡了的原因。
你的意思是csb的原因吗?那么当我换成图片的时候结果还是一样的,球被图片遮挡住了
还是一样被挡住,不知道是不是我理解错了版主的意思
给图片设置下positionZ
你试试修改 cocos2d/cocos/renderer/CCMeshCommand.cpp 的
void MeshCommand::init(…)
{
…
_is3D = false; // 从 true 改为 false
}
试过了 不好用
你说的方法我,别人也给我过这个建议。我试了不好用呢,不知道你用的哪个版本,难道没有不修改源码的办法吗?coco3d里面就不能用平面的图了吗,不能理解
图片的globalz<0
比如:
bg->setGlobalz=-100;
我遇到过类似的问题 我的解决方案是把 3d模型放在一个新的layer上 把layer放在最上层然后添加一台camera对着3d模型就解决问题了 我遇到的问题是 3d模型不能以cocostudio里面的控件为父节点不会渲染 如果放在根节点的话会被遮住 如果调整globelzorder 会出现模型的某些部分不显示的问题 我不知道有什么更好的方法解决 只能用camera来做