Unity3d ScreenEffects class
Greetings!
If you are like me, and leaving the UI until the end, chances are you might find this useful, its a simple Singleton that will flash or fade in a texture. Its quite rough tho!
Here is the class:
//ScreenEffects.cs
using UnityEngine;
using System.Collections;public class ScreenEffects : MonoBehaviour {
private static ScreenEffects m_Instance;
private static int curr_Effect;
private static float speed=1;
public static ScreenEffects Instance
{
get
{
if(m_Instance == null)
{
m_Instance = GameObject.FindObjectOfType(typeof(ScreenEffects)) as ScreenEffects;
if(m_Instance == null)
{
m_Instance = new GameObject(“ScreenEffectsObject”).AddComponent<ScreenEffects>();}
}
return m_Instance;
}
}private GameObject GUItextureObject;
void Awake () {
GUItextureObject = new GameObject(“GUItextureObject”);
GUItextureObject.AddComponent<GUITexture>();
}public void FlashTexture (Texture textureToFlash,float Speed) {
speed=Speed;
curr_Effect=1;
GUItextureObject.guiTexture.texture=textureToFlash;
Color colorVar = GUItextureObject.guiTexture.color;
colorVar.a = 1f;
GUItextureObject.guiTexture.color = colorVar;Rect inset = GUItextureObject.guiTexture.pixelInset;
inset.x=400;
inset.y=225;
inset.width=2000;
inset.height=2000;
GUItextureObject.guiTexture.pixelInset = inset;}
public void FlashTextureMouse (Texture textureToFlash) {
curr_Effect=1;GUItextureObject.guiTexture.texture=textureToFlash;
Color colorVar = GUItextureObject.guiTexture.color;
colorVar.a = 1f;
GUItextureObject.guiTexture.color = colorVar;Rect inset = GUItextureObject.guiTexture.pixelInset;
inset.x=Input.mousePosition.x;
inset.y=Input.mousePosition.y;
GUItextureObject.guiTexture.pixelInset = inset;}
public void FadeTextureIn (Texture textureToFlash,float Speed) {
speed=Speed;
curr_Effect=2;
GUItextureObject.guiTexture.texture=textureToFlash;
Color colorVar = GUItextureObject.guiTexture.color;
colorVar.a = 0f;
GUItextureObject.guiTexture.color = colorVar;Rect inset = GUItextureObject.guiTexture.pixelInset;
inset.x=400;
inset.y=225;
inset.width=2000;
inset.height=2000;
GUItextureObject.guiTexture.pixelInset = inset;}
void Update () {
if(curr_Effect==1)
{ if(GUItextureObject.guiTexture.color.a>0)
{
Color colorVar = GUItextureObject.guiTexture.color;
colorVar.a -= 0.01f*speed;
GUItextureObject.guiTexture.color = colorVar;
}
}
else if(curr_Effect==2)
{
if(GUItextureObject.guiTexture.color.a<1)
{Color colorVar = GUItextureObject.guiTexture.color;
colorVar.a += 0.01f*speed;
GUItextureObject.guiTexture.color = colorVar;
}
}}
}
PD: Is there a way to insert code format in here?