版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
using UnityEngine;
using UnityEngine.UI;
public class Script_05_05 :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;
//contentPostion.magnitude 计算滑动摇杆的长度,需要让摇杆保持在圆形区域内
if (contentPostion.magnitude > mRadius){
contentPostion = contentPostion.normalized * mRadius; //contentPostion.normalized表示摇杆的单位向量,contentPostion:最终位置
SetContentAnchoredPosition(contentPostion);
}
}
}