如何使用 Creator【攝像機組件】實現局部縮放的效果?
- 2019 年 10 月 8 日
- 筆記
本文由社區新成員「白玉無冰」撰寫,感謝大家的熱情創作!
多攝像機的支持可以讓你輕鬆實現高級的自定義效果,比如雙人分屏效果,或者場景小地圖的生成。

攝像機是什麼
攝像機(camera)是玩家觀察遊戲世界的窗口。可以這樣理解,你在電視?電腦?上看到的演唱會直播等,會有不同的視角切換,這是因為切換不同的攝像機?視角實現的。創建場景時,Creator 會默認創建一個名為 Main Camera 的攝像機,作為這個場景的主攝像機。
添加一個攝像機
我們先創建一個新的typescript項目。

接着在場景中添加一個攝像機,並改名為camera
。

添加攝像機顯示畫布
在場景中添加一個sprite用於這個攝像機顯示的畫布。因為用攝像機會上下反轉,要修改scaleY
為-1
。混合模式改成ONE
。

攝像機不能對着顯示畫布里的內容,就像你對着顯示屏幕直播,會出現無限個小屏幕。為此,我們要為畫布添加一個分組。

而攝像機不能顯示這分組。

綁定攝像機到畫布
修改Helloworld.ts
里的代碼,添加camera
和畫布sprite
的聲明。綁定camera
的targetTexture
到顯示畫布spriteFrame
。參考代碼如下:
//Helloworld.ts const { ccclass, property } = cc._decorator; @ccclass export default class Helloworld extends cc.Component { @property(cc.Camera) camera: cc.Camera = null; @property(cc.Sprite) sp_camera: cc.Sprite = null; start() { const texture = new cc.RenderTexture(); texture.initWithSize(this.sp_camera.node.width, this.sp_camera.node.height); const spriteFrame = new cc.SpriteFrame(); spriteFrame.setTexture(texture); this.sp_camera.spriteFrame = spriteFrame; this.camera.targetTexture = texture; } }
將攝影機和畫布綁定腳本上

運行預覽效果:

控制攝像機
我們還要學會操作攝像機,就像演唱會直播一樣,有時攝像機看歌手,有時要看下舞者,有時要近距離看,有時要看的遠一點。找到攝像機的屬性節點,Position
屬性是攝像機看的位置,而Zoom Ratio
表示攝像機的遠近。

修改Position
為100,100
,Zoom Ratio
為0.8
,運行預覽:

添加滾動條控制攝像機
我們還可以添加不同的滾動條來控制攝像機的距離,位置。
