1. 程式人生 > >UGUI快速實現搖桿功能

UGUI快速實現搖桿功能

搖桿其實就是根據移動的距離,通過一定得比例算出物件的移動方位和距離
這裡我們利用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 = 0
f; 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)); } }