Unity 3D 碰撞觸發(fā)實(shí)踐案例

2020-07-15 10:00 更新

碰撞體需要和剛體一起作用來(lái)產(chǎn)生碰撞。

如果兩個(gè)剛體撞在一起,物理引擎不會(huì)計(jì)算碰撞,除非它們包含一個(gè)碰撞體組件。

沒(méi)有碰撞體的剛體會(huì)在物理模擬中相互穿透。

案例設(shè)計(jì)

本案例在 Unity 3D 內(nèi)創(chuàng)建一個(gè)簡(jiǎn)單的三維場(chǎng)景,場(chǎng)景內(nèi)放有 SpherePlanePlane 用于充當(dāng)?shù)孛妫?code>Sphere 用于做碰撞測(cè)試,當(dāng)人物與 Sphere 距離足夠近時(shí)發(fā)生碰撞,小球消失。

![](https://atts.w3cschool.cn/attachments/image/20200715/1594778383989575.gif)

案例實(shí)施

  1. 創(chuàng)建平面(0,0,0,)和小球(0,1,0),將小球置于平面上方。

  1. 執(zhí)行 AssetsImport PackageCustomer Package 命令添加第一人稱(chēng)資源。

  1. 選中第一人稱(chēng)資源后單擊 Import 按鈕導(dǎo)入。

由于第一人稱(chēng)資源自帶攝像機(jī),我們需要關(guān)掉場(chǎng)景中的攝像機(jī)。

  1. 在 Project 視圖中搜索 first person controller,將其添加到 Hierarchy 視圖中,并擺放到平面上合適的位置。

  1. 選中 Cube,為 Cube 對(duì)象添加 Box Collider,并勾選 Is Trigger 屬性。

  1. 編寫(xiě)腳本 "Colliders.cs"。

    using UnityEngine;
    using System.Collections;
    public class Colliders:MonoBehaviour{
        void OnTriggerEnter(Collider other){
            if(other.tag=="Pickup"){
                Destroy(other.gameObject);
            }
        }
    }

  1. Colliders 腳本鏈接到 first person controller 上。

  1. Cube 添加標(biāo)簽 Pickup。

  1. 運(yùn)行測(cè)試。

可以發(fā)現(xiàn),當(dāng)人物靠近立方體盒子后,盒子會(huì)立刻消失。

以上為第一人稱(chēng)視角。

以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)