cocos2dx lua关于3d精灵旋转问题

创建一个相机到layer上,然后再添加一个动画层animLayer,将资源都加到改动画层上,然后使用RotateBy旋转,怎么动画层上的资源就看不见了呢。一定要将动画层animLayer:setRotation3D(cc.vec3(0, 0, 0))才行。

local size = cc.Director:getInstance():getWinSize()
local camera = cc.Camera:createPerspective(60, size.width/size.height, 1, 1000)
camera:setPosition3D(cc.vec3(0, 30, -29))
camera:lookAt(cc.vec3(0, 0, 0))
camera:setCameraFlag(cc.CameraFlag.USER1)
layer:addChild(camera)

local animLayer = cc.Layer:create()
animLayer:setPosition3D(cc.vec3(0, 0, 0))
animLayer:setCameraMask(cc.CameraFlag.USER1)
layer:addChild(animLayer)

for i = 1, 24 do
local angle = 15 * (i - 1)
local sprite1 = cc.Sprite3D:create(“Sprite3DTest/boss1.obj”)
sprite1:setScale(0.3)
sprite1:setTexture(“Sprite3DTest/boss.png”)
sprite1:setPosition3D(cc.vec3(19math.sin(math.rad(angle)), 0, -19math.cos(math.rad(angle))))
sprite1:setRotation3D(cc.vec3(0, 360-angle, 0))
sprite1:setCameraMask(cc.CameraFlag.USER1)
animLayer:addChild(sprite1)
end

然后再点击事件中调用。animaLayer中添加的动画资源都不见了
local action = cc.RotateBy:create(2, { x = 0.0, y = 180.0, z = 0.0})
animLayer:runAction(cc.Sequence:create(action, cc.CallFunc:create(function()
animLayer:runAction(action:reverse())
end)))

怎么才能实现animLayer像转盘一样转动呢


哎,锚点问题