2018年4月18日 星期三

【Unity官方教學分享】測試連線時玩家物件的移動腳本

網頁連結

測試玩家物件在主機(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追蹤,所以會造成不同步的情形。


沒有留言:

張貼留言

【自製小遊戲】水平思考猜謎(海龜湯)

遊戲連結 海龜湯的玩法是由出題者提出一個難以理解的事件,參與猜題者可以提出任何問題以試圖縮小範圍並找出事件背後真正的原因。但出題者僅能以「是」、「不是」或「沒有關係」來回答問題。 本遊戲蒐集各種論壇、平台的42個題目,提供給想玩海龜湯卻愁找不到題目的你們。 ...