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 連線功能是否正常執行。 下一段教學將會介紹製作玩家可選擇的遊戲角色。 |