我在场景csd文件里嵌入了一个node类型的csd,并设置了嵌套动画,但我保存重新打开设置就消失了。
我希望在游戏里加载场景时知道美术编辑时设置的动画,并自动播放,现在搞不了了。
你的studio版本多少?
每次都重新吗?
我使用2.2.8从没出现过这个情况,求详情。
我的是2.2.9的
选择的文件Node.csd是会保存的,但下面的两个参数 嵌套动画 类型、名称不会保存
你好,我在Win7上用v2.2.9版本测试没有出现此问题。
请问,你进行了什么特殊的操作吗?
你的系统版本是多少呢?
你好,我是Studio编辑器的测试人员,可不可以给一下QQ或者微信之类的联系方式?谢谢
私信你了,请查收
我知道问题在哪里了
参数数据是保存在父csd的InnerActionFrame里
如果父csd本身没有动画,然后加了一个嵌套动画,那么就不会保存它的参数
也就是如果使用了嵌入动画,要想时嵌入动画的数据得到保存,父csd必须至少有一帧
我觉得如果父csd没有动画(或者并没有制作涉及嵌入动画播放参数的关键帧)的时候应该直接将参数保存在AbstractNodeData 结点下啊
像现在明明设置了,却丢失了,好莫名其妙
别纠结这个了,你就是设置了也不会生效的,解析的时候压根没管这两参数。
if (classname == “ProjectNode”)
{
auto reader = ProjectNodeReader::getInstance();
auto projectNodeOptions = (ProjectNodeOptions*)options->data();
std::string filePath = projectNodeOptions->fileName()->c_str();
CCLOG(“filePath = %s”, filePath.c_str());
cocostudio::timeline::ActionTimeline* action = nullptr;
if (filePath != "" && FileUtils::getInstance()->isFileExist(filePath))
{
node = createNodeWithFlatBuffersFile(filePath, callback);
action = cocostudio::timeline::ActionTimelineCache::getInstance()->createActionWithFlatBuffersFile(filePath);
}
else
{
node = Node::create();
}
reader->setPropsWithFlatBuffers(node, options->data());
if (action)
{
action->setTimeSpeed(projectNodeOptions->innerActionSpeed());
node->runAction(action);
action->gotoFrameAndPause(0); //循环神马的这里压根没管你,最后还是得自己手动播动画
}
}
我不会改代码啊,我现在是自己开发的导出插件在quick 2.2上用
楼主,最后是如何解决的,求告知,我也碰到这个问题…
你看的那块的代码仅仅是加载的代码, 嵌套动画帧是在播放的时候生效的, 具体可查看 CCFrame.h InnerActionFrame类。
楼主说的这个问题请参考一下一下几条规则:
- 子动画的播放仅仅通过嵌套动画帧触发。
- 嵌套的子文件的所有动画的生命周期不超过主动画的生命周期。
- 嵌套的子文件的动画的速率在嵌套式被同步为主动画的速率。