基于Unity3D ScrollRect的游戏摇杆实现
ScrollRect是UGUI提供的基础拖动组件,给它的Content绑定一个滑块就能工作了。如图
代码如下:
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class Example : ScrollRect {
protected float mRadius = 0f;
protected override void Start()
{
base.Start();
mRadius = (transform as RectTransform).sizeDelta.x * 0.5f;
}
public override void OnDrag(PointerEventData eventData)
{
base.OnDrag(eventData);
var contentPosition = this.content.anchoredPosition;
if (contentPosition.magnitude > mRadius)
{
contentPosition = contentPosition.normalized * mRadius;
SetContentAnchoredPosition(contentPosition);
}
}
private void Update()
{
Debug.Log(content.anchoredPosition/ mRadius);
}
}