一、碰撞事件
1).如何理解碰撞事件摹迷?
碰撞事件簡(jiǎn)單來說就一個(gè)物體與另外的一個(gè)物體一旦相互接觸就產(chǎn)生了碰撞,
而此時(shí)會(huì)觸發(fā)碰撞事件。當(dāng)然產(chǎn)生碰撞事件的前提是兩個(gè)相撞的物體都必須擁有Collider組件露氮。
其實(shí)本質(zhì)上來說uinty中物體的碰撞就是Collider組件的碰撞。
我們從圖中可以看到里面有一個(gè)Is Trigger選項(xiàng)钟沛,我們看到黑箭頭那里此時(shí)我們選擇不勾選畔规,具體為什么我下面講到觸發(fā)事件的時(shí)候會(huì)給大家詳細(xì)解答。
2).碰撞事件監(jiān)測(cè)的方法
1.OnCollisionEnter(Collision [參數(shù)名字])
這個(gè)方法代表當(dāng)我們兩個(gè)物體一旦接觸恨统,就會(huì)觸發(fā)這個(gè)事件叁扫,但該方法只會(huì)調(diào)用一次。
2.OnCollisionStay(Collision [參數(shù)名字])
當(dāng)個(gè)物體碰撞一直來進(jìn)行著畜埋,就會(huì)觸發(fā)這個(gè)事件莫绣,該方法會(huì)一直調(diào)用。直到兩個(gè)物體沒有碰撞后才會(huì)停止
3.OnCollisionExit(Collision [參數(shù)名字])
當(dāng)兩個(gè)物體碰撞結(jié)束后會(huì)調(diào)用該方法悠鞍,該方法也只會(huì)調(diào)用一次
4.Collision [參數(shù)的名字]
Collision是一個(gè)類对室,我們可以理解它是為傳遞碰撞信息的。
[參數(shù)名字].gameObject.name物體表示與該物體碰撞時(shí),碰撞物體的名字软驰。
二涧窒、觸發(fā)事件
1.觸發(fā)器(is Trigger)
這是我們就需要在Collider組件面板中,找到is Trigger锭亏,把它勾選中纠吴,這是該物體就會(huì)變成觸發(fā)器,但我們其他的物體碰撞到該物體就會(huì)直接穿透該物體慧瘤。
2.如何理解觸發(fā)事件戴已?
可以把一個(gè)正在移動(dòng)的剛體物體假設(shè)為物體1,把一個(gè)有觸發(fā)器的物體假設(shè)為物體2锅减。
當(dāng)由物體1被剛體控制移動(dòng)到物體2的觸發(fā)器范圍時(shí)糖儡,這時(shí)就是觸發(fā)事件。
觸發(fā)事件主要用于不用直接與物體接觸怔匣,我們就能觸發(fā)某一事件握联,類似我們實(shí)際生活中的自動(dòng)門,當(dāng)我們接近自動(dòng)門并且還沒碰到它每瞒,它就會(huì)自動(dòng)開門金闽,大家可以這么理解觸發(fā)事件。
3.OnTriggerEnter(Collider [參數(shù)名字])
與碰撞事件類似剿骨,它是物體進(jìn)入觸發(fā)器范圍時(shí)候調(diào)用代芜,只會(huì)觸發(fā)一次。
4.OnTriggerStay(Collider [參數(shù)名字])
也與碰撞事件類似浓利,它是物體進(jìn)入觸發(fā)器范圍內(nèi)調(diào)用挤庇,只要物體一直在觸發(fā)器范圍,它就會(huì)持續(xù)的調(diào)用贷掖。
4.OnTriggerExit(Collider [參數(shù)名字])
它是當(dāng)物體離開觸發(fā)器時(shí)會(huì)調(diào)用嫡秕,只會(huì)觸發(fā)一次。
5.Collider [參數(shù)名字]
Collision是一個(gè)類羽资,我們可以理解它是為傳遞觸發(fā)信息的淘菩。
[參數(shù)名字].gameObject.name物體表示與進(jìn)入觸發(fā)器時(shí),觸發(fā)物體的名字屠升。