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

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

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


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

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


    Cube

    Sphere

    現象

    剛體(tǐ)

    剛體

    動力學

    運動狀態

    剛體

    剛體

    動力學

    運動狀態

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

    互相(xiàng)穿(chuān)透不幹擾(rǎo)

    有(yǒu)

    有(yǒu)

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

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

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

    互相穿透不幹擾

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

    碰撞(zhuàng)檢測,且相互撞(zhuàng)開

    碰撞檢測,且Sphere隨Cube動

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

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

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

    嵌入時,碰撞檢測(cè),且Cube不會被撞開

    互(hù)相穿透不幹擾

    嵌入時,互不幹擾

    嵌入(rù)時,碰撞檢測(cè),互相撞(zhuàng)開

    碰撞檢測,且Cube隨Sphere動

    嵌入時,碰撞檢測,Sphere不會被撞(zhuàng)開

    互相穿透不幹擾

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

    互相穿透不(bú)幹擾


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


    AV永久天堂网_奇米狠狠色_亚洲欧美日韩动漫_欧美日韩视频在线观看免费一区二区_日韩精品一二三区_国产AV网站18禁止人_久久久久久精品人妻免费网站不卡_国产最新视频_另类免费视频在线视频二区_久久精品免视国产