• 您的位(wèi)置:首頁 > 新聞(wén)動態 > Unity3D

    unity的碰撞檢測詳細解釋

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


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

    表(biǎo)格:(針對於OnCollisionEnter係列函數(shù),默認都有碰撞(zhuàng)體,重力都取消了,表格列出的現象可能片麵)


    Cube

    Sphere

    現象(xiàng)

    剛體

    剛體

    動力學

    運動狀態

    剛體

    剛體

    動力學

    運動狀態

    互相穿透不幹擾

    互相穿透(tòu)不幹擾

    有(yǒu)

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

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

    互相穿透不(bú)幹擾

    有(yǒu)

    互(hù)相穿透不幹擾

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

    碰撞檢測,且相互撞開

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

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

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

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

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

    互相穿透不幹擾

    嵌入時,互不幹擾

    有(yǒu)

    嵌(qiàn)入時,碰撞檢測,互相撞開

    有(yǒu)

    碰撞檢(jiǎn)測,且Cube隨Sphere動

    嵌入時,碰撞檢測(cè),Sphere不會(huì)被撞開

    互相穿透不幹(gàn)擾

    互相穿透不幹擾

    互相穿透不幹擾


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


    日本中出视频|午夜免费福利在线|亚洲精品亚洲人成在线下载|国产高潮流白浆免费观看不卡|偷拍亚洲欧美|亚洲中文字幕久爱亚洲伊人|久久久久香蕉视频|国产欧美日韩一区|久久国产成人亚洲精品影院老金|久久久久中文字幕