天天新资讯:截图!长按保存分享!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
- 淀粉和生粉的区别_淀粉和生粉的区别是什么
- 绝了绝了!连鸡蛋都是“编钟”造型
- 浪费大家的时间!「绯红女巫」伊丽莎白·奥尔森谈演出动作特技 世界速看料
- 2023上海车展大奖:先锋科技眼花缭乱 海外品牌概念车花落谁家?
- 2023成都欢乐谷水上乐园五一开了没
- 这地将用数字人民币发工资 咋回事详细内容
- 贵州省第九届老年人运动会在安顺开幕
- 斯科特·贝万_关于斯科特·贝万简介
- 头痛粉的副作用与禁忌_头痛粉的副作用
- 经开区驻村工作队:打造干净整洁美丽“新龙门”
- 4月份沪牌拍卖结果公布中标率11%:4月沪牌拍卖结果出炉 全球信息
- 九阴真经2ol_九阴真经2内任务
- 交换书籍,分享知识
- 山西一地积雪19厘米,今天郑州有雨,这波强冷空气何时结束?_环球热文
- 世界热议:观澜街道广培社区基金揭牌
- 环球热门:智能采矿技术_对于智能采矿技术简单介绍
- 兵解之法是什么意思_兵解-世界最资讯
- 拿下保时捷、路虎等新客户,智能驾驶龙头热度爆棚!业绩翻倍增长的低估值股被盯上 全球滚动
- 糖尿病药竟被包装成网红减肥针?首例“司美格鲁肽”假药案被破
- 1win10 系统下载_10片药片中有5片是安慰剂|天天时快讯
- 2河南机电专科学校录取线_河南机电专科学校
- 3「央广时评」激浊扬清 让网络空间更加“清朗”-快讯
- 4丰乐种业:良种良法助春播
- 5资讯:减轻的反义词_便宜的反义词
- 6十二星座大全
- 7全球实时:这球看得揪心亨利、维埃拉在看台上表情凝重
- 8维金斯:追梦&佩顿缺席我们全队都必须去抢板 我正努力找回感觉 全球观天下
- 9柳家营社区“智慧服务平台”让居民生活更便捷
- 10环球观焦点:华为哪些手机是鸿蒙系统?介绍华为鸿蒙手机型号及特点
- 1爱护眼睛保护视力内容_爱护眼睛|世界报道
- 2无抗牛蛙养殖项目引农业部关注!这个超3000亿元的大产业太火爆了_当前短讯
- 3焦点报道:翰墨飘香丹青溢彩 意大利华侨华人笔尖诉乡情寄乡思
- 4每日视讯:Goose GooseDuck鹅鸭杀邮箱验证不了 注册失败的解决办法
- 5最新黄金价格(最新黄yyid)_天天快播
- 6女子还未入职就被总经理骚扰?警方、妇联已介入
- 7金融力量助推西部陆海新通道“加速跑”
- 8智能网联汽车技术概论 彩色版配视频_对于智能网联汽车技术概论 彩色版配视频简单介绍-环球观热点
- 9第三届杭州市民日 系列活动下周四启动
- 10TT:哈姆希望我能起到跟贝弗利一样的作用 不要担心与詹叫板|全球时讯
广告
财经
- 环球速讯:四位成员成功出道 乐华娱乐港股开盘大涨5.631 %
- 直流屏的主要作用 直流屏的作用是什么
- 上海今年首轮土拍519亿收官 :莘庄压轴地块历时7小时花落中华企业|今日热搜
- 【全球播资讯】兰州新区外贸进出口“成绩单”亮眼
- 杂交水稻原理_杂交水稻原理是什么
- 中国黄金:2022年营业收入471.24亿元
- 船舶板块逆势大涨,中船科技涨停-环球热闻
- 英国国家代码44_英国国家代码 今日热门
- 合肥热电集团待遇怎么样-合肥热电集团有限公司工程分公司
- 批量苏州金龙中巴交付萨尔瓦多
- 世界今日讯!走黄渤海文化体验廊道主题采访|一线串起威海90%以上旅游资源 千里山海自驾旅游公路再“出圈”
- 环球热门:鲜花朵朵演员表_该剧讲述了什么故事
- 炬华科技:刘锦泽申请辞去公司副总经理职务
- 中字头午后普遍走弱,中国联通跌近4%,中国海诚、中国铝业、中国电建、中国交建集体走低
- 怎么挑选滑雪板单板(怎么挑选滑雪板单板的好坏)_世界短讯
- 每日时讯!公积金在哪些情况下可以全部提取
- 湘伴|湖南一季度成绩单:这个行业跑疯了_环球通讯
- V观财报|涉减持违规,大港股份原副董事长王刚收警示函
- 商务部:一季度我国企业承接服务外包合同额同比增18.2%
- 广宇集团2022年净利润1.13亿元,同比减少65.35%丨年报