using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; public class yaogan : ScrollRect { //继承滑块类 private float r;//能移动的距离 private Vector2 a;//当前位置 public Vector2 b;//相对于父对相 红色摇杆的座标 // Use this for initialization void Start () { r = (transform as RectTransform).sizeDelta.x * 0.5f;//能移动的距离是摇杆宽的一半 } public override void OnDrag(PointerEventData eventData)//override是可以重写继承类的函数 { base.OnDrag(eventData); //父对象的拖拽事件 ,父对象是指ScrollRect 类,这里的效果是拖拽后松开就会回到原位置 a = content.anchoredPosition; //保存当前位置相对于锚点的距离 if (r < a.magnitude) //判断摇杆的位置是感觉大于半径 { // 设置摇杆最远的位置 a = a.normalized * r; SetContentAnchoredPosition(a); } } // Update is called once per frame void Update () { b = content.localPosition;//获取摇杆相对于父物体的坐标,可以在其它脚本中调用控制其它物体移动 } }
网友评论