2024 虛擬實境 x 人因設計 08unity碰撞器Collider&Trigger-2(應用)

更新於 發佈於 閱讀時間約 5 分鐘
raw-image
raw-image

來比較這4個方塊附屬的屬性有什麼不同


來做個簡單的小練習ㄅ

先來個Collider

建一個等等跟椅子互動的物件(Sphere),並給他一個材質區分顏色

raw-image


建一個腳本附在物件(Sphere)上,命名腳本*SphereCollider*

在裡面新建一個方法

raw-image

private void OnCollisionEnter (Collision Sphere)

{

if (Sphere != null)

{

Destroy(gameObject);

}

}


private void OnCollisionEnter(Collision Sphere)

    • 一個私有(private)的方法,當物體發生碰撞時會被使用。
    • Collision Sphere 是表示碰撞資訊的物件,其中包含了有關碰撞事件的詳細資訊,比如碰撞的對象、碰撞點等等。

if (Sphere != null)

    • 一個條件判斷,確保碰撞的對象不為空(null)。
    • 如果 Sphere 不是空,代表碰撞的對象是有效的球體(Sphere)。

Destroy(gameObject)

    • 如果碰撞的對象是有效的球體(Sphere),則使用 Destroy 函數來刪除當前的物件(gameObject)。
    • gameObject 代表當前腳本所附加的物件,也就是發生碰撞的物件本身。

功能是在物體發生碰撞時,檢查碰撞的對象是否是一個有效的球體(Sphere),如果是的話,就銷毀(Destroy)當前物件(gameObject)。

raw-image

BEFORE V.S. AFTER

這是被碰到的物件後會消除的情況


那來看另外一個情況,碰到的物件後會消除主角本身。

再建一個腳本附在物件(Sphere)上,命名腳本*SphereCollider01*

raw-image

private void OnCollisionEnter (Collision SSphere)

{

if (SSphere != null)

{

Destroy(SSphere.gameObject);

}

}


Destroy(SSphere.gameObject)

    • 如果碰撞的對象存在,則使用 Destroy 函數來銷毀碰撞對象的遊戲物件(gameObject)。 #跟SSphere 物件所關聯的遊戲物件
    • SSphere.gameObject 代表碰撞的對象的遊戲物件。

功能是在物體發生碰撞時,檢查碰撞的對象是否是一個有效的球體(Sphere),如果是的話,就銷毀(Destroy)撞到他的物件(gameObject)。

raw-image

BEFORE V.S. AFTER

家有發現現在我們球球浮在空中嘛!?

可以試看看把球加入Rigidbody屬性看看,會發生什麼事
〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️

任何物件的碰撞都會刪除物件,包括掉落到地面。😭😭😭🥺🥺

改一下物件屬性跟程式碼

物件屬性:
更改這邊Tag

raw-image

程式碼:

private void OnCollisionEnter (Collision Sphere)

{

if (SSphere != null)

if (Sphere.gameObject.tag == "Player")

{

Destroy(gameObject);

}

}

可以使用標籤判斷是否為"Player"碰撞

Tag(標籤)是 Unity 中用來識別物件類型的標記,可以幫助在程式碼中準確地辨識和處理不同類型的遊戲物件。

~~~~~這樣就不用怕掉到地板後 消失不見了~~~~


剛剛碰到深藍球球(*SphereCollider01*),玩家直接消失不見。這樣遊戲玩不下去ㄌ啦

小改一下

if (SSphere.gameObject.tag == "Player")

{

Destroy(SSphere.gameObject)

SSphere.gameObject.transform.position = new Vector3((float)-2.70630479, (float)1.68752456, (float)1.24000001);

SSphere.gameObject.transform.rotation = Quaternion.identity;

}

//這個是碰到物件後,會回到起點。

raw-image

複製物體位置 的路徑

不想一直進來一直改position那我們就設個變數吧

***所以說變數真的很重要吧***


public Transform point;

SSphere.gameObject.transform.position = point.position;

raw-image

加入一個新的空物件,可命名New position 把這個空物件再拖進剛剛的point 就完成了
你就會發現,你可以做一些效果出來了,比如說傳送門、回到原點、瞬移等等

完成了Collider的小應用ㄌ,恭喜大家🤩🤩🤩

下篇換Triggerㄉ應用~~

avatar-img
4會員
20內容數
Gavin Hsieh ㄉ基地
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
大家好,我是woody,是一名料理創作者,非常努力地在嘗試將複雜的料理簡單化,讓大家也可以體驗到料理的樂趣而我也非常享受料理的過程,今天想跟大家聊聊,除了料理本身,料理創作背後的成本。
Thumbnail
哈囉~很久沒跟各位自我介紹一下了~ 大家好~我是爺恩 我是一名圖文插畫家,有追蹤我一段時間的應該有發現爺恩這個品牌經營了好像.....快五年了(汗)時間過得真快!隨著時間過去,創作這件事好像變得更忙碌了,也很開心跟很多厲害的創作者以及廠商互相合作幫忙,還有最重要的是大家的支持與陪伴🥹。  
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
大家好,我是woody,是一名料理創作者,非常努力地在嘗試將複雜的料理簡單化,讓大家也可以體驗到料理的樂趣而我也非常享受料理的過程,今天想跟大家聊聊,除了料理本身,料理創作背後的成本。
Thumbnail
哈囉~很久沒跟各位自我介紹一下了~ 大家好~我是爺恩 我是一名圖文插畫家,有追蹤我一段時間的應該有發現爺恩這個品牌經營了好像.....快五年了(汗)時間過得真快!隨著時間過去,創作這件事好像變得更忙碌了,也很開心跟很多厲害的創作者以及廠商互相合作幫忙,還有最重要的是大家的支持與陪伴🥹。  
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~