3.3版本加载粒子,plist中如果没有指定textureImageData和textureFileName,create出错,setTexture无作用

使用的是FantasyWarrior3D里的资源,人物显示正常,但在加载粒子时出了点问题
local map = cc.FileUtils:getInstance():getValueMapFromFile(“FX/magic.plist”)
local magic = cc.ParticleSystemQuad:create(map)
这样会报
cc.ParticleSystemQuad:create argument #2 is ‘table’; ‘string’ expected.

local magic = cc.ParticleSystemQuad:create(“FX/magic.plist”)
直接这样使用时报这样的错误
ASSERT FAILED ON LUA EXECUTE:


查了cpp的源码里有一句
std::string textureData = dictionary.at(“textureImageData”).asString();
CCASSERT(!textureData.empty(), “”);

怀疑是textureImageData属性的问题,把plist里的textureImageData那段删除就正常的。希望官方能处理下

官方放春节了,3D支持太薄弱,今年 不乐观啊

嗯。不好意思。这是当时写plist的问题,我后来在我的本地改了。但是由于同步引擎的关系,没有push上去。

只要把plist文件的textureImageData这个项删除即可,这也是目前粒子系统的一个坑吧。

好吧,这么久都没人提BUG,看来还真没多少人用到这功能

这是引擎里默认把plist当成纹理文件来读了,改改就完了

不是没人提bug,是因为当时改了引擎,所以在FantasyWarrior3D项目上面不会有问题。

后来要求游戏要从引擎中剥离出来,才重新改的。

所以如果直接拿FantasyWarrior3D游戏的plist在自己下载的引擎上跑会出错。

3.4beta0这个项目会完全从Cocos2d-x剥离出来运行。