背景一种3D截图方案
参考 TRUE SPACE with Cocos 技术分享[1]中的动态生成海报的介绍,以及作者的支持。实现一个长按保存分享截图的方案。
(相关资料图)
在微信浏览器中预览效果如下
环境Cocos Creator 3.7.1
Web 浏览器
原理原作者讲的非常清楚,只需要按照以下步骤实现即可。
3D相机生成一个RT 赋予给2D精灵
摆上一些二维码等UI
UI相机再生成一张RT
读取RT中的数据,传给 canvas
canvas 生成图片数据传给 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年版
点击“阅读原文”查看精选导航
“点赞“ ”在看”鼓励一下▼
标签:
一种3D截图方案背景参考TRUESPACEwithCocos技术分享[1]中的动态生成海报的介绍,以及作者的支持。实现一...
茶花股份于2023年3月18日披露年报,公司2022年实现营业总收入6 76亿元,同比下降15 4%;实现归母净利...
杭氧股份最新股东户数1 96万户,低于行业平均水平。公司户均持有流通股份4 91万股;户均流通市值185 37万元。
德讯收评下周策略关注互联网、国企改革、证券等板块行情复盘德讯证顾观点:大盘冲高回落短时效应明显大...
1、我敢肯定的是这样开头的电话,要么就是网络电话,要么就是一些诈骗电话。2、我建议你千万不要接这样...
郑州etc办理收费吗?收费。收费标准不一,但都大差不差,实际收费以网点为准。拓展2023郑州市内高速免费...
3月17日人民币兑美元中间价上调97个基点
3月16日,国家电网有限公司陇东—山东±800千伏特高压直流输电工程、玉门抽水蓄能电站开工。陇东—山东...
3月16日,工银战略转型股票A最新单位净值为3 826元,累计净值为3 826元,较前一交易日下跌0 73%。历...
老板没有生育能力来找我帮忙,事后他老婆很满意,说下次还找我,李路,生育,美女,小泽玛利亚
报告网监测数据统计:2019年9月全国铜材产量为175 6万吨,同比增长11 1%;1-9月份累计产量为1429 7万吨
今日,Playstation港服公开PS+二三档3月游戏阵容,其中包括《神秘海域盗贼遗产》《幽灵线东京》等游戏。
我省今起试行“高速公路诚信体系”,逃费后再走ETC,报警提示!
中国教育新闻网讯(记者焦小新)高等教育出版社的“高等数学伴学计划”将设置习题课、同步试卷精讲、期...
一、工伤保险发生交通事故的赔偿标准是怎样的工伤保险发生交通事故的赔偿标准是:如果发生交通事故同时...
近日,满载2160辆新能源汽车的“海螺先锋”号滚装船从宁波舟山港出发驶向比利时。这是舟山港最大一个批...
1、黄色枫叶薛之谦词:薛之谦曲:薛之谦桥过水流深处屋外有一片枫树林战火硝烟弥漫过了今夜我要远行你摘下...
1、1先把准备我的鲜花按照你的需要用丝带扎实(扎丝带的地方上面7:3的比例);拿出皱卷纸量一下花束的长度...
1、铝合金龙骨是在铁皮烤漆龙骨上的改进。2、因为铝经过氧化处理之后不会生锈和脱色,原来的铁皮烤漆龙...
记者15日从重庆市公安局南岸区分局获悉,近日,南岸区警方成功打掉一个以提供贷款实施诈骗的犯罪团伙。...
1、先在指甲表面刷底漆,照灯固化。2、然后刷一层浅色的指甲胶,照灯固化。然后刷一层浅色的指甲胶,让...
互联网在提高人们社会活动质量的同时可能对部分互联网使用者造成伤害。我们要正确认识网络的两面性,用...
1、CEFR,全称“CommonEuropeanFrameworkofReferenceforLanguag
1、看过你的提问不知道你是文化水平低,还是心里阴暗想要达到什么不想上人知道的目的。2、这样的提问真...
1、魔法玄幻类。2、推荐…烟雨江南《亵渎》【狩魔手记】江南【龙族】跳舞《恶魔法则》还有蓝晶[血珊瑚]...
脸书母公司Meta首席执行官马克·扎克伯格周二表示,该公司计划裁员10000人
如果中国2025年发生战争,你也在征召范围内,你会参军上前线吗?,参军,战争,中国,胡子,上前线
2022年9月16日,印第安纳波利斯一起枪击案件现场(资料图)海外网3月14日电据美国印第安纳州电视台WISH-...
融捷股份(002192)(002192):2022年度实现营业收入29 92亿元,同比增加225 05%3月14日,融捷股份披露2022年度业绩快报。公
【景顺长城基金】景顺长城融景瑞利一年持有期混合:4月10日发售,偏股,持有期,融景瑞利,基金公司,公募基...
Copyright @ 2015-2018 华北it网版权所有 备案号:粤ICP备18023326号-8 联系邮箱:855 729 8@qq.com