一. 前言
遊戲開發中,搖桿功能是很常見的,Unity的UGUI提供了ScrollRect
組件,非常適合用來製作搖桿,效果如下:
二. 實現
1. 製作UI
如下,創建Rocker
節點和center
節點,分別爲搖桿的背景圖和搖桿的手柄圖。
Rocker
節點掛上Rocker
腳本(代碼見文章最後),並賦值Content
對象。
設置MovementType
爲Elastic
。
2. 運行Unity進行測試
運行Unity即可測試搖桿功能。
3. Rocker腳本代碼
using UnityEngine;
using UnityEngine.UI;
public class Rocker: ScrollRect
{
protected float mRadius = 0f;
protected override void Start()
{
base.Start();
//計算搖桿塊的半徑
mRadius = (transform as RectTransform).sizeDelta.x * 0.5f;
}
public override void OnDrag(UnityEngine.EventSystems.PointerEventData eventData)
{
base.OnDrag(eventData);
var contentPostion = this.content.anchoredPosition;
if (contentPostion.magnitude > mRadius)
{
contentPostion = contentPostion.normalized * mRadius;
SetContentAnchoredPosition(contentPostion);
}
Debug.Log(contentPostion);
}
}