簡體   English   中英

Unity OnCollisionEnter具有作為剛體的子代的對撞機

[英]Unity OnCollisionEnter with a collider that is the child of the rigidbody

我試圖僅在直接聯系播放器(具有剛體的父級)時使碰撞繼續; 並忽略與孩子(劍)的碰撞。 劍被標記為武器,玩家被標記為玩家。

我已搜索,但找不到足夠的答案(C#)

void OnCollisionEnter (Collision col){
    Debug.Log("boop P" + playerNumber);
    if (col.collider.transform.tag == "Player") { 
        -stuff happens-
    }
}

這讓我發瘋,我需要睡覺,請幫助。

編輯-很久以來,我用一個簡單的東西ContactContact.otherCollider解決了它

問題可能出在您如何檢查標簽。 我通常像這樣直接獲取gameObject的標簽。

void OnCollisionEnter(Collision col){
    if (col.gameObject.tag == "Player"){
        //stuff happens
    }
}

甚至是對撞機的標簽。

(col.tag === "player")

萬一其他人為此感到掙扎而OP的編輯太含糊了...

您可以檢查以查看是否有碰撞對象碰撞到GameObject上,該碰撞對象使用沖撞.contacts調用了腳本:

foreach (ContactPoint c in collision.contacts)
{
        Debug.Log(c.thisCollider.name);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM