Mirror Networking 最基本的架構就是 Network Manager 與 Player 物件,本篇文章將會說明要如何快速建置簡易的多人遊戲連線程式。
建立物件及腳本
首先,在 Project 視窗的資料夾中按下 滑鼠右鍵→Create→Mirror,用預設範本建立 Network Manager 與 Network Behaviour 腳本 (名稱自便,以能辨識為主)。
建立兩個空物件,重命名為 BasicNetworkManager 與 BasicPlayer,並在 Player 物件中掛上上一步新增的 Network Behaviour 腳本,與 NetworkIdentity 組件。
BasicNetworkManager 物件一樣掛上前面建立的 Network Manager 腳本,它會自動加入 Kcp Transport 組件。
為方便開發,我們要為 BasicNetworkManager 物件新增 NetworkManagerHUD 組件,它會在 Play 時建立一組簡易的網路控制按鈕。
為了方便待會編譯出來能觀察成果,我們在 BasicPlayer 下新增一個 Cube,座標記得歸零。
基本物件已建立完成,接下開始進行參數設定。
配置 Network Manager 玩家設定
請按住 BasicPlayer 物件並拖拉到 Project 中建立預製物件,並將場景中的 BasicPlayer 刪除。
點擊 BasicNetworkManager 物件,將剛才建立的 BasicPlayer 預製物件拖拉到 Player Prefab 欄位中。
配置 Network Manager 出生點
新增一個空物件,重新命名為 SpawnPos,調整物件座標到你想要玩家出生的位置,並為它新增 NetworkStartPosition 組件。
你可以多複製幾個 SpawnPos 放在不同座標,讓遊戲有多出生點。
接下來查看 BasicNetworkManager 物件的 Inspector 視窗,將 Player Spawn Method 設定值修改城你要的模式:
Random | 隨機從 SpawnPos 中選一個座標生成玩家 |
Round Robin | 循環制生成,會從 Hierarchy 中由上到下按照順序查找 SpawnPos 座標生成,並在最後一個作用完畢後自動切換到第一個生成位置繼續作業 |
編譯測試
經由頂部導覽進入 Build Settings 視窗,點擊 Add Open Scenes 按鈕來將當前的場景加入編譯設定。
一樣是為了方便觀察,請點擊左下角的 Player Settings 按鈕,將 Fullscreen Mode 設定值改為 Windowed。
最後按下 Build 按鈕開始編譯。
啟動編譯後的執行檔,開兩個測試。左上角出現的一坨按鈕就是 NetworkManagerHUD 的功能,其中一個視窗點擊 Host (Server + Client),另一個點擊 Client。
防火牆提示請點擊 允許存取(A)。
順利的話在兩個視窗中都能看到兩個線上玩家物件。
Network Manager 與 Player 物件的建置教學在此結束,有問題請於留言版提出。