//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Friday, September 15, 2017
|
//--------------------------------------------------------
|
using UnityEngine;
|
using System.Collections;
|
using UnityEngine.UI;
|
using System;
|
|
|
namespace vnxbqy.UI
|
{
|
|
public class NewItemGetBehaviour : MonoBehaviour
|
{
|
[SerializeField] ItemBehaviour m_ItemBehaviour;
|
[SerializeField] UIAlphaTween m_AlphaTween;
|
[SerializeField] ScaleTween m_ScaleTween;
|
|
[SerializeField] float m_Duration = 1f;
|
public float duration { get { return m_Duration; } }
|
|
Vector3 targetPosition;
|
Vector3 startPosition;
|
Action endCallBack = null;
|
|
float timer = 0f;
|
float endTime = 0f;
|
|
public void Begin(Item _item, Vector3 _from, Vector3 _to, Action _callBack)
|
{
|
startPosition = _from;
|
targetPosition = _to;
|
endTime = Time.time + duration;
|
|
m_ItemBehaviour.SetItem(_item);
|
|
this.SetActive(true);
|
this.transform.localPosition = startPosition.SetZ(0);
|
|
m_AlphaTween.Play();
|
m_ScaleTween.Play();
|
endCallBack = _callBack;
|
}
|
|
private void LateUpdate()
|
{
|
if (Time.time < endTime)
|
{
|
timer = duration - (endTime - Time.time);
|
var t = timer / duration;
|
this.transform.localPosition = Vector3.Lerp(startPosition, targetPosition, t);
|
}
|
else
|
{
|
this.SetActive(false);
|
|
if (endCallBack != null)
|
{
|
endCallBack();
|
endCallBack = null;
|
}
|
}
|
|
}
|
|
}
|
|
}
|