• 您的位置(zhì):首頁(yè) > 新聞動態 > Unity3D

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

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


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

    表格:(針對於(yú)OnCollisionEnter係(xì)列函數,默認都有碰撞體,重力都取消(xiāo)了,表格列(liè)出的現象可能片麵(miàn))


    Cube

    Sphere

    現象(xiàng)

    剛體

    剛體

    動力學

    運動狀態

    剛體

    剛體

    動力學(xué)

    運動狀態

    有(yǒu)

    互相穿透不(bú)幹擾

    有(yǒu)

    互相穿透不幹擾

    有(yǒu)

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

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

    有(yǒu)

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

    有(yǒu)

    有(yǒu)

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

    有(yǒu)

    有(yǒu)

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

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

    有(yǒu)

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

    有(yǒu)

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

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

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

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

    有(yǒu)

    有(yǒu)

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

    嵌(qiàn)入時,互不幹擾

    有(yǒu)

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

    碰撞檢測,且Cube隨Sphere動

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

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

    互(hù)相穿透不幹擾(rǎo)

    互(hù)相穿透不幹擾


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


    自愉色色,亚洲色孩,jk无遮拦,日日夜夜7799天天综合,999夜夜,7799天天综合天天综合网精品视频,日日夜夜精品视频7799,天天综合7799精品影视