截图!长按保存分享!Cocos Creator
背景一种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
- hardest to love歌词翻译_hardest_环球热讯
- 宁夏特色农产品亮相第二届大西北文旅高峰会
- 环球头条:杭州市第二公墓附近的景区有哪些 杭州市第二公墓
- 这座城市真的会待上瘾 世界热闻
- 香港星星地产旗下雨后批入伙纸
- 宿迁社保缴纳基数和比例公布 2023宿迁个人社保缴费标准一览 全球新要闻
- netframework40安装失败一般信任关系失败 netframework40安装失败
- 消博会观察|四组数据看中国消费市场新面貌_每日关注
- 每日消息!德赛西威:4月12日获融资买入2544.22万元,占当日流入资金比例11.39%
- 从“尊刘贬曹”到“尊曹贬刘”,诸葛亮也受牵连,背后原因太残酷
- 天眼是什么东西监控_天眼是什么 焦点速递
- 中评智库:台海变局下的两岸关系 讯息
- 韩星郑彩率死亡后续,曝其被公司逼迫威胁,前辈反抗被送精神病院
- 神谷英树发文怒喷Switch:想把这垃圾砸碎!_全球热文
- 中卓智能2022年净利752.42万 同比扭亏为盈 加强成本管控|资讯推荐
- 工厂开业送什么礼物合适
- 焦点播报:践行知行合一,扎实推进主题教育走深走实
- 配置/底盘升级优化 试驾比亚迪唐DM-i冠军版|全球短讯
- 中信特钢:可转债转股价格调整为23.5元/股
广告
财经
- 《WPSoffice》怎么开启WPS组件 世界热资讯
- 【新要闻】登云股份: 独立董事关于第五届董事会第二十三次会议相关事项的事前认可意见
- 男子持锄头砸妻子追打孩子 警方回应:打人者已被刑拘
- 家具简笔画(家具简笔画大全简单)
- 大名鼎鼎的支奴干直升机,停在我国49年,为什么无法成功仿制呢? 世界观察
- 动态焦点:万顺新材(300057):2022年业绩符合预期 电池箔扩产及新材料驱动成长
- “五一”旅游旺季临近,机构:相关板块已重新具备估值优势
- 三年轻人20万开店日营业额仅79元
- 全球观天下!北京市住建委:多子女家庭购房“一区一策”措施或将在房山区试点
- 租赁业:发挥功能优势护航实体经济-每日信息
- 原单货是什么意思|每日关注
- 国海证券汪鑫:量化投资如何保持进化能力
- 树木倾倒砸毁路边车,法院:树木所有人及村委会侵权
- 消逝的光芒2金色武器如何获得 消逝的光芒2金色武器如何获得视频
- 普冉股份:发布超低电压超低功耗新一代SPI NOR Flash系列新产品-焦点速讯
- 方大特钢:拟7.95亿元收购方大国贸100%股权-环球新动态
- 黄河流域九省(区)首届农民篮球邀请赛将于4月27日开赛
- 陇南师范高等专科学校位居2023年校友会中国师范类高职院校第3名
- 当前速讯:橱窗内外
- 特斯拉首个V4超级充电站现已向所有电动汽车开放 天天快讯