當時的手機霸主諾基亞也曾輝煌過,但現在已經逐漸退出了人們的視線,因為它沒有跟上潮流,IT世界發展瞬息萬變,正因為它沒有迎合時代發展,是以就逐漸被淘汰。在諾基亞時代,手機都是按鍵式的,但自從出現了Android系統,各種智能機都如雨後春筍般湧出,往大螢幕,無按鍵的趨勢發展,是以各種手機應用隻能用虛拟的,比如虛拟按鈕,虛拟鍵盤,虛拟搖杆等等。繼續之前做的小龍遊戲的設計,然後就想到點選螢幕執行小龍飛躍的操作,然後就想到unity中FingerGesture插件。然後去搜尋這個插件的使用,自然而言就搜到了Momo的部落格,原來他老早就研究過了這個插件,我也就順便學習一下,寫一寫學習心得!
關于Fingergesture的使用Momo的建立步驟和代碼已經寫得很詳細了,關于插件的下載下傳,他部落格也寫得很清楚,我這兒就謝謝我的個人了解和學習的一個過程!
接下來先看效果圖,不要看就一個滑鼠按下的操作,可以分解成很多過程,滑鼠按下->滑鼠按住->滑鼠彈起,這很有當年開發單片機的感覺,有相似過程,單片機上的按鈕會出發0-1高低電頻,比如沒按住是高電平,按下是低電平,一直按住就一直處于低電平的狀态,然後LED燈管就能一直亮,然後再松開又回到高電平,LED燈滅,這電頻變化的一瞬間有一個觸發方式,邊沿觸發,呵呵,似乎是扯遠了,但其實原理有類似的地方!
提醒一下,我點選的左下角,看到螢幕的坐标原點其實是以左下角為原點的,這就是OpenGL坐标的原點規定!
滑動的分解過程:按下->按下事件開始->按下中->滑動開始->滑動中->滑動結束->判斷滑動方向
我們就通過F12來檢視FingerGestures插件方法實作的原理,就拿FingerGestures.OnFingerDown+= OnFingerDown;這行代碼來舉例子:
首先FingerGestures是一個類,作者自定義的一個手勢插件的類,真佩服能寫插件的人,這才是真大牛!還是先看一下幾個腳本的含義
嵌套定義得不可謂不複雜,呵呵!
FingerGestures.OnFingerDown,F12檢視一下這個OnFingerDown是一個啥東東,會發現
這其實就是一個事件的申明,看英文注釋就知道是個Event,其實也看不出什麼,重點是在這個FingerDownEventHandler,繼續F12
這是一個委托類型的聲明,兩個參數什麼意思寫的很明顯,不解釋!
然後來看一下OnFingerDown這個我們自己自定義的方法,這用+=連接配接起來,其實就是多點傳播委托的一種文法模式,一個委托能夠執行多個方法,就像小明媽媽委托小明先去買菜,這是一個方法吧,然後買完菜去洗菜,然後做菜等等就是這種+=的形象解釋。
當然結束的時候要将方法給-=掉,不然小明會生氣了,心中不滿,媽媽你總是老叫我做個不停呀,哈哈!這就是OnDisable()中為什麼要-=的一個解釋!
事件指向自己自定義的方法,但前提是參數必須要一樣,就是你所委托的這個人要能完成你的事情,打個形象的比喻,你不能叫一個剛出生的小孩去打醬油吧,呵呵,就是這個道理!這下你感覺對委托和事件是一個什麼關系應該更加深刻了吧!
==================== 迂者 丁小未 CSDN部落格專欄=================
Unity QQ群:375151422,858550,63438968
cocos2dx QQ群:280818155
====================== 互相學習,共同進步 ===================