天津23维预案
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

65 lines
1.2 KiB

using UnityEngine;
using System.Collections;
namespace UIWidgets
{
[RequireComponent(typeof(RectTransform))]
/// <summary>
/// Slide up. Helper component for Notify.
/// </summary>
public class SlideUp : MonoBehaviour
{
public bool UnscaledTime;
RectTransform rect;
void Awake()
{
rect = transform as RectTransform;
}
/// <summary>
/// Start animation.
/// </summary>
public void Run()
{
StartCoroutine(StartAnimation());
}
IEnumerator StartAnimation()
{
yield return StartCoroutine(AnimationCollapse());
gameObject.SetActive(false);
}
void OnDisable()
{
Notify.FreeSlide(rect);
}
IEnumerator AnimationCollapse()
{
var max_height = rect.rect.height;
var speed = 200f;//pixels per second
var time = max_height / speed;
var end_time = GetTime() + time;
while (GetTime() <= end_time)
{
var height = Mathf.Lerp(max_height, 0, 1 - (end_time - GetTime()) / time);
rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, height);
yield return null;
}
//return height back for future use
rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, max_height);
}
float GetTime()
{
return UnscaledTime ? Time.unscaledTime : Time.time;
}
}
}