如题,搞了个插件,把unity粒子特效转成cocoscreator。
起因:不用说大家也知道,工作需要,已有大量unity粒子特效,想要直接转成ccc,相信很多c友也会遇到这种情况。
经历:
1cocos store上已有一个unity粒子转cocos的插件。我去用了,有报错。作者也没有继续更新了。
2看插件源码,艹!混淆过的!
3排查报错原因,原插件的指定版本是3.0.1,然而这个版本也有报错,研究一整天后发现问题出在bursts这个dio东西,这是个数组,怎么倒腾也找不到设置这种数组类型属性的方法。
4自己搞插件,灵光一闪,消息列表中有一个消息的作用是执行指定脚本方法。于是搞个插件,解析unity预制体信息,然后把信息传过去给ts脚本。在脚本里面创建节点,添加particle组件,设置各个属性。
食用方式:
插件本身其实只有一点点代码,处理逻辑都在我写的U3dParticel2Cocos脚本里。
安装插件后,还需要复制一份这个脚本放到项目中。
unity预制体需要文本格式,Editor->ProjectSettings->Editor->Mode 设置为ForceText
将所有需要转换的unity粒子预制体放到一个文件夹中
在cocoscreator中打开插件面板,选择文件夹,点击一下convert即可。
插件会在当前场景中创建一个root节点,并为这个节点添加U3dParticle2Cocos组件。
然后插件会自动解析预制体信息,传给组件,调用组件的doConvert函数
组件会根据预制体信息,创建各个预制体节点。
链接: https://pan.baidu.com/s/15eC99SMYkNapiIw1aCPWJQ 提取码: 39wi 复制这段内容后打开百度网盘手机App,操作更方便哦
–来自百度网盘超级会员v7的分享
一些问题:
1材质之类的参数需要手动再拖一遍,如果unity中使用了某个特殊的shader,需要自己在cocos中写一遍,插件里可没有shader转换功能。
2某些参数unity和cocos不同步,unity里有的,cocos里可能没有,特殊问题需要特殊处理,脚本中我写了一些警告提示,可以为部分这种情况提供一点线索。
3我用unity版本是2020.1.0f1,cocosCreator是目前最新的3.7。稍微测试了几个粒子。可能还有一些错误没有排查到,有问题可以反馈给我。