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;
}
}