觀焦點(diǎn):截圖!長(zhǎng)按保存分享!Cocos Creator
2023-04-22 14:03:53 來(lái)源:程序員客棧
背景一種3D截圖方案
(資料圖)
參考 TRUE SPACE with Cocos 技術(shù)分享[1]中的動(dòng)態(tài)生成海報(bào)的介紹,以及作者的支持。實(shí)現(xiàn)一個(gè)長(zhǎng)按保存分享截圖的方案。
效果在微信瀏覽器中預(yù)覽效果如下
環(huán)境Cocos Creator 3.7.1Web 瀏覽器原理原作者講的非常清楚,只需要按照以下步驟實(shí)現(xiàn)即可。
3D相機(jī)生成一個(gè)RT 賦予給2D精靈擺上一些二維碼等UIUI相機(jī)再生成一張RT讀取RT中的數(shù)據(jù),傳給 canvascanvas 生成圖片數(shù)據(jù)傳給 Image適配Image對(duì)象大小位置視頻錄了一段操作視頻[2]供大家參考。
代碼這段代碼的截圖功能是按照高度適配的方式寫的,如有其他需求,可自行修改相關(guān)邏輯。僅供大家參考學(xué)習(xí)。
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("歡迎關(guān)注微信公眾號(hào)【白玉無(wú)冰】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其他 最近寫文偏筆記的形式,主要是記錄一下代碼,下次要用的時(shí)候再翻出來(lái)。希望對(duì)大家有所幫助。
參考資料[1]
TRUE SPACE with Cocos 技術(shù)分享:https://forum.cocos.org/t/topic/146459
[2]視頻:https://www.bilibili.com/video/BV1w84y1N7XQ
往期精彩:
3DUI Cocos Creator
三渲二 Cocos Creator
零代碼實(shí)現(xiàn)面片效果(UV滾動(dòng),幀動(dòng)畫) Cocos Creator
游戲開(kāi)發(fā)資料合集,2022年版
點(diǎn)擊“閱讀原文”查看精選導(dǎo)航
“點(diǎn)贊“ ”在看”鼓勵(lì)一下▼
關(guān)鍵詞:
相關(guān)閱讀
參與評(píng)論
- 觀焦點(diǎn):截圖!長(zhǎng)按保存分享!Cocos Creator2023-04-22
- 初夏的味道,都藏在里面啦?。?/a>2023-04-22
- 涉縣結(jié)乳腺癌醫(yī)院排名|天天訊息2023-04-22
- 劉歡岳父母精神煥發(fā)氣質(zhì)優(yōu)雅,女兒五官不像2023-04-22
- 韓國(guó)歌手RAVI被KBS電視臺(tái)下達(dá)禁演令 曾體2023-04-22
- 天天觀天下!艦長(zhǎng)向識(shí)寶求婚了2023-04-22
- 天天簡(jiǎn)訊:一季度徐州CPI運(yùn)行在合理區(qū)間2023-04-22
- 當(dāng)前看點(diǎn)!海報(bào)丨世界地球日,他們用好評(píng)“2023-04-22
- 自然資源部:我國(guó)全面完成生態(tài)保護(hù)紅線劃定2023-04-22
- 每日快播:華昌達(dá)04月21日被深股通減持112.2023-04-22
- 告別高價(jià)爆滿的“躺賺”階段,京郊民宿發(fā)展2023-04-22
- 俄羅斯聯(lián)邦儲(chǔ)蓄銀行首席執(zhí)行官:非居民在聯(lián)2023-04-22
- ?盤活土地資源 探索“區(qū)域黨建聯(lián)合”發(fā)展2023-04-22
- 環(huán)球今日?qǐng)?bào)丨上演“史詩(shī)級(jí)災(zāi)難公關(guān)”:寶馬2023-04-22
- 深圳新星:4月21日融資買入102.56萬(wàn)元,融2023-04-22
- 全球訊息:潮汕資本教父隕落!*ST宜康鎖定2023-04-22
- 5項(xiàng)品牌課程簽約入駐 吳江首個(gè)新時(shí)代文明2023-04-22
- 當(dāng)前播報(bào):脾陰虛有什么癥狀?2023-04-22
- 東坡耕讀傳家風(fēng) 家校共育促成才2023-04-22
- 女子吐槽軟臥車廂分配3男1女,12306回應(yīng)引2023-04-22
- 環(huán)球熱議:國(guó)資委:全面推進(jìn)國(guó)資央企云體系2023-04-22
- 當(dāng)前熱門:微芯生物(688321)2022年年報(bào)財(cái)2023-04-22
- 一貫等于多少文_銅錢簡(jiǎn)介_(kāi)當(dāng)前視訊2023-04-22
- 百度新角色:數(shù)字經(jīng)濟(jì)戰(zhàn)略的核心股2023-04-22
- python-異常處理和錯(cuò)誤調(diào)試-異步IO程序的調(diào)2023-04-22
- 房貸利率調(diào)降的原因有哪些2023-04-22
- [路演]龍?jiān)醇夹g(shù):未來(lái)公司將根據(jù)實(shí)際情況 2023-04-22
- 2019教師資格證報(bào)名人數(shù)_2019教師資格證報(bào)名2023-04-22
- 環(huán)球看熱訊:小杰尼斯實(shí)名舉報(bào) 喜多川丑聞2023-04-22
- 共話中國(guó)經(jīng)濟(jì)新機(jī)遇 | 巴西學(xué)者:務(wù)實(shí)的2023-04-22