我另外还修改了一点ccengine的东西(为了方便),总共这么几个地方:
1、cc.view.on和off的调用,改成cc.eventManager.addCustomListener
2、UIPackage.loadFont里把rect的set赋值改一下
3、findCamera那句话去掉了(没仔细看里面的内容,去掉跑demo是正常的)
4、getViewportRect把p改一下大小写
5、GGraph.drawCommon函数,把2个-h改成0
6、把2.1的cc.PrivateNode类搬过来,并加到index.js
7、修改一下ccengine,在sprite里面加上setState(就是转调一下SGNode的setState)
另外我写了一个unity的插件,可以把ugui做的导出来,有需要的可以联系我,时间不多,没做完善,但是如果是把unity项目转到fairygui会省很多事,也欢迎在这个基础上完善一下
fairygui的编辑器不能支持粒子效果,这个很坑爹。
插眼mark
这种优化需要引擎底层支持的,UI层做不了什么,比如在U平台我在渲染层设计了这样一个方案http://www.fairygui.com/guide/unity/drawcall.html。在cocos这里,貌似cocos官方的建议就是如果有大量这种情况请使用图片字。
解读为:
FairyGui目前已渗透CocosCreator并梳理出更为优雅的ui分离开发方式。使得用户可以解除对全家桶的依赖关系。
现已加入豪华午餐。免费供应。
如果使用fairygui。就没有必要使用他的编辑器和代码挂载。而如果不使用他的编辑器和代码挂载。就不往下说了。
fairyGUI 还是蛮好用的 如果你懂了 用fairyGUI一样可以挂代码
不是不行,是没有必要。
大多只有prefab有需要挂载。对多个(ui、物理节点、sprite对象)分支挂一堆脚本结果是维护起来是灾难性的。
而挂载了脚本的prefab又不能共用。在拖到另一个prefab的内部时采用的不是引用而是复制。
修改原始的prefab,这些修改不会影响到当时所有使用到他的节点。
对于自定义的属性挂载,要么数组型调整很艰难,查找某种特定的挂载在哪很麻烦。
本身挂载机制没有问题。但对于一个不完整的实现方案。我宁可不用。
u3d也更多使用代码来挂载脚本。对于creator来说。如果不使用手动挂载。那也仅仅只需要一个creator.js就足够了。
fairyGUI的setExtension还是蛮好用的,他跟creator无非就是代码挂和手动挂而已。我反而觉得当你手动挂的多了维护起来成本很高。ui分离 这个很重要。个人使用方式不同吧。
大佬测试结果如何 目测会快很多
希望 谷主 能和 cocos 合作一波
你先要检查加载到资源是否正确,debug或者打印一下大小之类。
复现方法:直接跑FairyGUI-cocoscreator/test官方提供的demo,然后发布到微信小游戏,超过4M的res资源放在服务器。用Android机打开:
用iOS手机打开:
建议谷主更新下demo。小白不知道怎么操作
这个bug只在首次加载界面包的时候会出现,下次再加载就成功了。每个界面包都是首次加载会出bug。
如果资源包放在本地不会有问题,大于4M的时候,把资源包放在服务器就会产生上述bug。
看了一下,确定Android是这行代码解析不了二进制资源。有可能是资源问题,也有可能是解析问题,希望谷主能够看下,以后打算全部项目用fairygui了,非常感谢哈。
pkg.loadPackage(new fgui.ByteBuffer(asset.rawBuffer), url);
早出来就好了…自己写了大量的控件花费了不少时间,感谢谷主
从服务器下载的,你看看mime是否设置好了,下载得到的格式是否是二进制。你完全可以debug去查看rawBuffer是什么啊。你先要保证rawBuffer的内容完全正确的。
请问 谷主 对于ui资源 怎么进行 延迟加载,类似 cocos里prefab 有个 延迟加载的选项



