第一個代碼添加到被碰撞物體,被碰撞物體勾選了is trigger,為什么碰撞體碰撞后沒有銷毀,
第二個代碼最后的代碼完全沒有起作用,沒有傳遞訊息和碰撞后也沒有添加一個剛體力
問下大神,代碼有什么問題,該怎么弄



uj5u.com熱心網友回復:
有大神嗎,在網上找的視瞥澩,視頻上代碼都可以運行起來,為什么到我這復制過來就沒用了。。。。uj5u.com熱心網友回復:
看得不太清楚 應該是這樣的 你把腳本掛在了被撞物體上 比如說A 然后去碰撞的物體是B 我不知道你想銷毀A還是B 假設你想銷毀A 那么你要去判斷是A被B撞了才銷毀 在OnTrigger2DEnter你們應該有個判斷陳述句去判斷進入A的是B而不是其他物體 所以要用到B物體的tag 或者name 顯然你的第一個代碼里沒有這個uj5u.com熱心網友回復:
B撞A,想銷毀B,那該用什么代碼能實作uj5u.com熱心網友回復:
B撞A,想銷毀B,那該用什么代碼能實作
uj5u.com熱心網友回復:
碰撞后傳遞訊息,并且還給它施加一個力,這樣該怎么實作啊?
uj5u.com熱心網友回復:
public class test : MonoBehaviour{
//腳本在A上,B撞A,銷毀B
public GameObject B;//拖入B
private void OnTriggerEnter2D(Collider2D collision)
{
if(collision.name==B.name)//一定知道和這個物體碰撞的另一個物體是誰
{
Destroy(B);
Debug.Log(collision.name);
}
}
}
uj5u.com熱心網友回復:
public class test : MonoBehaviour 看得不太清楚 應該是這樣的 你把腳本掛在了被撞物體上 比如說A 然后去碰撞的物體是B 我不知道你想銷毀A還是B 假設你想銷毀A 那么你要去判斷是A被B撞了才銷毀 在OnTrigger2DEnter你們應該有個判斷陳述句去判斷進入A的是B而不是其他物體 所以要用到B物體的tag 或者name 顯然你的第一個代碼里沒有這個
B撞A,想銷毀B,那該用什么代碼能實作
{
//腳本在A上,B撞A,銷毀B
public GameObject B;//拖入B
private void OnTriggerEnter2D(Collider2D collision)
{
if(collision.name==B.name)//一定知道和這個物體碰撞的另一個物體是誰
{
Destroy(B);
Debug.Log(collision.name);
}
}
}
uj5u.com熱心網友回復:
第二個代碼最后的代碼完全沒有起作用,沒有傳遞訊息和碰撞后也沒有添加一個剛體力第一點:
這句最后就是關鍵了:也沒有添加一個剛體力,物理的回呼訊息是剛體在發出的。。碰撞的兩個物體。至少其中一個需要有剛體。
第二點
OnTrigger2DEnter 這個宣告錯了。。
//正確的格式是這個,2D不是在中間,而是在最后面
protected void OnTriggerEnter2D(Collider2D other) {}
uj5u.com熱心網友回復:
第二個代碼最后的代碼完全沒有起作用,沒有傳遞訊息和碰撞后也沒有添加一個剛體力
第一點:
這句最后就是關鍵了:也沒有添加一個剛體力,物理的回呼訊息是剛體在發出的。。碰撞的兩個物體。至少其中一個需要有剛體。
第二點
OnTrigger2DEnter 這個宣告錯了。。
//正確的格式是這個,2D不是在中間,而是在最后面
protected void OnTriggerEnter2D(Collider2D other) {}
//當然。OnCollision2DEnter 這個也是寫錯的,下面這個才是正確的格式
protected void OnCollisionEnter2D(Collision2D other) {
}
uj5u.com熱心網友回復:
碰撞檢測必要條件:1、雙方都有碰撞體2、運動一方必須右剛體
uj5u.com熱心網友回復:
函式名寫錯了,運行不了轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/37552.html
標籤:Unity3D
