一般地,虛擬搖桿是放在ui層的。
所以先在canvas建立乙個空物件(這裡被命名成movecontroller),再在空物件裡面放乙個作為搖桿的image。
然後通過覆蓋重寫unityengine.ui的scrollrect成乙個新的指令碼,載入到image物件上。
指令碼**:
1在unity面板調好指令碼屬性(如下圖示例),然後將image拖到指令碼的content屬性裡using
system.collections;
2using
system.collections.generic;
3using
unityengine;
4using
unityengine.ui;
5using
unityengine.eventsystems;67
public
class
movecontroller : scrollrect
1819
//拖動時
20public
override
void
ondrag(unityengine.eventsystems.pointereventdata eventdata)
2131
//獲取拖動的delta值 (-132 movedelta.x = contentpostion.x/mmaxradius;
33 movedelta.y = contentpostion.y/mmaxradius;
34//
表示正在移動搖桿
35 ifmove = true;36
}3738public
void
update()
3943
44//
當結束拖動時
45public
override
void
onenddrag(pointereventdata eventdata)
4656 }
我們可能還需要額外的公開變數放在movecontroller裡面,以便在unity面板呼叫除錯。
但是由於movecontroller指令碼是覆蓋於scrollrect的,無論你在movecontroller指令碼裡寫多少公開的成員變數。
在unity的面板顯示的永遠是scrollview的面板。
這時候可以額外寫多乙個輔助指令碼,間接訪問movecontroller,從而讓公開變數可以在面板除錯。
(如下圖的movecontroller_callback示例)
Unity實現簡單虛擬搖桿
簡單的unity虛擬搖桿實現,有詳細注釋。game介面 inspector介面 搖桿指令碼 public class yaoganctrl monobeh iour,ibe程式設計客棧gindraghandler,程式設計客棧idraghandler,ienddraghandler public v...
Unity虛擬搖桿的實現方法
設定搖桿的背景的錨點如下 設定搖桿的錨點為背景的中心點。並給搖桿繫結指令碼如下 using unityengine using unityengine.eventsystems using system.collections using system public class joystickco...
用unity的UGUI實現簡單搖桿
1.在canvas下新建乙個空物件作為我們的搖桿,命名為joystick。搖桿由背景和杆兩部分組成,所以在joystick下新建乙個image作為搖桿的背景,命名為bg。在bg下新建乙個image作為搖桿的杆,命名為stick,背景和杆的位置和顏色自行調整,結構如下。2.為bg和stick的sour...