• 您(nín)的位置:首(shǒu)頁 > 新聞動態 > Unity3D

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

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


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

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


    Cube

    Sphere

    現象

    剛體

    剛體

    動力學

    運動狀態

    剛體

    剛體

    動力學

    運動狀態

    有

    有

    有

    有

    有

    有

    互相穿透不幹擾

    有

    有

    有

    有

    有

    -

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

    有

    有

    有(yǒu)

    有

    -

    有

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

    有

    有

    有

    有

    -

    -

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

    有

    有

    有

    -

    -

    有

    互相穿透不(bú)幹擾

    有

    有

    有

    -

    -

    -

    互相穿透不幹擾

    有

    -

    有

    有(yǒu)

    有

    -

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

    有

    -

    有(yǒu)

    有

    -

    有

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

    有

    -

    有

    有

    -

    -

    碰撞檢測,且Sphere隨Cube動

    有

    -

    有

    -

    -

    有

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

    有

    -

    有

    -

    -

    -

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

    有

    有

    -

    有

    -

    有

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

    有

    有

    -

    有

    -

    -

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

    有

    有

    -

    -

    -

    有

    互相穿透不(bú)幹擾

    有

    有

    -

    -

    -

    -

    嵌入時,互不幹擾

    有

    -

    -

    有

    -

    -

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

    有

    -

    -

    -

    -

    有

    碰撞檢測,且Cube隨Sphere動

    有

    -

    -

    -

    -

    -

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

    -

    -

    有

    -

    -

    有

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

    -

    -

    有

    -

    -

    -

    互相穿透不(bú)幹擾

    -

    -

    -

    -

    -

    -

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


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


    91影视免费版下载-91麻豆国产福利精品-91麻豆精品一二三区在线-国产91系列视频在线观看