Unity中碰撞檢測小結

2021-08-28 06:13:20 字數 625 閱讀 4108

兩個碰撞體發生物理碰撞所需條件:

兩個物體所在的層(layer),在物理層上能夠發生碰撞

兩個物體均需要碰撞體(collider)元件,最少一方需要剛體(rigidbody) 碰撞函式:

void oncollisionstay(collision info); //檢測是否發生碰撞

void oncollisionenter(collision info); //碰撞開始時觸發

void oncollisionexit(collision info); //碰撞離開時觸發

注釋:角色控制器是個特殊的剛體,可以和碰撞體發生物理碰撞,但是不能檢測碰撞資訊!!即以上三個函式他無法呼叫

兩個物體發生碰撞觸發,即兩個物體可以相互穿透,所需條件:

1.滿足以上兩點

2.兩個物體最少有乙個物體碰撞器點了istrigger屬性。

void ontriggerenter(collider other);

void ontriggerstay(collider other);

void ontriggerexit(collider other);

注釋:雙方不管哪一方點了istrigger屬性,兩個物體均可以在指令碼中呼叫這三個函式,角色控制器也滿足這條。

Unity碰撞檢測

碰撞個必要條件為兩個角色必須都掛載 rigibody 剛體元件,至少乙個角色掛載 collider指令碼 第一種 觸發器,必須開啟 collider的 istrigger 為 true 兩個碰撞物件會相互穿過 void ontriggerenter collider collider 開始觸發器 v...

Unity觸發檢測和碰撞檢測

void oncollisionenter collision col void oncollisionstay collision col void oncollisionexit collision col 發生碰撞的條件 主動方必須有rigidbody,發生碰撞的兩個遊戲物件必須有collid...

碰撞檢測 膠囊體碰撞檢測

膠囊體 給定一條線段l,所有道l的距離為r的點的集合。由定義可知,膠囊體由半徑r和線段l標識。檢測兩個膠囊體是否發生碰撞,即檢測兩條線段l1 l2的最短距離d是否大於l1 l2的半徑r1 r2之和,d r1 r2 則未碰撞,否則發生碰撞。設線段l1端點為a1 a2,線段l2端點為b1 b2,號表示兩...