Unity 虛擬搖桿的實現

2022-01-10 17:58:16 字數 1458 閱讀 9232

一般地,虛擬搖桿是放在ui層的。

所以先在canvas建立乙個空物件(這裡被命名成movecontroller),再在空物件裡面放乙個作為搖桿的image。

然後通過覆蓋重寫unityengine.ui的scrollrect成乙個新的指令碼,載入到image物件上。

指令碼**:

1

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 }

在unity面板調好指令碼屬性(如下圖示例),然後將image拖到指令碼的content屬性裡

我們可能還需要額外的公開變數放在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...