首先UI中没有文字, 不考虑文字性能优势;
游戏UI基本都渲染最上层, 所以可以用HTML+CSS直接写UI, 请问这种方案, 是否比使用引擎渲染UI效果更好呢? 有懂浏览器底层的说下, 浏览器渲染是否比WEBGL更好?.
首先UI中没有文字, 不考虑文字性能优势;
游戏UI基本都渲染最上层, 所以可以用HTML+CSS直接写UI, 请问这种方案, 是否比使用引擎渲染UI效果更好呢? 有懂浏览器底层的说下, 浏览器渲染是否比WEBGL更好?.
确实有这么干的,construct3,但是这样的只能浏览器,其他平台(小游戏也没有dom哦)无法使用
我确实试过用div盖在canvas上面,但是效率不如canvas,div是依赖浏览器渲染的,canvas是依赖webgl渲染的,然后就是通信问题,引擎和页面没法直接通信,如果用url参数就变成刷新页面了,所以,还得建个服务器,用websoc去后端绕一下
不太明白为啥引擎无法和页面通信?透过window.addEventListener 和 window.dispatchEvent 不行吗?
我个人觉得如果UI以HTML+CSS形式 实现盖在canvas上层性能上是会比放到webgl好, 因为HTML+CSS是基于数据驱动渲染, 只要没有强依赖动效交互事件(如强依赖setInterval不断大幅度修改
canvas是用cocos转的h5,页面是html里引用的jquery,window是浏览器对象,问题是你让浏览器对象去监听的谁,没找到他们之间有可以通信的api
不关事吧, 只要在web平台, 同作用域下没问题呀, 你已导入jquery库, 在cocos脚本是可以用$("#selector")语法去找到对应id的dom对像, window也可以作为中间键你自定义两个消息, ‘dom-to-cc’,‘cc-to-dom’, 分别监听为甚麽不能通信? 还是你説的通信不是我理解的通信, 或者平台不是h5环境运行?
你用cocos怎么读写html的dom,cocos里没这个api啊
这个不关cocos api问题呀, 浏览器运行h5时会注入document语法呀, 这个是h5平台通用的. 难道你还以为fetch,XMLHttpRequest 是cocos自己搞的接口?你自己去看一下引擎源码, 像audio, 那些都是用了document的api。
附带一下cc的downloadScript的h5代码
原来你想这么干啊,那你是不是有办法在cocos里,也引用echarts图表?
了解了一下 ,echart 也是用canvas输出到, 你把echart的canvas
在你cc脚本里, const t = new Texture2D(); t.reset({width:w,height:h}); t.uploadData(canvas,0,0);
这様就可以把另一个canvas的内容做成texture, 如果需要更新内容, 再调一次uploadData。
cc3.8后要改为先把cavas放到ImageAsset, 然后texture.image = imageAsset
游戏引擎的渲染效率更高一些,尤其是有很多动画的时候。 dom的好处是启动渲染快(游戏引擎相关代码本身加载就快1秒了), 如果和游戏引擎结合 一般用于渲染一些loading、骨架什么的
DOM启动快点