背景一种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年版
点击“阅读原文”查看精选导航
“点赞“ ”在看”鼓励一下▼
关键词:
-
吉林抚松县万良镇打造三季有花、四季常绿美丽乡村新环境
五月迎初夏,绿美意正浓。为建设“乡风民风好起来、人居环境美起来、群众生活富起来”的人参特色产业小镇,
-
咽鼓管功能障碍的症状_咽鼓管发炎有什么症状
1、咽鼓管炎症的主要症状是耳朵感到浮肿、闷热,并伴有听力下降,甚至可能引起中耳炎和耳痛。咽鼓管的炎症
-
子宫肌瘤“偏爱”这5种女性,若你也在其中,需尽早预防_播报
如果能去详细了解子宫肌瘤诱发原因,正确做好预防措施,疾病远离,女性健康才有保证。作为生殖器常见良性肿
-
交通再添新干线 渝南将建新水库 中国基础设施建设稳步推进 全球即时
昨天(5月20日),随着55031次检测列车从福州南站驶出,福厦高铁进入联调联试阶段。
-
【速看料】爱心人士看望石狮仁爱学校学生
爱心人士看望石狮仁爱学校学生
-
天天新动态:两位院士领衔鉴定 800m级水头抽水蓄能关键技术国际领先
两位院士领衔鉴定800m级水头抽水蓄能关键技术国际领先5月19日下午,中国大坝工程学会在北京组织召开了《800
-
中国公布黄金储备,外媒却估算有3万吨:仅一步就能废掉美元霸权
中国公布黄金储备,外媒却估算有3万吨:仅一步就能废掉美元霸权,中国,大国,美元,金本位,黄金储备,外汇储备
-
即时:这款会跳舞、能陪伴、教知识的人形机器人萌翻世界智能大会
中国青年网天津5月20日电(记者李华锡)5月19日,在第七届世界智能大会智能科技展的河北展区,会跳舞、能陪
-
两市融资余额减少43.13亿元 播资讯
App5月22日消息,截至5月19日,上交所融资余额报7989 91亿元,较前一交易日减少13 42亿元;深交所融资余额
-
当前时讯:您好,上海房屋买卖,中介收费,有没有规定,卖方收1%,买家收2%。
您好,上海房屋买卖,中介收费,有没有规定,卖方收1%,买家收2%。
-
计算机科学与技术就业前景女生_计算机科学与技术就业前景 全球快报
1、就业现状网络工程方向就业前景良好,学生毕业后可以到国内外大型电信服务商、大型通信设备制造企业进行技
-
在2023年,1669元入手12+256GB版的OPPOK10,是否值得?
OPPOK10定价仅为1999元起,却全球首发了天玑8000-Max旗舰处理器,性能强大而且功耗还低,甚至这款手机的其
-
仙游县气象台发布雷电黄色预警信号【2023-05-22】_即时看
仙游县气象台2023年05月22日04时09分发布雷电黄色预警信号:预计未来6小时内我县部分乡镇有雷电活动,局地
-
环球热头条丨贾德松暴击贝里奇的背后,裁判也该为能力不足而背锅
新赛季中超最重磅罚单或许即将出现。5月20日,在第8轮天津津门虎3比3战平山东泰山一战的最后时刻,场上出现
-
争当高质量发展"排头兵" ——湖南“五好”园区创建综述
新湖南,主流新媒体,移动新门户。-分享自@新湖南
-
世界观焦点:财通证券前4月实现净利润6.09亿元 同比增长550.77%
5月21日晚间,财通证券发布了1月份-4月份主要经营数据显示,经初步核算,2023年1月份-4月份,财通证券实现
-
世界卫生大会中国代表团:中国积极参与国际卫生合作 共建人类卫生健康共同体_实时
出席世界卫生大会的中国代表团20日在日内瓦举办媒体吹风会。国家卫生健康委副主任曹雪涛、中国常驻联合国日
-
共2.3亿!!吉安2宗住宅用地成交!其中市区...
共2 3亿!!吉安2宗住宅用地成交!其中市区 ,配建,楼面价,安置房,吉安市,住宅用地
-
精选!陕西提级应急响应!汉中发布暴雨大风预警
点击上方 "汉中视听 " 关注我们吧 从20日晚上开始我省多地出现降水天气部分地方伴有雷电大风宝鸡商洛出
-
西决:湖人0-3落后,联盟将介入调查掘金,罚球差距再引争议-世界微资讯
西决:湖人0-3落后,联盟将介入调查掘金,罚球差距再引争议,湖人,马龙,西决,美国篮球,丹佛掘金队,安东尼·