世界今日讯!截图!长按保存分享!Cocos Creator

2023-04-14 19:57:25 来源:程序员客栈 分享到:

一种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-04-14 19:57:25

刚孵化的金鱼怎么养(刚孵化的金鱼怎么养好)_快报

来源:互联网 2023-04-14 18:19:31

焦点信息:一周为民办事丨长沙县:小区停车难 街道实地调研解难题

来源:红网 2023-04-14 17:46:35

环球看点!老字号 新品牌!消博会上百余款特色产品亮相 擦亮金招牌

来源:央视新闻客户端 2023-04-14 16:39:06

环球今日报丨当日快讯:云南玉溪森林火灾:系当地村民违规野外用火所致,部分地段已扑灭

来源:互联网 2023-04-14 16:10:21

送女老师礼物

来源:太平洋礼物网 2023-04-14 15:18:48

环球观察:宝钢股份新的150吨电炉预计在2024年年中投产

来源:达涅利零距离 2023-04-14 15:10:09

长沙先导控股、济南能源集团、北京建工的债务融资工具状态已更新为“完成注册”

来源:智通财经网 2023-04-14 14:14:35

花落谁家!A股的冲关龙头重任,只能是它们!

来源:四川钱坤投资 2023-04-14 12:56:56

天天微头条丨骁龙695安兔兔跑分多少

来源:系统乐园 2023-04-14 11:59:59

求助xlsx和xls有什么区别?

来源:城市网 2023-04-14 11:07:44

当前热文:东疆船舶海工租赁业快速发展形成聚集效应 闯出多个全国“首单”和“第一”

来源:天津日报 2023-04-14 10:43:14

当前看点!连续调整之后会选择方向

来源:中财网 2023-04-14 09:50:30

巴奴“天价土豆”换名后重新上架:多地售价18元一份 北京上海22元

来源:中财网 2023-04-14 09:11:14

卷入*ST美尚信披违规、欺诈发行案 广发证券再入危局

来源:凤凰网 2023-04-14 08:00:58

瓜帅执教生涯欧冠主场面对德甲球队12战全胜,8场至少净胜3球_世界视点

来源:二怪 2023-04-14 06:08:21

北京石景山区喜隆多商场的火灾观后感 喜隆多火灾观后感_天天微速讯

来源:城市网 2023-04-14 04:19:14

徐汇邮编号多少_徐汇邮编 全球热讯

来源:互联网 2023-04-13 23:38:04

沙尘、花粉、杨柳絮齐上阵!先别慌,防护重点看这里

来源:央视一套 2023-04-13 22:03:22

阿里P9下岗再就业

来源:程序员客栈 2023-04-13 20:53:12

科伦药业(002422):预计公司与石四药集团2023年度日常关联交易情况的公告-当前热议

来源:自选股智能写手 2023-04-13 19:21:55

畅享春日运动乐趣 佳明智能运动手表见证你的每一次跃动

来源:大京网 2023-04-13 18:18:21

甘州区北街街道召开物业管理整治工作安排部署会议 今日聚焦

来源:甘州区融媒体中心 2023-04-13 17:30:25

84个学生节目入选!第四届“梨花杯”全国青少年戏曲教育教学成果展演将拉开帷幕_全球速看

来源:人民网 2023-04-13 16:50:35

世界简讯:石墨烯呈现创纪录高磁阻

来源:科技日报 2023-04-13 15:51:35

番茄酱的家庭做法 番茄酱用什么番茄做|环球时讯

来源:5号网 2023-04-13 15:10:17

【环球速看料】组织考生在驾考中作弊 两人被提起公诉

来源:正义网 2023-04-13 14:10:21

汽车票可以窗口改签吗_汽车票可以退票吗

来源:元宇宙网 2023-04-13 12:50:22

今日最新!造型各异 特色鲜明 甘肃文创产品消博会上受热捧

来源:甘肃日报 2023-04-13 11:51:05

热消息:这就叫觉悟!费迪南德要求更换布景,以避免踩到皇马队徽

来源:直播吧 2023-04-13 11:14:15

Copyright   2015-2022 南极知识产权网 版权所有  备案号:粤ICP备2022077823号-13   联系邮箱: 317 493 128@qq.com