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