一、 指定碰撞層級(jí)
可以在物體的Collider組件中設(shè)置碰撞層級(jí),只有屬于指定層級(jí)的物體才會(huì)響應(yīng)碰撞事件。例如,我們可以將敵人設(shè)置為一個(gè)單獨(dú)的層級(jí),然后在玩家的腳本中檢測(cè)碰撞時(shí),只響應(yīng)屬于敵人層級(jí)的物體。
void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.layer == LayerMask.NameToLayer("Enemy"))
{
// 碰撞到敵人,執(zhí)行相應(yīng)操作
}
}
二、 指定Collider組件的標(biāo)簽
可以在物體的Collider組件中設(shè)置標(biāo)簽,然后在腳本中檢測(cè)碰撞時(shí),只響應(yīng)標(biāo)簽為指定值的物體。例如,我們可以將敵人的Collider組件設(shè)置為"Enemy"標(biāo)簽,然后在玩家的腳本中檢測(cè)碰撞時(shí),只響應(yīng)標(biāo)簽為"Enemy"的物體。
void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.CompareTag("Enemy"))
{
// 碰撞到敵人,執(zhí)行相應(yīng)操作
}
}
三、 判斷物體的類型
可以使用GetComponent方法獲取碰撞到的物體的組件,然后判斷組件類型是否為目標(biāo)類型。例如,我們可以在敵人腳本中檢測(cè)碰撞時(shí),只響應(yīng)玩家的物體。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-515524.html
void OnCollisionEnter(Collision collision)
{
Player player = collision.gameObject.GetComponent<Player>();
if (player != null)
{
// 碰撞到玩家,執(zhí)行相應(yīng)操作
}
}
四、 判斷物體的名字
你可能指的是通過(guò)識(shí)別對(duì)象的名稱來(lái)進(jìn)行碰撞檢測(cè)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-515524.html
void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.name == "Enemy")
{
// 碰撞到敵人,執(zhí)行相應(yīng)操作
}
}
到了這里,關(guān)于unity碰撞檢測(cè)識(shí)別對(duì)象的幾種方法,剛體篇的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!