【Unity3D】UGUI虛擬搖桿,最簡單實現方式。


1、創建兩個Image,修改第一個Image名稱為 Background,把第二個Image放入 Background 下 結構如下:

2、Background 的圖片設置為 Back_04,把 Background 下的 Image 設置為  Joystick_04 效果如下:

            

3、代碼

 1 using System.Collections;
 2 using System.Collections.Generic;
 3 using UnityEngine;
 4 using UnityEngine.EventSystems;
 5 using UnityEngine.UI;
 6 
 7 public class ScrollCircle : ScrollRect
 8 {
 9     // 半徑
10     private float _mRadius = 0f;
11 
12     // 距離
13     private const float Dis = 0.5f;
14 
15     protected override void Start()
16     {
17         base.Start();
18 
19         // 能移動的半徑 = 搖桿的寬 * Dis
20         _mRadius = content.sizeDelta.x * Dis;
21     }
22 
23     public override void OnDrag(PointerEventData eventData)
24     {
25         base.OnDrag(eventData);
26             
27         // 獲取搖桿,根據錨點的位置。
28         var contentPosition = content.anchoredPosition;
29 
30         // 判斷搖桿的位置 是否大於 半徑
31         if (contentPosition.magnitude > _mRadius)
32         {   
33             // 設置搖桿最遠的位置
34             contentPosition = contentPosition.normalized * _mRadius;
35             SetContentAnchoredPosition(contentPosition);
36         }
37 
38         // 最后 v2.x/y 就跟 Input中的 Horizontal Vertical 獲取的值一樣 
39         var v2 = content.anchoredPosition.normalized;
40     }
41 }

4、最后把 ScrollCircle 放到 Background 上,把Image拖入content中,完成。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM