• unity的碰撞(zhuàng)檢測詳細解釋

    2018/3/5      點擊:
    1.[AddComponentMenu("MyGame/Player")] //在Component菜單中加入(rù)“MyGame/Player”選項
    2.Time.deltaTime表示每幀的經過時間,那些需要每幀做增減變動的數值都需要乘上Time.deltaTime
    3.MonoBehaviour的派生類不(bú)能使用構造函數初始化
    4.unity的遊戲體隻能使用Instantiate函數(shù)實例化,不能使用new
    5.OnTriggerEnter函數觸發條(tiáo)件:首先兩(liǎng)個(gè)物體都要加碰撞體,被碰撞的物體必須勾選Is Trigger使其監測觸發(fā)(不要(yào)加剛體),負責碰撞的物體必須加上剛體來觸發被碰撞物體(加上剛體才擁有(yǒu)了觸發別人的作(zuò)用,不要勾選(xuǎn)Is Trigger)。
    或者負責碰撞的物體勾選Is Trigger使其監測觸發(不要加剛體),然後被(bèi)碰撞的物體加上剛體。(不要勾選Is Trigger)


    6.OnCollisionEnter(碰撞瞬間)函數和OnCollisionExit(離開)調用條件:首先兩個(gè)物體都要加碰撞體,且Is Trigger(因為勾選了它(tā),則碰撞失效)都必須勾掉,另外:剛體碰非剛體會碰撞(這裏碰撞指的是調用碰撞函數),非剛體碰剛體不會碰(pèng)撞(詳細來說(shuō)就是:運動中的剛(gāng)體碰非剛體,則會(huì)調用被撞物體和撞物體(tǐ)的OnCollisionEnter係列函數),OnCollisionStay(接觸)函數調用條件:兩(liǎng)個滿足條件的物體挨(āi)著的時候就會調(diào)用OnCollisionStay
    7.Is Trigger和Is Kinematic屬(shǔ)性(xìng)詳解
    Is Trigger:選中Is Trigger開啟觸發器(觸發器的範圍則是碰撞的(de)範(fàn)圍),則碰撞屬(shǔ)性失效了
    Is Kinematic:選中Is Kinematic開啟運(yùn)動學狀態(一切物體保持靜止或保持勻速向前運動,除非有外力影響它的狀態,這裏的運動學狀(zhuàng)態指的是勻速向前運動,牛頓大俠的理論)。如(rú)選中,該(gāi)物體不會受到外力,但(dàn)是需要注(zhù)意的是碰撞還在(碰撞不屬於(yú)剛體組件(jiàn),它(tā)是在碰撞體組件裏(lǐ))
    注:1.角控製器(qì)(即Character Controller)不發力不受力但是可以被由代(dài)碼施加的力推動,,如果加Rigidbody組件,則這兩個會衝(chōng)突(這是unity中非自然的一部分(fèn))
    2.運動學剛體(tǐ)發力不受力
    3.剛體(tǐ)發力且(qiě)受力
    4.有時候碰撞可以產(chǎn)生反作用力(lì),比如角控製器可(kě)以通過碰撞給一(yī)個運動中的剛體反(fǎn)作用力
    5.剛體靜止時,則會進入(rù)休眠狀態,休眠狀態中(zhōng)剛體屬(shǔ)性不生效,比(bǐ)如阻力(lì),重力,摩擦力。如何激活剛體使其喚醒:給它力,讓它(tā)平移等。(這是unity中非自然的一部分)
    6.現實生(shēng)活中,先有往某個(gè)方向的力才會有反方向的阻力,而且一般情況下阻(zǔ)力比該方向(xiàng)的力小,但(dàn)在unity中,阻(zǔ)力是可以事先設置的,當阻力大於作用力(lì)時,物體會向阻力(lì)的方向運動,是(shì)不(bú)是很反自然?(這是unity中非(fēi)自然的(de)一部分)
    7. 如果兩個物體都不是剛體(tǐ),都有碰撞體,結果穿透,都不會調用碰撞函(hán)數
    8.物體1是動力學剛體(tǐ)且有碰撞體,物體2沒有剛體(tǐ)有碰(pèng)撞體,結果穿透,都不會調用碰(pèng)撞函(hán)數
    9.物體1是動力學剛體且有碰撞體,物體2有剛體有碰撞體,結果碰了,調用碰撞函數(不同(tóng)情況(kuàng)調用不同函數。比如速度不同,調用函數不同[比如速度過(guò)快會穿(chuān)過去])

    表格:(針對於OnCollisionEnter係列函數,默認都有碰撞體,重力都(dōu)取消了,表格列出的(de)現象可能片麵)


    Cube

    Sphere

    現象(xiàng)

    剛體

    剛體

    動力學

    運動狀態

    剛體

    剛體(tǐ)

    動力學

    運動狀(zhuàng)態

    互相穿透不幹擾

    互相穿透不幹擾

    有(yǒu)

    碰撞檢測,且Cube不會被撞開

    碰撞檢測,且(qiě)Cube不會被撞開

    互相穿透不幹擾

    互相穿透不(bú)幹擾

    碰撞檢測,且Sphere不會被撞(zhuàng)開

    碰撞檢測,且(qiě)相互撞開(kāi)

    碰撞檢測,且Sphere隨(suí)Cube動

    碰撞檢測,且Sphere不會被撞開

    碰(pèng)撞檢測,且Sphere不會被撞開

    碰撞檢測,且Cube不會被撞(zhuàng)開

    嵌入時,碰撞檢測,且Cube不會被撞開

    互相穿透不幹擾

    嵌入(rù)時,互不幹擾

    嵌入時,碰撞檢測,互相撞開

    碰(pèng)撞(zhuàng)檢(jiǎn)測,且Cube隨(suí)Sphere動

    有(yǒu)

    嵌入時,碰撞檢測,Sphere不會被撞開

    互相穿透不(bú)幹擾

    互相穿透不幹擾

    互相穿透不幹擾


    8.this.transform.parent = surface.transform; //改變該物體(this.transform)的父級,父物體為(wéi)surface.transform處的物體


    91网站入口_91视频导航_91短视频在线_91视频在线免费观看