一. 碰撞
物體都會自帶一個碰撞的元件,建立一個平面和球體可以發現都有一個“Collider”的元件。
把球體“Collider”的Y軸調高可以看到有一個綠色的外框,這個就是物件的碰撞器,顧名思義,物件的碰撞只受到這個框的影響,產生碰撞的條件就是兩個物件都要有碰撞箱。
接下來就到了實驗的時候,在unity應用商店下載一個火焰的模組,並且給它添加“rigidbody”和“Collider”,這樣只要運行它就會掉下來。
掉下來有點普通了,我想要做出類似爆炸的效果,也就是說讓它掉下來之後消失,建立一個空腳本“FireTest”,並且把腳本掛到火焰特效上。進入腳本後,寫一段監聽發生碰撞的腳本。
另外還有兩個沒那麼常用的監聽碰撞,一個是監聽是否持續碰撞,另一個是監聽結束碰撞,不過主要是上面那個比較常用。
由於找不到爆炸的素材,腳本裡的爆炸體和物件的爆炸效果就不寫了,就寫物件消失模擬爆炸之後的結果。
二. 觸發
建立一個平面和叫做“Player”的膠囊,並把前面的移動腳本掛上去,並且添加“Chacter Controller”,這樣圓柱體就可以移動了,不過攝影機的視角不太好。
這裡就可以補充一個小知識,想要“場景”和“遊戲”的攝影機視角保持一致可以再“GameObject”這裡找到“對齊視圖”,這樣就可以讓上下的攝影機視角一致了
接著建立一個紅色的材質和立方體,然後把材質拖到兩個物件上,同時為兩個物件添加“rigidbody”和“Collider”元件,這樣就高亮個兩個能夠進行碰撞的物件。
接下來要模擬在遊戲中走到某一區域,就會自動觸發機關,所以接下來就讓人物的碰撞箱和墻的碰撞箱接觸,接著讓墻消失,就能做出自動門的效果,不過碰撞和觸發還有一點小區別,觸發需要把其中一個物件的屬性設置為觸發器。
接下來在角落建立一個立方體,並且把它隱藏起來,也就是玩家視角看不見,但是碰撞箱還是存在,這樣看起來才像是一個自動機關,最後別忘了加上觸發器。
但是怎麼監聽觸發呢?接下來建立空腳本“CubeControl”並把它掛到觸發方塊上,而且同樣有三個觸發方法。
用程式碼檢測是否觸發碰撞,如果有的話就移除墻。
可以看到立方體碰到了觸發器導致墻消失了。