簡介
當我們透過Unity3D來製作2D的介面時,除了每個功能、每個按鈕要到哪一頁等等的頁面轉換,必須要照著IxD的流程來做,為了要增加介面的活潑程度,可以在按鈕的GUI、頁面轉換動畫等等的地方著墨,在這篇我想分享的是亦可透過滑鼠的滑入來讓物件有所活潑的動作。
實操
先講講我的想法,我想透過物件的collider來觸發動畫,而觸發者物件會跟隨著滑鼠的移動,當觸發者碰觸到被觸發者即刻執行型變的Function。
所以在場景中我們就要先新增觸發者與被觸發者的GameObject,首先先設定被觸發者。
上圖就是被觸發者的物件Component設定,由於我想要用collider來觸發,所以最重要的就是要將collider附著上去,且我們現在是製作2D介面,所以Unity3D除了提供3D的Collider之外,也有提供2D的,這邊我選用『Box Collider 2D』,在參數設定要把『Is Trigger打勾』、『設定Collider觸發範圍』,這邊我使用Auto Tiling,依照物件長寬自動佈局。
而第二個重要的當然就是觸發後要做什麼事情,這邊就又要透過Script來處理之。我們先新增一個Script附著上去吧。
這邊我就用到collider專屬的函式,而且是2D版本(3D版本不會出現2D的字),在上圖中我引用到當滑鼠滑進去、滑鼠在觸發區內、滑鼠離開觸發器三種狀態,而每種狀態則會讓被觸發者進行不同的形變。
講完被觸發物件後,接著要講跟隨著滑鼠的觸發器物件設定,觸發器也要給他Box Collider 2D之外,並且要給他一個2D的剛體(Rigidbody 2D),並要給他一個Script讓該物件可以跟隨著滑鼠。
在這邊的collider不需要將『Is Trigger』打勾,將『Auto Tiling』打勾,而『Rigidbody』直接新增先不需做任何設定即可,我們最後來看到Script要塞什麼吧。
觸發者要時時跟隨著滑鼠的話,就要依照Unity3D提供生命週期中『Update』讓他每一幀都執行之,而可以看到上圖,有一個重點就是『Input.mousePosition』,讓該物件會跟隨著滑鼠的位置,如此一來就設定完成可以直接測試了。
小結
我們可以看到上面的Demo影片,其實這是一個很簡單卻可以讓整個UI不會顯得太呆板,並可以提醒使用者,你碰到該物件了,我們只要做一些小設定與程式的安排,就可以達到該效果。大家也可以嘗試製作更多被出發後的效果,可能是觸發Animation、變色、音效等等的提醒使用者效果。