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

更新於 發佈於 閱讀時間約 4 分鐘

觸發器(Trigger) 是碰撞器(Collider) 的另一種型態,可製作不同的互動方式。

那我們就來看Trigger的練習吧

raw-image

新建一個CUBE,一樣新增一個腳本給他~,命名EntranceTrigger

腳本打下剛剛測試的,確認可以正常運作
private void OnTriggerEnter(Collider Entrance)

{

if (Entrance != null)

{

Debug.Log("玩家已進來入口");

}

}

private void OnTriggerStay(Collider Entrance)

{

if (Entrance != null)

{

Debug.Log("玩家進來入口ING");

}

}

private void OnTriggerExit(Collider Entrance)

{

if (Entrance != null)

{

Debug.Log("玩家已離開入口");

}

}

raw-image


不要只跑文字,來點色彩變化ㄅ🌈🌈🌈🌈🌈🌈

宣告色彩變數

public Color colorIn;

public Color colorOut;

public Renderer rend;

raw-image

再新增下方反白字

private void OnTriggerEnter(Collider Entrance)

{

if (Entrance != null)

{

Debug.Log("玩家已進來入口");

rend.material.color = colorIn;

}

}

private void OnTriggerStay(Collider Entrance)

{

if (Entrance != null)

{

Debug.Log("玩家進來入口ING");

}

}

private void OnTriggerExit(Collider Entrance)

{

if (Entrance != null)

{

Debug.Log("玩家已離開入口");

rend.material.color = colorOut;

}

}

raw-image


在外面介面就可以調顏色ㄌ colorIn&colorOut

raw-image
raw-image


最後來一個變化 這個也是Unity其中一個方法,A-B-A漸變顏色

我們把它放在OnTriggerStay裡面,要讓它持續變化,

前面別忘了宣告一個變數給他

public float duration = 1.0f;


float lerp = Mathf.PingPong(Time.time, duration) / duration;

rend.material.color = Color.Lerp(colorIn, colorOut, lerp);

raw-image

##大家如果在Unity的腳本有看到math.#@%的通常都是特殊運算哦!!!

Mathf.PingPong(Time.time, duration)

Mathf.PingPong會在0到指定時間間隔內來回彈跳,可以用來控制一些週期性變化的效果,比如顏色在兩值之間變化。

Time.time 表示遊戲運行的時間,而 duration 則是你設定的時間間隔。Time.time會隨著遊戲的運行而增加,比如從 0 開始。而 duration 則是我們指定的一個時間範圍,比如 2 秒,當 Time.time 遞增時,Mathf.PingPong(Time.time, duration) 的返回值會在 0 到 2 之間來回彈跳

我們將 Mathf.PingPong(Time.time, duration) 的返回值賦值給 lerp 變數,得到的 lerp 就會在 0 到 2 之間來回彈跳。但通常在顏色過渡的情況下,希望 lerp 的值在 0 到 1 之間來回變化,因為 Color.Lerp 函數接受的參數是 0 到 1 之間的值,0 表示一個顏色的起始值,1 表示結束值,0.5 表示中間值。


所以為了讓 lerp 的值在 0 到 1 之間來回變化,我們需要將 lerp 除以 duration。因為 lerp 的範圍是 0 到 2,而 duration 是我們指定的時間範圍,比如 2 秒,當我們將 lerp 除以 duration 時,就把 lerp 的範圍限制在了 0 到 1 之間,這樣就可以作為 Color.Lerp 函數的參數使用,實現順暢的顏色過渡效果。


當 lerp 為 0 時,顏色會是 colorIn;當 lerp 為 1 時,顏色會是 colorOut

當角色進去物體內並觸發後,就會開始漸層閃爍囉~~


這就是Collider 跟Trigger 的小應用啦~~~~
恭喜大家

avatar-img
4會員
20內容數
Gavin Hsieh ㄉ基地
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~