背景一种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年版
点击“阅读原文”查看精选导航
“点赞“ ”在看”鼓励一下▼
上一篇:天天快讯:企业预期改善 德国4月商业景气指数略有上升
下一篇:最后一页
X 关闭
- 1、世界最资讯丨截图!长按保存分享!Cocos Creator
- 2、天天快讯:企业预期改善 德国4月商业景气指数略有上升
- 3、国家税务总局:今年一季度累计免征新能源车辆购置税212亿元
- 4、金丝指葫芦的食用方法(金丝指葫芦是一种药用价值很高的中药材)-世界资讯
- 5、大众宝来如何开启蓝牙图解,宝来蓝牙按钮在哪里-全球快资讯
- 6、如何在德克萨斯州种植西番莲藤
- 7、记者:沈阳那边带走的足球人基本上不会有官宣 不用等了
- 8、每日头条!像素种田游戏《太阳港》现已追加中文 Steam特别好评
- 9、致敬中国航天员首飞太空20周年科普活动举办_今日热讯
- 10、世界时讯:山东聊城市交通发展有限公司党委委员、副总经理赵新接受审查调查
-
2023年中国•桂林体育舞蹈公开赛开幕
4月22日,2023年中国•桂林体育舞蹈公开赛暨桂林市第十九届国际标准舞锦标赛在桂林市体育中心举行。来自区
-
上海谊众:上海凯宝拟拟减持不超过3%_实时焦点
【上海谊众:上海凯宝拟拟减持不超过3%】上海谊众公告,上海凯宝拟拟减持不超过3%公司股份
-
焦点速讯:【党建+优质服务】国网扎赉特旗供电公司:“党建+光伏”服务绿色新能源
“经现场检查发现,您家的光伏逆变器跳闸了,已经帮你合上了。现在帮您把发电户号绑定‘网上国网’App,可
-
上海瀚讯2022年净利润8557.91万元 业绩同比下降63.59%
4月23日,上海瀚讯(300762)发布年报,报告期内,公司实现营业收入4 01亿元,同比下降45 07%,实现净利润8
-
环球今亮点!维海德(301318):该股换手率大于8%(04-24)
换手率大于8%说明了该股票当前处于比较活跃的局面,得到市场上资金的关注,如果在股价上涨途中,换手率5%,
-
山西省人民政府办公厅关于进一步加强煤矿安全生产工作的意见 全球速看料
1、各市、县人民政府,省人民政府各委、办、厅、局,各国有重点煤炭集团公司:2、煤矿安全生产事关我省煤炭
-
环球即时看!塔里木油田第一座单井分布式光伏发电项目并网发电
塔里木油田官微消息,2022年12月27日,塔里木油田第一座单井分布式光伏项目——哈得1-13H井分布式光伏项目
-
家门口的“流动超市”上线啦!
米面油、酱油、奶制品、纸巾等琳琅满目的生活用品一字排开……日前,货品丰富的“流动超市”来到了朱泾镇待
-
斯迪克4月24日盘中涨幅达5%
以下是斯迪克在北京时间4月24日10:45分盘口异动快照:4月24日,斯迪克盘中涨幅达5%,截至10点45分,报23 16
-
环球快资讯:关于《溧阳市2023-01号土地征收成片开发方案(征求意见稿)》公开征求意见的通告
关于《溧阳市2023-01号土地征收成片开发方案(征求意见稿)》公开征求意见的通告,关于,江苏省,土地管理法,

