Photon Engine 多人射擊遊戲製作 Part.1

本教學將使用 Photon 製作基本的多人連線的動作射擊遊戲,包含 Menu 登入選單與 Game 遊戲場景。

[ 製作登入選單 | 製作玩家角色 ]

製作登入選單

先建立一個 Menu 場景,提供玩家登入的功能,文字欄位將隨機產生玩家名稱,並可自行修改。

玩家按下登入按鈕後,遊戲將會與伺服器連線、進入遊戲大廳、建立遊戲房間、進入遊戲房間。

建立 NetworkManager.cs 腳本,用於管理遊戲連線功能 [ ]

 

建立一個空物件,套用 NetworkManager 腳本,使用滑鼠拖曳指定場景中的輸入欄位與登入按鈕。

 

(左下圖)選取 InputField 輸入欄位,先在 OnClick () 按下 + 按鈕,再將 NetworkManager 拖曳到下方欄位。

選擇 NetworkManager > OnChangeNickname 設定玩家修改名稱時檢查欄位,若是空白將無法按下登入。

(右下圖)選取 Button 登入按鈕,先在 OnClick () 按下 + 按鈕,再將 NetworkManager拖曳到下方欄位。

選擇 NetworkManager > OnLoginButtonClicked 設定玩家按鈕按下後執行登入的動作。

 

製作遊戲場景

建立 Game 場景,這是玩家連線後進入的遊戲場景。

建立一個 UIManager 腳本,用於提供 UI 互動功能 [ UIManager.cs ]

建立一個空物件並命名為 UIManager 套用剛才建立的 UIManager 腳本。

 

建立一個 GameManager 腳本用於管理遊戲,先加上動態生成玩家角色的功能 [ GameManager.cs ]

建立一個空物件並套用剛建立的 GameManager 腳本,稍後可用於指定玩家的預製物件與生成點。

注意!此腳本出現錯誤是因為 PlayData 腳本元件尚未製作,無法套用到物件可稍後再執行此步驟。

 

建立一個 CameraController 腳本用於控制攝影機跟隨玩家的功能 [ CameraController.cs ]

將此腳本套用到 Main Camera 攝影機,設定位置、旋轉角度、移動速度。

設定攝影機的位置、旋轉角度、移動速度,稍後可再微調。

製作玩家角色

先製作簡單的玩家角色,建立一個 Capsule 膠囊物件,命名為 "Player" 並套用 Rigidbody 剛體元件。

 

建立一個 PlayerController.cs 腳本,套用到玩家角色,控制移動、跳躍 等 [ PlayerController.cs ]

套用 Photon View、Photon Rigidbody View 元件、剛建立的 PlayerController.cs 腳本,設定移動、跳躍的初始數值。

建立一個 PlayerData.cs 腳本套用到玩家角色,用於儲存玩家資料 [ PlayerData.cs ]

製作顯示玩家名稱與分數的 UI 文字。

將玩家角色轉成預製物件,不過… 需要建立 Resources 資料夾放置 Photon 預製物件,而不是一般的 Prefabs 資料夾。

★★

 

玩家角色將會使用 PhotonNetwork.Instantiate 動態生成,參閱 Photon 官網的 [ 相關資訊 ] 。

選取 GameManager 物件,將製作完成的遊戲角色拖曳 Player Prefab 欄位。

★★

 

完成以上步驟後儲存場景,若需測試多人連線功能,可將製作的 Menu、Game 場景加入發佈設定清單。

發佈遊戲並同時開啟多個視窗來模擬多人同時連線的情況,確認 Photon 連線功能是否正常執行。

下一段教學將會介紹製作玩家可選擇的遊戲角色。