U3D自定义滑动面板ViewPager

来源:互联网 发布:明底线知敬畏演讲稿 编辑:程序博客网 时间:2024/05/18 16:37
public class ViewPager : MonoBehaviour ,IDragHandler,IEndDragHandler,IPointerDownHandler{    [SerializeField]    private float dragSpeed = 10;    [SerializeField]    private float offetSpeed = 1;    private Transform[] childTFArray;    private Vector3 beginPosition;    void Start () {        childTFArray = new Transform[this.transform.childCount];        for(int i = 0;i < this.transform.childCount;i++)            childTFArray [i] = this.transform.GetChild (i);    }    public void OnPointerDown (PointerEventData eventData)    {        beginPosition = this.transform.position;    }    void Update () {    }    public void OnDrag (PointerEventData eventData)    {        this.transform.Translate (eventData.delta.x * dragSpeed * Time.deltaTime,0,0);    }    private int index = 0;    public void OnEndDrag (PointerEventData eventData)    {        Vector3 move = this.transform.position - beginPosition;//获取滑动距离        if (Mathf.Abs (eventData.delta.x) > offetSpeed || move.magnitude > Screen.width / 2) {            if (move.x < 0)                index++;            else                index--;            index = Mathf.Clamp (index, 0, childTFArray.Length-1);限制页面索引        }        Vector3 target =  this.transform.position + this.transform.parent.position - childTFArray[index].position;        this.transform.position = target;    }}
0 0
原创粉丝点击