前面的教學曾經使用 PlayMaker 製作開門關門的互動效果,遊戲角色進入觸發器的範圍時打開門、離開時關上門,可是這只是單純透過觸發器來產生互動而已,實際上並沒有儲存物件的狀態。而在遊戲中經常需要進行條件的判斷,例如必須練到等級 100 級才能裝備的武器,或是完整搜集到 7 個水晶才能挑戰最後魔王等,這些就需要透過「變數」。 本段教學將要介紹變數的使用,內容源自於官方 PlayMaker 教學,場景中有一個會改變顏色的平台,預設為紅色,當玩家經過平台的觸發器時,平台將變成綠色,不過當玩家再一次經過平台的觸發器時,平台又會變成紅色。因此我們需要一個變數來儲存平台目前的顏色,當玩家經過時就要切換成另一種顏色。 開啟 PlayMaker 編輯器,選取平台的觸發器並加上 FSM 狀態機,將初始狀態的名稱設定為「Setup」。 Setup 狀態的功能是「宣告變數」,而且只會執行一次,所以稍後並不會再回到這個狀態。請切換到 Variables 標籤,目前並沒有任何的變數。 New Variable 欄位輸入變數名稱「Color1」,而 Variable Type 選擇變數型態「Color」,這是 Unity 遊戲引擎特殊的變數型態,用於儲存顏色,按下 Add 按鈕新增變數。 變數 Color1 新增完成後,將會顯示於清單上,任何時候都可以回來修改變數名稱、變數型態,或是刪除變數,這裡也會顯示變數被使用的次數。 接著重複相同的步驟,再新增一個 Color2 變數,因為平台將會切換兩種不同的顏色。為了儲存目前的顏色,再新增一個 Current_Color 變數,資料型態是 Int 整數,變數經常使用整數的資料型態來代表不同的狀態,例如我們有時用 1 代表「有」、0 代表「沒有」。有時用 1 代表「男生」、0 代表「女生」,簡單且容易理解! 新增 Listener 狀態,它的功能是用於監聽事件,玩家只有在進入觸發器的範圍時,才會開始判斷。 選擇 Setup 狀態,按下 Action Browser 按鈕,接著雙擊 Color 捲欄下方的 Set Color Value 我們總共 Setup 狀態新增兩個 Set Color Value,它的功能是設定顏色的數值。 Color Variable 顏色變數透過下拉選單,分別選擇 Color1、Color2 設定 紅色與綠色 Color Variable 設定完成! Set Int Value 設定整數變數的數值 從下拉選單選擇 Current_Color 新增 Color_Checker 狀態 為 Listener 狀態加上 Trigger Event 觸發器事件。 新增 Red、Green 狀態。 在 Color_Checker 狀態新增 Int Switch,並從 Int Variable 整數變數欄位選擇「Current_Color」,也就是從目前的顏色來進行條件的判斷。
Int Switches 的數值設定為2,因為有「紅」、「綠」兩種狀態。
新增 Set_Color_Red、Set_Color_Green 事件。
Set Material Color 設定材質顏色
接著在 Red 狀態,同樣加上 Set Int Value ~ CG 數位學習網版權所有 ~ |