Unity3D Fade Inverse Sprite

FadeTransition — эффект затемнения или осветвления

Unity3D Fade Inverse Sprite

 

//************************************************//
//********** Author:  Dimusikus@mail.ru **********//
//********** Site:    http://midadev.ru **********//
//************************************************//
using UnityEngine;
using System.Collections;

public enum FadeDirection
{
    In = -1,            // Fade In
    Out = 1             // Fade Out
}

//Затемнятор осветвлятор экрана
public class FadeTransition : MyMonoBehaviour
{

  [Header("Затемнятор осветвлятор экрана")] 
    [SerializeField] public float m_FadeTime = 0.5f;


    private int m_DrawDepth = -1000;
    private Texture2D m_FadeOutTexture;
    private FadeDirection m_FadeDirection = FadeDirection.In;
    private float m_CurrentAlphaColor = 1.0f;
    private float m_StartTime;

  //-----------------------------------------------------------------------------------------
  void Start()
  {
        m_FadeOutTexture = new Texture2D(2, 2);

        for (var mip = 0; mip < 2; ++mip)
        {
            for (var cols = 0; cols < 2; ++cols)
            {
                m_FadeOutTexture.SetPixel(cols, mip, Color.black);
            }
        }

        m_FadeOutTexture.Apply();
  }
  //-----------------------------------------------------------------------------------------
  void OnGUI()
  {
    
    if (m_FadeDirection == FadeDirection.Out)
            m_CurrentAlphaColor = Mathf.Lerp(0.0f, 1.0f, ((Time.time - m_StartTime) / m_FadeTime));
        else
            m_CurrentAlphaColor = Mathf.Lerp(1.0f, 0.0f, ((Time.time - m_StartTime) / m_FadeTime));

        GUI.color = new Color(GUI.color.r, GUI.color.g, GUI.color.b, m_CurrentAlphaColor);
        GUI.depth = m_DrawDepth;
        GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height), m_FadeOutTexture);

  
  }
  //-----------------------------------------------------------------------------------------
  public float BeginFade(FadeDirection fadeDirection)
  {
        m_StartTime = Time.time;
        m_FadeDirection = fadeDirection;
        return m_FadeTime;
  }    
    
  //-----------------------------------------------------------------------------------------
  public void FadeIn()
  {
    BeginFade(FadeDirection.In);
  }
  //-----------------------------------------------------------------------------------------
  public void FadeOut()
  {
    BeginFade(FadeDirection.Out);
  }
  //-----------------------------------------------------------------------------------------
  public void FadeInverse()
  {
    if(m_FadeDirection==FadeDirection.In)
    { 
      BeginFade(FadeDirection.Out);
      return;
    }

    if(m_FadeDirection==FadeDirection.Out)
    {
      BeginFade(FadeDirection.In);
      return;
    }
  }

}

 

Трекбэк с Вашего сайта.

Дмитирй

This information box about the author.

Оставить комментарий

Вы должны войти чтобы оставить комментарий.

Offcanvas

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.