您当前的位置: 首页 > 业界动态 > > 内容页

截图!长按保存分享!Cocos Creator

来源:程序员客栈 2023-04-04 09:02:55

一种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年版

点击“阅读原文”查看精选导航

“点赞“ ”在看”鼓励一下▼

上一篇 下一篇
x
推荐阅读 更多
截图!长按保存分享!Cocos Creator

一种3D截图方案背景参考TRUESPACEwithCocos技术分享[1]中的动态生成海报的介绍,以及作者的支持。实现一个长按保存分享截图的方案。效果

程序员客栈 2023-04-04
天天快看:今天申城仍有大风大雨!

昨夜今晨全市普降中雨今天维持阴雨天气并可能伴有雷电活动风力不亚于昨天吹南到东南风陆地风力6级阵风7-8级沿江沿海地区风力

新民晚报 2023-04-04
环球热资讯!中交地产确定“23中交02”票面利率为4.27% 规模7亿元

4月3日,中交地产股份有限公司披露2023年面向专业投资者公开发行公司债券(第二期)票面利率。本期债券分为两个品种,其中品种一“23中交02”

观点网 2023-04-04
热点在线丨澄的多音字组词3个_澄的多音字组词

1、Chenchen2、如:清水(清澈平静没有波浪的水);澄江(明澈之河);澄泉(清泉);清酒(清酒、淡酒)。3、Chengding4、清水;清除淤泥;移除沙子

互联网 2023-04-04
天天视讯!信阳市气象台发布雷暴大风黄色预警

河南广电·大象新闻记者吴彦飞通讯员周程新信阳市气象台2023年4月2日21时55分发布雷暴大风黄色预警信号:预计未

大象联播 2023-04-03
每日动态!宏远最新消息!广体确认第三外援,杜锋罕见批评马尚,阿日将回归

宏远最新消息!广体确认第三外援,杜锋罕见批评马尚,阿日将回归,杜锋,马尚,宏远,阿日,易建联,曾繁日,中国体育联赛,中国篮球联赛,奥林匹克运动会

多特体育说 2023-04-03
资讯推荐:嫌疑人竟是“枕边人” 上海铁警48小时破获入室盗窃案

嫌疑人竟是“枕边人”上海铁警48小时破获入室盗窃案

新民晚报 2023-04-03
企业服务云 |【一带一路】共建“一带一路”,2023年上海准备这样干!

今年是共建“一带一路”倡议提出十周年,为了实现更高合作水平、更高投入效益、更高供给质量、更高发展韧性,精心绘好共建“一带

百度新闻 2023-04-03
当前短讯!CTR HOLDINGS(01416.HK):冯美玲获委任为秘书及授权代表等职

格隆汇4月3日丨CTRHOLDINGS公告,梁皑欣已提呈辞任公司公司秘书、香港联合交易所有限公司证券上市规则第3 05条项下授权代表、根据上市规则于香

格隆汇 2023-04-03
从五亿净利到千万亏损,友谊时光被打回原形?

友谊时光被打回原形?

智嗨网 2023-04-03