1.在Canvas下新建一個空對象作為我們的搖桿,命名為Joystick。
搖桿由背景和桿兩部分組成,所以在Joystick下新建一個Image作為搖桿的背景,命名為BG。
在BG下新建一個Image作為搖桿的桿,命名為stick,背景和桿的位置和顏色自行調整,結構如下。
2.為BG和stick的Source Image屬性添加一個圓形圖片,或使用自己准備的素材。
3.新建腳本文件“Joystick”,並掛在Joystick上。
4.在腳本中添加“using Unity Engine.UI;”,並使腳本繼承自ScrollRect,然后就可以直接使用ScrollRect中的屬性了!
5.返回unity界面看看多了哪些屬性,
將Elasticity屬性設置成0,拖動搖桿時人物移動,松開搖桿時人物就要立刻停止移動,就是說松開桿時,桿要立刻復位,Elasticity設置成0時桿就會立刻復位,數值越大復位的速度越慢。
如上圖所示,我們需要將BG拖到Viewport上,把stick拖到Content上,此時如果運行項目會發現搖桿已經可以拖動了。
6.我先說明一下腳本中會用到的兩個屬性,如下圖:
知道了背景寬度也就知道了背景的半徑,我們需要把桿的移動范圍控制在半徑之內。
然后我們將桿的位置賦值給一個向量,通過在外界調用這個向量也就得到了桿的移動方向,有了這個方向也就有了人物的移動方向,代碼如下:
7.需要注意掛載搖桿腳本的對象的位置要設置成(0,0),因為content的局部坐標是以掛載搖桿腳本的對象的位置為基准的。
8.在控制人物移動的代碼如下:
joystick.stickPos表示桿的移動方向。