//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Monday, April 09, 2018
|
//--------------------------------------------------------
|
using UnityEngine;
|
using System.Collections;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
[RequireComponent(typeof(RectTransform))]
|
public class UILinerMove : MonoBehaviour
|
{
|
[SerializeField] float m_Duration;
|
public float duration {
|
get { return m_Duration; }
|
set { m_Duration = value; }
|
}
|
|
[SerializeField] Vector2 m_From;
|
public Vector2 from {
|
get { return m_From; }
|
set { m_From = value; }
|
}
|
|
[SerializeField] Vector2 m_To;
|
public Vector2 to {
|
get { return m_To; }
|
set { m_To = value; }
|
}
|
|
float timer = float.MaxValue;
|
RectTransform rectTransform { get { return this.transform as RectTransform; } }
|
|
public void Begin()
|
{
|
if (duration < 0f)
|
{
|
return;
|
}
|
|
if (!this.gameObject.activeInHierarchy)
|
{
|
Stop();
|
}
|
else
|
{
|
timer = 0f;
|
rectTransform.anchoredPosition = from;
|
}
|
}
|
|
public void Stop()
|
{
|
timer = float.MaxValue;
|
rectTransform.anchoredPosition = to;
|
}
|
|
private void OnDisable()
|
{
|
if (timer < duration)
|
{
|
Stop();
|
}
|
}
|
|
private void LateUpdate()
|
{
|
if (timer < duration)
|
{
|
timer += Time.deltaTime;
|
var t = Mathf.Clamp01(timer / duration);
|
rectTransform.anchoredPosition = Vector2.Lerp(from, to, t);
|
}
|
}
|
|
}
|
|
}
|