在本範例中所製作的Player prefab,將會在之後的教學中,成為使用者進入遊戲後操控的角色。
在預設的情況下,NetworkManager元件會幫每一個連上此網路遊戲的玩家,複製一個Player prefab並生成在遊戲中。網路的生成,及經由用戶端及伺服器同步玩家物件資料這兩件事,將在下一篇作介紹。
※補充:在Unity中,使用Instantiate()生成物件稱為"spawning",而在網路HLAPI中"spawn"一詞有更明確的定義,更多細節請看這裡,上面所提的"生成"可能無法完全的表達原意,請見諒。
在本範例中,我們會使用一個Capsule物件,加上辨識方向的"太陽眼鏡",作為Player prefab。製作完成後它在場景中大致上是長這樣:
生成這個玩家物件時:
- 首先我們需要生成一個3D Object->Capsule
- 並幫他重新命名為"Player"
- 選擇Player物件
- 新增3D Object->Cube為子物件
- 將此物件重新命名為Visor
- 設定Scale數值為(0.95, 0.25, 0.5)
- 設定Position數值為 (0.0, 0.5, 0.24)
- 在Project下Create->Material,並命名為Black
- 點選Material下的Albedo 屬性,將它調成黑色
- 點選Visor物件,將Visor的Material設定為剛剛的黑色Material
到這裡我們完成了一個代表玩家的物件Player,接著如果要將這個物件識別成"網路物件",必須在此物件下新增NetworkIdentity元件。
點選Player,新增元件Network > NetworkIdentity,並將Local Player Authority屬性設定為true。
Local Player Authority設為true時,可以讓客戶端擁有該物件的控制權,關於NetworkIdentity元件的更多細節可以看這裡。
最後我們要將Player物件設定為prefab。
- 將Player物件拖曳至Project視窗中Resources->Prefab的資料夾下(沒有這兩個資料夾的話請自行新增)
- 刪除場景中的Player物件
- 儲存此場景
完成後會在資料下顯示藍色方塊的檔案,這個檔案就是這次要完成的Player prefab。
上一篇:網路管理器
下一篇:註冊Player prefab
建立一個簡單的多人連線範例
沒有留言:
張貼留言