截图!长按保存分享!Cocos Creator-热门看点
背景一种3D截图方案
(资料图片)
参考 TRUE SPACE with Cocos 技术分享[1]中的动态生成海报的介绍,以及作者的支持。实现一个长按保存分享截图的方案。
效果在微信浏览器中预览效果如下
环境Cocos Creator 3.7.1Web 浏览器原理原作者讲的非常清楚,只需要按照以下步骤实现即可。
3D相机生成一个RT 赋予给2D精灵摆上一些二维码等UIUI相机再生成一张RT读取RT中的数据,传给 canvascanvas 生成图片数据传给 Image适配Image对象大小位置视频录了一段操作视频[2]供大家参考。
代码这段代码的截图功能是按照高度适配的方式写的,如有其他需求,可自行修改相关逻辑。仅供大家参考学习。
import{_decorator,Component,Node,Camera,RenderTexture,view,UITransform,log,game,screen,NodeEventType}from"cc";const{ccclass,property}=_decorator;@ccclass("CaptureImage")exportclassCaptureImageextendsComponent{@property(Camera)copyCamera:Camera=null!;@property(Node)targetNode:Node=null!;@property(Node)captureBtn:Node=null!;@property(Node)closeBtn:Node=null!;rt:RenderTextureprivate_image:HTMLImageElement_canvas:HTMLCanvasElement=null!;_buffer:ArrayBufferView=null!;start(){log("欢迎关注微信公众号【白玉无冰】https://mp.weixin.qq.com/s/4WwCjWBtZNnONh8hZ7JVDA")this.rt=newRenderTexture();this.rt.reset({width:view.getVisibleSize().width,height:view.getVisibleSize().height,})this.copyCamera.targetTexture=this.rt;this.captureBtn.active=true;this.closeBtn.active=false;this.captureBtn.on(NodeEventType.TOUCH_END,this.copyRenderTex,this)this.closeBtn.on(NodeEventType.TOUCH_END,this.clearCapture,this)}privatecopyRenderTex(){constwidth=this.targetNode.getComponent(UITransform).width;constheight=this.targetNode.getComponent(UITransform).height;constanchorPoint=this.targetNode.getComponent(UITransform).anchorPoint;constworldPos=this.targetNode.getWorldPosition();this._buffer=this.rt.readPixels(Math.round(worldPos.x-width*anchorPoint.x),Math.round(worldPos.y-height*anchorPoint.y),width,height);if(!this._canvas){this._canvas=document.createElement("canvas");this._canvas.width=width;this._canvas.height=height;}else{letctx=this._canvas.getContext("2d");ctx.clearRect(0,0,this._canvas.width,this._canvas.height);}letctx=this._canvas.getContext("2d")!;letrowBytes=width*4;for(letrow=0;row其他 最近写文偏笔记的形式,主要是记录一下代码,下次要用的时候再翻出来。希望对大家有所帮助。
参考资料[1]
TRUE SPACE with Cocos 技术分享:https://forum.cocos.org/t/topic/146459
[2]视频:https://www.bilibili.com/video/BV1w84y1N7XQ
往期精彩:
3DUI Cocos Creator
三渲二 Cocos Creator
零代码实现面片效果(UV滚动,帧动画) Cocos Creator
游戏开发资料合集,2022年版
点击“阅读原文”查看精选导航
“点赞“ ”在看”鼓励一下▼
关键词:
责任编辑:宋璟
-
截图!长按保存分享!Cocos Creator-热门看点
-
百家云2023财年半年报:营收4090万美元,同比增长32.2%
-
中兴通讯获“2022境外可持续基础设施项目”称号,全球范围内贯彻可持续发展理念
-
每日快看:FRM是什么证书?难考吗?
-
世界热资讯!上善若水厚德载物对联 上善若水厚德载物是什么意思
-
关注:2023中国礼品行业发展现状及趋势分析
-
天津举行学校传统文化传承培训 教学搬到农村田野 美育融入身边课堂
-
第044期双色球晒票,任何值得拥有的都是值得等待的
-
祝福长辈生日快乐的话-天天亮点
-
热资讯!一季度我国吸收外资同比增长4.9%
-
东航首度在大兴机场开通洲际定期客运航班|今日热搜
-
速读:5G基站超264万个 我国数字化基础不断夯实
-
天天简讯:别太铁!浓眉14中4刷生涯新低 詹姆斯八村垒合砍48分难阻失利
-
即时:公示“色狼”真实姓名和处罚结果侵犯隐私?杭州警方回应:合规
-
热文:预计股东4月“出货量”将达840亿,一大波减持正在向这两个板块赶来
-
社区打造再就业创业示范点
-
本年度首次日食登场 中午12点半记得看!
-
2023年上海医保缴费时间到几号?上海城乡居民医保多少钱一年?
-
天天热门:“狂飙”的救命钱 轻松筹平台道歉 我们仍有八个疑问
-
天天最新:蒸米饭放多少水 电饭煲蒸米饭放多少水
-
全球微资讯!一眼百年!济南珍稀树种流苏开花,专家:花期短,想观赏趁现在
-
分公司与子公司的区别及各自优势_请问分公司和子公司有什么区别_每日讯息
-
货车侧翻司机被困驾驶室 消防橙“救”在身边|当前时讯
-
【全球时快讯】当日快讯:千方科技:一季度归母净利1.58亿元,同比扭亏
-
世界关注:内地民谣女歌手排名-民谣歌手排名
-
异地生产如何申请生育险报销及生育津贴申领?
-
【当前热闻】周大福铂金多少钱一克(2023年04月20日)参考价格
-
天天资讯:嘉立创eda如何自动布线?
-
许家印近日召开恒大足球管理会议
-
咸阳住房公积金查询个人账户_咸阳住房公积金查询
-
弃贝林后利物浦陷入中场尴尬 几大备胎同时说NO!_热门看点
-
【世界热闻】车辆落锁婴儿被困 民警60秒紧急营救
-
冒险岛内在能力选择_冒险岛内在能力
-
全球观天下!雍正皇后生存录 棠梨雪_雍正皇后生存录
-
中国星辰丨从无到有,中国载人航天如何大胆跨越? 焦点热门