遇到的問題:在對Trigger機關進行測試時發現,畫出的軌道也會將機關觸發。
問題描述:Trigger機關的作用是在發生碰撞時運行腳本中指定的特定物體的特定函數,在這個例子當中特定的物體是一塊地板,特定的函數的功能是刪除這塊地板,導致其上的石塊落下封住道路。預期效果是當玩家與摩托車與Trigger碰撞時巨石落下,可是實際效果是當畫出軌道后,軌道與Trigger產生了交叉,巨石就已經落下。這是因為軌道與Trigger也發生了碰撞。
解決方法:最初的方法是在Trigger的碰撞函數中對碰撞物體進行判斷,如果是玩家或摩托再進行相應操作。但是這種做法十分笨拙,且代碼不簡潔。經過查閱資料我發現,Unity可以設置碰撞發生的物體組別,即通過組別標識,在碰撞檢測時漏過這些特定組別的物體。因此,只要將Trigger和軌道設置為不同的組別,并將它們之間的碰撞檢測關閉,那么就不會發生軌道觸發Trigger機關的問題了。