初心者培訓班 - Unity基本觀念

Unity基本功(3) – Input 玩家指令輸入

※中肯辭典

(註:有別於官方文件上的嚴謹說明,在此以工程師的角度來簡短說明此元素的特質與使用時機。)

讓遊戲實際可以遊玩的關鍵,可分為滑鼠操控、鍵盤操控、手機螢幕觸碰三大類。



這一篇要說的是如何讓角色根據玩家的行為產生相對應的動作,會有比較多的程式碼介紹,請大家先做好心理準備XD

 

螢幕快照 2017-07-04 上午2.41.30.png

簡單可以歸納成這兩種指令:

Input.GetKey是用在鍵盤輸入

Input.GetMouseButton是用在滑鼠輸入,手機觸碰也適用這個函式。

而這兩者又有 一般, Down, Up的差別

代表的是持續按著、按下的瞬間、放開的瞬間三種不同的判定時機。

其中MouseButton(0)代表滑鼠左鍵,MouseButton(1)代表滑鼠右鍵,而Keycode後面可以接非常多的按鍵類別,詳請可以參考官方Document的說明,或是自己在打Code的時候跟著智慧輸入建議找出自己要的。

https://docs.unity3d.com/ScriptReference/KeyCode.html



重要說明:

Input.GetMouseButton不管你點擊的是畫面上的哪裡,都會被觸發,類似「點擊任何處繼續」的功用。

所以以上兩種程式碼,不論你把Script放在哪個物件上,達到的效果都是一樣的。

 

問:如果我今天想要做的程式是「當我滑鼠點到小雞身上時,做特定的事情」,該怎麼辦呢?

如果我們希望把點擊的區塊區隔開來,就要用創造一個函數叫做OnMouseDown()

螢幕快照 2017-07-04 上午2.51.42.png

這個Function和上一篇提到的OnCollisionEnter是Unity的固定用法,注意名字要正確,不然不會有效果!

使用這個Function的前提是:掛著這個Scirpt的物件要有Collider。

螢幕快照 2017-07-04 上午2.54.57.png

如圖,OnMouseDown()的判定範圍是根據Collider的範圍來決定的,只有點在綠色框框內才會觸發到這個函式,這一點需要特別注意。

同樣的,這個Function也適用於手機App觸碰,而且還蠻常被使用到的。但是這樣的方法並不支援手機同時多點觸碰。關於多點觸碰的教學有些複雜,我會考慮再未來的進階文章中加入XD

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s