區塊腳本

什麼是區塊腳本?

圖-20250402145046440

您是否注意到《Free Fire》中角色的頭變得非常大?

此效果是使用強大的區塊腳本實現的。

圖-20250402192617114

區塊腳本是一種視覺化程式設計方法,可讓您編寫高度客製化的遊戲邏輯。

入口點

您可以在更多選單下找到阻止腳本的入口點。

圖-20250402145458469

image-20250402145643612

還有一些其他位置可以進入區塊腳本編輯介面。您可以在「編輯遊戲規則」中的「基本設定」和「屬性設定」下找到區塊腳本的條目。他們進入的編輯介面是一樣的。

區塊基本介紹

編輯器

首先,我們可以看到區塊編輯器中的重要區域。

image-20250402181900017

左側有不同類別的所有可用區塊。中心是我們稱之為「畫布」的編輯場景。需要將區塊拖放到畫布中才能生效。

區塊類別

區塊有兩個核心類別:

  1. 事件,決定何時觸發邏輯,例如每當玩家加入遊戲時,或一輪遊戲開始時。腳本目前可用的事件位於紅色區塊類別中

  2. 動作,即遊戲的指令。在我們的例子中,我們需要一個動作來讓角色的頭變得更大!您可以在綠色和藍色區塊類別中找到絕大多數操作。

使用區塊

從左側按住區塊並將其拖曳到畫布中以在當前腳本中使用它。

image-20250402182437921 image-20250402182455584

塊可以相互連接。

image-20250402182616637 image-20250402182630147

操作區塊

選擇

單擊一個區塊即可選擇它,並且區塊操作面板將直接出現在畫布下方,其中突出顯示選定的區塊。

image-20250402184106420

### 刪除

單擊即可刪除。這將從區塊組中刪除選定的區塊,並且下面的區塊將自動向上填充。

image-20250402184414500

您也可以將連接的方塊拖曳到右側以將其刪除。

image-20250402184634175 image-20250402184645257

撤銷與重做

擔心犯錯嗎?右側的快捷選單可讓您撤銷或重做對區塊腳本的所有變更:

image-20250402184455422

區塊數據

您可能已經注意到,積木上有各種顏色的積木和加號。這表示該區塊可以為其下方的區塊提供的資料以及它所需的資料。

圖-20250402160101108

部分必填資料已為您填入預設值,例如上圖中的“自動播放”

每個區塊都有自己獨特的邏輯,提供的數據和所需的數據是不同的數據類型。有時,我們必須使用資料塊、變數甚至函數來提供和接收資料。說到底,遊戲只是一堆數據計算而已。

讓玩家的頭變得更大

現在您已經知道如何操作區塊,讓我們繼續操作,讓地圖中的角色的頭變得更大!

我們需要做的就是像這樣完成區塊腳本:

圖-20250402192617114

不要讓長度嚇到你,核心只是將標題的縮放設定為預設大小的三倍。

圖-20250402192733907

首先,讓我們準備所需的區塊:

image-20250402151812785

調整頭部縮放稍微複雜一些,因為您無法直接從玩家屬性中取得玩家頭部的縮放比例。因此我們需要 Get 屬性區塊來幫助我們取得無法直接從 Set 屬性區塊讀取的屬性。

我們使用 Get 屬性來取得玩家的裝備:

圖-20250402153444311

Get property 的目標實體是從 On Player Join 下拉下來的,意思是:每當有玩家加入遊戲時,取得已加入遊戲玩家的屬性。

使用獲得的裝備作為目標實體,繼續獲取“頭部”

圖-20250402153810754

將上面取得到的「頭部」拖曳到「設定屬性」中,選擇屬性「骨骼比例」:

圖-20250402154010766

按一下 Value 旁邊的加號,然後從左側選擇 Vector3 分配區塊。

image-20250402154128112

用 3 填入 X、Y 和 Z。

圖-20250402154314494

Vector3 是由三個數字組成的資料型別。這裡,鑽孔機的預設比例是(1,1,1)。填寫(3,3,3)表示在3D空間的所有三個維度上將頭部放大三倍。您也可以嘗試填寫不同的數字組合來查看實際表現。

最後,讓我們將「設定屬性」區塊連接到「玩家加入」區塊。只有連接在一起的塊才能使邏輯起作用。

image-20250402154557829

點擊調試按鈕進入遊戲,看看遊戲表現如何:

圖-20250402154750511

image-20250402154804522 image-20250402154814476

區塊腳本中還有更多強大的功能等著你的發現。

不同的腳本

同一個區塊在不同的腳本中可能會有不同的表現!

這是因為,除了我們剛剛使用的“全域腳本”之外,每個玩家都會有一個“玩家腳本”,每個團隊都會有一個“團隊腳本”。如果您願意,甚至可以為場景中的物件和消耗品添加腳本。

腳本對其所在的實體生效。如果在「玩家腳本」中放置了諸如「玩家加入時」之類的事件,那麼每當有玩家加入時,場上的每個玩家(包括新玩家)都會回應該事件。如果我們的區塊是在玩家加入時給予玩家一把M4A1,如果放在全域腳本中,那麼每個玩家都會有一把M4A1;如果放在玩家腳本裡,每個玩家都會給新玩家一把M4A1,新玩家的槍太多了,應付不過來!