Newer
Older
fall / FallUnity / Assets / UI / UIFade.cs
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class UIFade : MonoBehaviour {
    public float ShowTime;
    public float FadeTime;
    public SpriteRenderer Sprite;

    public GameObject ToPosition;
    public Camera Camera;
    public enum Position
    {
        BottomLeft,
        BottomRight
    }
    public Position PositionIn;

    private SimpleTimer waitTimer;
    private SimpleTween fadeTween;
	// Use this for initialization
	void Start () {
        waitTimer = new SimpleTimer();
        fadeTween = new SimpleTween();
        waitTimer.Start(ShowTime, Fade);

        if (ToPosition != null && Camera != null)
        {
            Vector3 pos = ToPosition.transform.position;
            switch (PositionIn)
            {
                case Position.BottomLeft:
                    pos.x = Camera.transform.position.x - Camera.orthographicSize * Camera.aspect;
                    break;
                case Position.BottomRight:
                    pos.x = Camera.transform.position.x + Camera.orthographicSize * Camera.aspect;
                    break;
            }
            
            pos.y = Camera.transform.position.y - Camera.orthographicSize;
            ToPosition.transform.position = pos;
        }
	}

    private void Fade()
    {
        fadeTween.Init(v =>
        {
            Color c = Sprite.color;
            c.a = v;
            Sprite.color = c;
        }, SimpleTween.EaseLinear, 1, 0, FadeTime);
        fadeTween.OnFinish = () => Destroy(gameObject);
    }
}