背景一种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年版
点击“阅读原文”查看精选导航
“点赞“ ”在看”鼓励一下▼
一种3D截图方案背景参考TRUESPACEwithCocos技术分享[1]中的动态生成海报的介绍,以及作者的支持。实现一个
沙尘已至陕南!雨雪马上就到!网友:西安是懂“和稀泥”的…
作者|路遥编辑|秀松通用3D机器视觉平台的故事很性感,但在产品与需求之间,还隔着一层厚障壁。机器视觉是工
新浪科技讯北京时间4月21日早间消息,据报道,对于马斯克个人来说,过去24小时并不轻松。特斯拉公布了让人
据国家突发事件预警信息发布网:苍溪县气象台2023年04月21日08时31分发布大风蓝色预警信号:预计未来24小时
3岁男童从27楼坠落身亡,物业:当时家里只有怀孕的伯母,窗户未安装护栏,其父母已赶回处理
截至2023年4月21日收盘,森源电气(002358)报收于4 74元,上涨0 85%,换手率1 42%,成交量13 14万手,成交额6325 98万元。
4月21日电,截至发稿,中铝国际(02068 HK)涨5 38%、中国中铁(00390 HK)涨3 95%、中国铁建(0
(记者党田野)“西安地处中国地理版图的几何中心和中部、西部两大经济区域的结合部,具有发展交通物流业...
熊征宇调研督办“四个重大”推进落实情况
非银金融行业:权益基金认购、申购双回暖,份额保持增长-公募基金月度数据点评(2023年2月)。新闻资讯提
4月7日,烟台交警二大队接到指令,一辆白色现代SUV载有一名早产孕妇,正由龙口赶往烟台毓璜顶医院急救。由
中国徐州网-徐州日报讯(记者王正喜)4月13日,徐工机械—宝山钢铁股份有限公司联合实验室签约揭牌。双...
1、分两大类,机动车辆商业保险(商业险)和机动车辆交通事故责任强制保险(交强险)。2、商业险又分两个大
话题“男子骑摩托车险被风筝线割喉”登上微博热搜榜。消防部门提醒,放风筝要选择空旷人少的场地,风筝...
1、宋雪娟,著名电影演员,1935年生。2、辽宁开原人。本文到此分享完毕,希望对大家有所帮助。
1、百度各贴吧发表图片的方式都是一样的。2、首先,您要选择一张有链接地址的图片,鼠标右键点击图片,在弹
近日,红网“青椒计划”已完成2023年3月份统计分析工作。红网理论评论中心按程序初选作品,特邀西南大学...
在欧联杯1 4决赛,罗马两回合总比分4-2战胜费耶诺德,成功晋级四强。而罗马门将帕特里西奥并列成为欧联杯出
艺人周汤豪的感情生活一直备受关注,像是他日前曾与女团HUR的C Holly爆出绯闻,不过他第一时间就澄清是单身
但目前看来西甲官方也愿意为梅西的回归为球王破例了,西甲官方愿意让巴萨签约回来梅西而对巴萨的财务状况审
综合《菲律宾星报》、《联合早报》19日报道,菲律宾外交部长马纳罗当天在议会上表示,菲律宾不会允许美国在
很多理财用户都清楚一个道理:大多数理财产品都是风险与收益并存的。但知道道理是一回事,能够理解透彻又是另
1、此传记里的三人,虽然一个是德国的音乐家,一个是意大利的雕塑家、画家、诗人,另一个是俄国的作家,各
印度首家苹果零售店开业,库克出席开业仪式,孟买,零售点,苹果公司,财务会计,财务报表,印度市场,蒂姆·库...
广告
X 关闭
广告
X 关闭