截图!长按保存分享!Cocos Creator 头条
背景一种3D截图方案
参考 TRUE SPACE with Cocos 技术分享[1]中的动态生成海报的介绍,以及作者的支持。实现一个长按保存分享截图的方案。
效果在微信浏览器中预览效果如下
(资料图)
环境Cocos Creator 3.7.1
Web 浏览器
原理原作者讲的非常清楚,只需要按照以下步骤实现即可。
3D相机生成一个RT 赋予给2D精灵
摆上一些二维码等UI
UI相机再生成一张RT
读取RT中的数据,传给 canvas
canvas 生成图片数据传给 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-03-30
-
环球消息!龙光集团:2022年收入为人民币416.2亿元
中国网地产 2023-03-30
-
聚焦:外套+裙子,这才是冬天最时髦的穿法!
沫沫de旅行 2023-03-30
-
板胡独奏曲
元宇宙网 2023-03-30
-
全球快资讯:君实生物(01877.HK)发布2022年业绩 归母净亏损约23.88亿元 同比扩大约2.31倍
证券之星 2023-03-30
-
打破“3公里”边界,盒马一键覆盖全国 全球视点
时代数据 2023-03-30
-
维海德跌4.4% 去年上市即巅峰超募5.5亿方正证券保荐
中国经济网 2023-03-30
-
产假工资和生育津贴差额怎么计算?产假工资发放标准2023
律法网 2023-03-30
-
每日热闻!财报声浪丨股东“护身” 绿城中国否认明股实债
央广网 2023-03-30
-
天天关注:湖北五峰:“离岸智库”助推经济高质量发展
经济日报新闻客户端 2023-03-30
-
截图!长按保存分享!Cocos Creator 头条
程序员客栈 2023-03-30
-
环球消息!龙光集团:2022年收入为人民币416.2亿元
中国网地产 2023-03-30
-
聚焦:外套+裙子,这才是冬天最时髦的穿法!
沫沫de旅行 2023-03-30
-
板胡独奏曲
元宇宙网 2023-03-30
-
全球快资讯:君实生物(01877.HK)发布2022年业绩 归母净亏损约23.88亿元 同比扩大约2.31倍
证券之星 2023-03-30
-
打破“3公里”边界,盒马一键覆盖全国 全球视点
时代数据 2023-03-30
-
维海德跌4.4% 去年上市即巅峰超募5.5亿方正证券保荐
中国经济网 2023-03-30
-
产假工资和生育津贴差额怎么计算?产假工资发放标准2023
律法网 2023-03-30
-
每日热闻!财报声浪丨股东“护身” 绿城中国否认明股实债
央广网 2023-03-30
-
天天关注:湖北五峰:“离岸智库”助推经济高质量发展
经济日报新闻客户端 2023-03-30
-
古诗《早春》呈水部张十八员外朗诵韩愈
壹壹高考网 2023-03-30
-
作文素材之哲理故事:通往梦想的路,一直都在相关作文 哲理故事-每日快报
抄写作文网 2023-03-30
-
弟子规拼音版可打印(弟子规拼音)|每日快报
车百科 2023-03-30
-
张尧浠:美股及美元上扬走强、黄金短期面临回调风险_世界今日报
分析师张尧浠 2023-03-30
-
热点城市聚焦:北京千万豪宅,为何越贵卖得越好?
安居客X博士 2023-03-30
-
每日快报!蒙牛公布2022年业绩:奶粉和乳饮料业务下滑 毛利率下降
DoNews快讯 2023-03-30
-
每日报道:效能办是什么部门管_效能办是什么部门
科学教育网 2023-03-30
-
抚州学校在哪里放假-聚看点
壹壹高考网 2023-03-30
-
华润万象生活(01209.HK):3月29日南向资金减持47.44万股
证券之星 2023-03-30
-
长歌行电视剧演员表_电视剧长歌行原著小说
互联网 2023-03-30
-
上门换新卡 暖心服务获点赞
中国县域经济报 2023-03-29
-
每日快看:珠江啤酒2022年净利5.98亿同比下滑2.11% 董事长王志斌薪酬127.98万
挖贝网 2023-03-29
-
环球微资讯!引领个人PC新风尚 “定番”款笔记本电脑VAIO F14·F16在日本上市
中关村在线 2023-03-29
-
一拳超人:琦玉老师竟然时刻处于贤者模式,太可怕了
乔治看娱乐 2023-03-29
-
动态焦点:反诈宣传进社区 安全防范入人心
荆楚网 (湖北日报网) 2023-03-29
-
郎君不如意演员表_如意演员表
互联网 2023-03-29
-
全球播报:steam注册账号无法验证邮箱地址 注册电子邮件地址无效解决方法
哔哩哔哩 2023-03-29
-
2023黄山市花山世界主题游门票免费预约指南(附入口)
本地宝 2023-03-29
-
天天视点!丁酮是什么用处_丁酮是什么
互联网 2023-03-29
-
韦德笑了!布朗尼扣篮大赛失手 被妹妹打9分詹皇不同意
网易体育 2023-03-29