• 您的位置:首頁 > 新聞動態 > Unity3D

    unity的碰撞檢測詳細解釋

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


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

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


    Cube

    Sphere

    現象

    剛體

    剛體

    動力學

    運動(dòng)狀態

    剛體

    剛體

    動力學

    運動狀態

    互相(xiàng)穿透不幹擾

    有(yǒu)

    互相(xiàng)穿透不幹擾

    有(yǒu)

    碰撞檢(jiǎn)測,且Cube不會被撞開

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

    互相穿透不幹擾

    互相(xiàng)穿透不(bú)幹擾

    有(yǒu)

    碰撞檢(jiǎn)測(cè),且(qiě)Sphere不會被撞開

    碰撞檢測,且相互撞開

    有(yǒu)

    碰撞檢測,且Sphere隨Cube動

    碰撞檢測,且Sphere不會被撞開(kāi)

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

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

    嵌入時,碰撞檢(jiǎn)測,且Cube不(bú)會被撞開

    有(yǒu)

    互相穿(chuān)透不幹擾

    嵌入時,互不幹擾

    嵌入時,碰撞檢測,互相撞開(kāi)

    碰撞檢測,且(qiě)Cube隨Sphere動

    嵌入時(shí),碰撞檢測,Sphere不會被撞開(kāi)

    互相穿(chuān)透不幹擾

    互(hù)相穿透不(bú)幹(gàn)擾

    互(hù)相穿透不幹擾


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


    密桃直播-密桃直播手机版下载-蜜桃直播app下载安装-蜜桃直播官方版下载