Re: [請益] Unity 隊友顯示問題
好吧
半夜睡不著覺,對這個問題寫了簡單的測試研究了一下
我的結論是這樣:
這個 BUG 的原因是『編號較前的玩家在同步後面玩家的 tag 之前,就先執行了
切換顏色的方法』導致。
當然你會覺得說:啊我不是先呼叫了所有玩家的 TagSet() ,才呼叫每個玩家的
SetBool() 嗎?
理論上是這樣啦,但實際上 RPC 的執行順序會受到很多方面影響。
當然我沒有認真研究過 UNET 的原始碼,所以不保證一定正確。
不過這樣也能解釋為什麼只有當 Host 也是人狼時,才不會出現 BUG。
因為所有玩家的 Tag 是由 Host 直接計算的,所以 Host 不會有延遲問題
然後你的人狼數量剛好是 2 ,所以第 2 個人狼也不會發現他之後的玩家 tag 有錯
針對這個問題我的建議如下
最簡單的方法,在 TagSet() 跟 SetBool() 之間設定一個延遲
大概 0.5 ~ 1 秒就很足夠了。
又或是在設定每個玩家角色時,直接將每個玩家的對應角色都傳給各個玩家
這樣就不會有先後問題,可以確保在切換顏色時所有玩家的角色都是正確的。
這個功能你可以使用 ClientRpc 完成,又或是偷懶一點用 SyncBoolList 來同步。
以上兩個方法提供你參考
最後要提的一點是
UNET 已經被 Unity 官方棄用了
建議你改用 Photon (喂
--
███ ︵︵︵︵ █◤ ◢█◤ ちから
██ /\|||█ ◢█◤ 「ひとりでは耐え切れぬ 雷 でもきっと、
▄█│‵╯︶︶| ██◤ # ふたりなら大丈夫私は信じる!」
▔█ ╲ ) ∕█████◣ +
+ █ ╮ - │██◣ ◥◥█◣ ◢ 第四巻 27ページ…
▂▄▆█│ │██◤* ◢████◣ 雷神の系譜 ψWix
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.129.192.61 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1567974734.A.2E2.html
※ 編輯: wix3000 (220.129.192.61 臺灣), 09/09/2019 04:34:10
推
09/09 14:53,
5年前
, 1F
09/09 14:53, 1F
推
09/10 16:08,
5年前
, 2F
09/10 16:08, 2F
→
09/10 16:08,
5年前
, 3F
09/10 16:08, 3F
→
09/11 13:10,
5年前
, 4F
09/11 13:10, 4F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
GameDesign 近期熱門文章
PTT遊戲區 即時熱門文章