2018年4月17日 星期二

【Unity官方教學分享】建立Player prefab

網頁連結

在本範例中所製作的Player prefab,將會在之後的教學中,成為使用者進入遊戲後操控的角色。
在預設的情況下,NetworkManager元件會幫每一個連上此網路遊戲的玩家,複製一個Player prefab並生成在遊戲中。網路的生成,及經由用戶端及伺服器同步玩家物件資料這兩件事,將在下一篇作介紹。
※補充:在Unity中,使用Instantiate()生成物件稱為"spawning",而在網路HLAPI中"spawn"一詞有更明確的定義,更多細節請看這裡,上面所提的"生成"可能無法完全的表達原意,請見諒。

在本範例中,我們會使用一個Capsule物件,加上辨識方向的"太陽眼鏡",作為Player prefab。製作完成後它在場景中大致上是長這樣:

生成這個玩家物件時:

  • 首先我們需要生成一個3D Object->Capsule
  • 並幫他重新命名為"Player"

接著為了讓Player可以一眼就看出前面在哪,我們幫它新增黑色的Cube當作太陽眼鏡。

  • 選擇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


建立一個簡單的多人連線範例

沒有留言:

張貼留言

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

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