ScrollContentMoveLimit.cs 957 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using UnityEngine;
  2. using System.Collections;
  3. public class ScrollContentMoveLimit : MonoBehaviour
  4. {
  5. RectTransform rectTrans;
  6. public Vector2 limit;
  7. Vector3 pos = Vector3.zero;
  8. UIImageMoveDiffSpeed[] moveComs;
  9. // Use this for initialization
  10. void Start()
  11. {
  12. rectTrans = GetComponent<RectTransform>();
  13. pos = rectTrans.anchoredPosition;
  14. moveComs = transform.parent.GetComponentsInChildren<UIImageMoveDiffSpeed>();
  15. foreach(var com in moveComs)
  16. {
  17. com.Init();
  18. }
  19. }
  20. // Update is called once per frame
  21. void Update()
  22. {
  23. float x = rectTrans.anchoredPosition.x;
  24. x = Mathf.Clamp(x, limit.x, limit.y);
  25. pos.x = x;
  26. float process = (float)(pos.x - limit.x) / (limit.y - limit.x);
  27. foreach (var com in moveComs)
  28. {
  29. com.UpdatePos(process, limit);
  30. }
  31. rectTrans.anchoredPosition = pos;
  32. }
  33. }