測試玩家物件在主機(Host)的移動
在上一篇中,我們讓玩家物件可以在單機的環境下移動,但在連線的狀況下,是無法有正確的結果。
首先執行Unity,在執行狀態下,NetworkManagerHUD會顯示以下的使用者介面,點擊LAN Host按鈕,遊戲就會將該玩家視為主機開始遊戲。
接下來NetworkManager會使用註冊的player prefab,生成一個新的玩家物件,這時NetworkManagerHUD會顯示出伺服器是正在運作的。
主機(Host)表示伺服器和用戶端在同一個程序,更多資訊可以參考這裡。
接著可以使用WASD鍵或方向鍵做角色的移動和旋轉,按下介面中的Stop按鈕會回復成離線狀態,在主機端的移動測試到這裡就完成了。
測試玩家物件在用戶端(Client)的移動
要測試用戶端的移動,需要兩個同時運行遊戲的實體,作為用戶端的那一方可以直接在Unity開發環境下實行,這樣一來就必須輸出一個遊戲檔案作為主機端,所以首先我們必須將本專案輸出,首先點擊File->Build Settings。
按下Add Current新增場景,選擇PC, Mac....,按下Build And Run輸出檔案並執行遊戲,執行前勾選windowed視窗化,會比較方便操作。
開始遊戲後,和上面提到的主機測試相同,點擊LAN Host按鈕,使用WASD鍵或方向鍵做角色的移動和旋轉,測試完成後回到Unity的開發環境。
現在我們執行Unity,但這次點選 LAN Client按鈕,作為用戶端開始遊戲。這時應該會看到兩個玩家物件,一個是自己用戶端的玩家,另一個則是主機那方的玩家。跟主機測試時相同,使用WASD移動玩家物件,接著我們回到主機端的畫面上,我們可以發現用戶端玩家物件的位置並不相同。
這是因為目前PlayerController腳本並無法在網路環境下運作,
這是因為兩方玩家物件的腳本,在各自的實體中所輸入的移動數值,目前並沒有被NetworkManager追蹤,所以會造成不同步的情形。
上一篇:製作玩家物件的移動腳本
下一篇:連線時玩家物件的移動腳本
沒有留言:
張貼留言