UGUI快速实现摇杆功能

xiaoxiao2021-02-28  33

摇杆其实就是根据移动的距离,通过一定得比例算出对象的移动方位和距离 这里我们利用UGUI提供的Scrollrect可快速拿到移动的距离获得(-1, 1)

代码如下 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; public class ScrollCircle : ScrollRect { // 半径 private float _mRadius = 0f; protected override void Start() { base.Start(); _mRadius = content.sizeDelta.x * 0.5f; } public override void OnDrag(PointerEventData eventData) { base.OnDrag(eventData); // 获取摇杆,根据锚点的位置。 var contentPosition = content.anchoredPosition; // 判断摇杆的位置 是否大于 半径 if (contentPosition.magnitude > _mRadius) { // 设置摇杆最远的位置 contentPosition = contentPosition.normalized * _mRadius; SetContentAnchoredPosition(contentPosition); } // 最后 v2.x/y 就跟 Input中的 Horizontal Vertical 获取的值一样 var v2 = content.anchoredPosition.normalized; } public override void OnEndDrag(PointerEventData eventData) { SetContentAnchoredPosition(new Vector2(0, 0)); } }
转载请注明原文地址: https://www.6miu.com/read-2629983.html

最新回复(0)