子彈發射同步

在此章節會解釋如何在多人連線下發射子彈,並對腳本和Prefab做修改。

  1. 在子彈Prefab掛載Network Transform 。
    1. 設定 Network Send Rate (Second) 為零。
      • 因為子彈在發射後不會改變速度和方向,所以不需要送出同步更新。每個客戶端皆依賴子彈目標的位置。
      • 可以減輕遊戲的效能負擔。
  2. 在Network Manager中:
    1. 在 Spawn Info 中的 Registered Spawnable Preafbs 把子彈Prefab加進去。
  3. 修改 Player Controller 腳本。
  4. 把Fire方法改名為 CmdFire ,並加上屬性 Command
    1. Command屬性標示此方法,從客戶端送出並由Server端發送給其他客戶端。
    2. 只能從本地玩家中送出。
    3. 使用屬性時,方法名稱必須都帶有Cmd前綴字。
  5. 在CmdFire中新增述句:
    NetworkServer.Spawn(bullet);
    
    1. 此述句功能類似Game Object的 Instantiate ,要求伺服器端和所有有連線的客戶端產生子彈物件。
    2. 被產生的物件是被產生系統管理,不管修改或刪除都會全部同步。
  6. 測試結果:角色發射子彈時每個客戶端都會有同步,但是擊中後沒有任何效果。

results matching ""

    No results matching ""