123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- using DG.Tweening;
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.EventSystems;
- public class RollingByTime : MonoBehaviour
- {
- public RectTransform m_RectTransform;
- public float m_ParentWidth;
- private bool m_Point;
- private Tweener m_Tweener;
- private float m_lerp;
- private float m_time;
- private float m_targetPosx;
- public void Play(float time)
- {
- m_RectTransform.localPosition = Vector3.zero;
- //if (m_RectTransform.sizeDelta.x <= m_ParentWidth) return;
- m_time = time;
- m_Point = true;
- m_lerp = 0;
- }
- public void Stop()
- {
- m_Point = false;
- m_RectTransform.localPosition = new Vector2(Mathf.Clamp(m_RectTransform.sizeDelta.x / 2 - m_ParentWidth / 2, 0, m_RectTransform.sizeDelta.x / 2), m_RectTransform.localPosition.y);
- }
- private void Update()
- {
- if (m_Point)
- {
- m_lerp += Time.deltaTime / m_time;
- float posX = Mathf.Clamp(m_RectTransform.sizeDelta.x / 2 - m_ParentWidth / 2, 0, m_RectTransform.sizeDelta.x / 2);
- m_RectTransform.localPosition = Vector2.Lerp(new Vector2(posX, m_RectTransform.localPosition.y),
- new Vector2(-posX, m_RectTransform.localPosition.y), m_lerp);
- if (m_lerp >= 1)
- {
- m_lerp= 0;
- Stop();
- }
- }
- }
- }
|