![](/img/trans.png)
[英]How can I avoid detection of second collision of same objects in Unity3d?
[英]Unity | How to get multiple objects with Compound Collision Detection to work?
我目前正在嘗試使用碰撞檢測進行目標選擇(自動攻擊)。 我有兩個對象(即一個玩家和一個塔),每個游戲對象都有一個對象層次結構:
在這里,對象有一個:
基於此,我將每個子對象設置為具有球體碰撞器,並設置為與球體類型相對應的層。 下面是當前使用的物理碰撞表。 我只希望 HitBox 層和目標層相互交互。
盡管我盡了最大的努力,但在運行游戲並讓玩家在球體中來回走動時,從未調用OnTriggerEnter()
。 此方法位於父游戲對象上的玩家和塔類中。 目前我在玩家或塔上都沒有剛體,但在玩家和塔的命中球體上都有觸發器來觸發彼此OnTriggerEnter()
。
到目前為止,我已經嘗試過:
最后,這是兩個物體碰撞的圖像,每個物體都在彼此的球體內,但沒有調用彼此的OnTriggerEnter()
。 Cylinder 輪廓來自 NavMeshAgent Controller,我也嘗試刪除和測試,但也無濟於事。 :(
TL;DR:嘗試對多個游戲對象進行復合碰撞檢測但無濟於事。
答案實際上隱藏在您的問題中。
從這里找到的 Unity 文檔:
注意:兩個游戲對象都必須包含一個碰撞器組件。 必須啟用 Collider.isTrigger,並包含剛體。 如果兩個游戲對象都啟用了 Collider.isTrigger,則不會發生碰撞。 當兩個游戲對象都沒有剛體組件時,同樣適用。
但根據你的帖子:
目前我在玩家或塔上都沒有剛體,但在玩家和塔的命中球體上都有觸發器來觸發彼此的 OnTriggerEnter()。
因此,最快的解決方法聽起來像是在您的塔中添加一個剛體。 您也可以向您的播放器添加一個,但請確保您的碰撞矩陣將播放器排除在環繞觸發球體碰撞器之外。
最后,根據文檔,觸發器不會被另一個觸發器觸發。
解決這些問題,您應該會看到您期望的行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.