※中肯辭典
(註:有別於官方文件上的嚴謹說明,在此以工程師的角度來簡短說明此元素的特質與使用時機。)
讓遊戲實際可以遊玩的關鍵,可分為滑鼠操控、鍵盤操控、手機螢幕觸碰三大類。
這一篇要說的是如何讓角色根據玩家的行為產生相對應的動作,會有比較多的程式碼介紹,請大家先做好心理準備XD
簡單可以歸納成這兩種指令:
Input.GetKey是用在鍵盤輸入
Input.GetMouseButton是用在滑鼠輸入,手機觸碰也適用這個函式。
而這兩者又有 一般, Down, Up的差別
代表的是持續按著、按下的瞬間、放開的瞬間三種不同的判定時機。
其中MouseButton(0)代表滑鼠左鍵,MouseButton(1)代表滑鼠右鍵,而Keycode後面可以接非常多的按鍵類別,詳請可以參考官方Document的說明,或是自己在打Code的時候跟著智慧輸入建議找出自己要的。
https://docs.unity3d.com/ScriptReference/KeyCode.html
重要說明:
Input.GetMouseButton不管你點擊的是畫面上的哪裡,都會被觸發,類似「點擊任何處繼續」的功用。
所以以上兩種程式碼,不論你把Script放在哪個物件上,達到的效果都是一樣的。
問:如果我今天想要做的程式是「當我滑鼠點到小雞身上時,做特定的事情」,該怎麼辦呢?
如果我們希望把點擊的區塊區隔開來,就要用創造一個函數叫做OnMouseDown()。
這個Function和上一篇提到的OnCollisionEnter是Unity的固定用法,注意名字要正確,不然不會有效果!
使用這個Function的前提是:掛著這個Scirpt的物件要有Collider。
如圖,OnMouseDown()的判定範圍是根據Collider的範圍來決定的,只有點在綠色框框內才會觸發到這個函式,這一點需要特別注意。
同樣的,這個Function也適用於手機App觸碰,而且還蠻常被使用到的。但是這樣的方法並不支援手機同時多點觸碰。關於多點觸碰的教學有些複雜,我會考慮再未來的進階文章中加入XD