116 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using UnityEngine;
 | 
						|
 | 
						|
[Serializable]
 | 
						|
public class LobbyDecor : MonoBehaviour
 | 
						|
{
 | 
						|
	public Lobby Lobby;
 | 
						|
	public GUITexture bg;
 | 
						|
 | 
						|
	public int logoOffset;
 | 
						|
 | 
						|
	public void Awake()
 | 
						|
	{
 | 
						|
		if (Time.time > 6f)
 | 
						|
		{
 | 
						|
			Color c = guiTexture.color;
 | 
						|
			c.a = 0;
 | 
						|
			guiTexture.color = c;
 | 
						|
		}
 | 
						|
		else if ((bool)bg)
 | 
						|
		{
 | 
						|
			bg.pixelInset = new Rect(
 | 
						|
                0f,
 | 
						|
                0f,
 | 
						|
                Screen.width,
 | 
						|
                Screen.height);
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	public void Update()
 | 
						|
	{
 | 
						|
		float width = (float)Screen.height * 0.84f;
 | 
						|
        if (width > 600f)
 | 
						|
        {
 | 
						|
            width -= (width - 600f) * 0.5f;
 | 
						|
        }
 | 
						|
		if (width > (float)(Screen.width - 30))
 | 
						|
		{
 | 
						|
			width = Screen.width - 30;
 | 
						|
		}
 | 
						|
		if (
 | 
						|
            Time.time > 1.5f &&
 | 
						|
            !Camera.main.audio.isPlaying &&
 | 
						|
            PlayerPrefs.GetInt("useMusic", 1) != 0)
 | 
						|
		{
 | 
						|
			Camera.main.audio.Play();
 | 
						|
		}
 | 
						|
 | 
						|
		if (Time.time < 5f)
 | 
						|
		{
 | 
						|
			Color bgc = bg.color;
 | 
						|
            bgc.a = 1f - Time.time / 4f;
 | 
						|
			bg.color = bgc;
 | 
						|
			if (Time.time < 2.5f)
 | 
						|
			{
 | 
						|
				Color gtc = guiTexture.color;
 | 
						|
                gtc.a = Mathf.Lerp(
 | 
						|
                    0f,
 | 
						|
                    0.6f,
 | 
						|
                    Time.time * (1f / 2.5f));
 | 
						|
				guiTexture.color = gtc;
 | 
						|
				guiTexture.pixelInset = new Rect(
 | 
						|
                    (float)(Screen.width / 2) - width / 2f,
 | 
						|
                    (float)(Screen.height / 2) - width / 4f,
 | 
						|
                    width,
 | 
						|
                    width / 2f);
 | 
						|
			}
 | 
						|
			if (Time.time > 4.25f)
 | 
						|
			{
 | 
						|
				guiTexture.pixelInset = new Rect(
 | 
						|
                    (float)(Screen.width / 2) - width / 2f,
 | 
						|
                    easeOutExpo(
 | 
						|
                        Time.time - 4.25f,
 | 
						|
                        (float)(Screen.height / 2) - width / 4f,
 | 
						|
                        (float)Screen.height - width / 2f, 0.75f),
 | 
						|
                    width,
 | 
						|
                    width / 2f);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		else if (Time.time > 6f)
 | 
						|
		{
 | 
						|
			if ((bool)bg)
 | 
						|
			{
 | 
						|
				Destroy(bg);
 | 
						|
			}
 | 
						|
			Color gtc = guiTexture.color;
 | 
						|
            gtc.a = Mathf.Lerp(
 | 
						|
                guiTexture.color.a,
 | 
						|
                Lobby.GUIAlpha - 0.4f,
 | 
						|
                Time.deltaTime * 4f);
 | 
						|
			guiTexture.color = gtc;
 | 
						|
			guiTexture.pixelInset = new Rect(
 | 
						|
                (float)(Screen.width / 2) - width / 2f,
 | 
						|
                (float)Screen.height - width / 2f,
 | 
						|
                width,
 | 
						|
                width / 2f);
 | 
						|
		}
 | 
						|
 | 
						|
		logoOffset = (int)(width / 2f);
 | 
						|
	}
 | 
						|
 | 
						|
	public float easeOutExpo(float t, float b, float c, float d)
 | 
						|
	{
 | 
						|
        c = c - b;
 | 
						|
        return c * (-Mathf.Pow(2.0f, -10.0f * t/d) + 1.0f) + b;
 | 
						|
	}
 | 
						|
 | 
						|
	public float easeInOutExpo(float t, float b, float c, float d)
 | 
						|
	{
 | 
						|
        c = c - b;
 | 
						|
        if (t < d / 2.0f) return 2.0f*c*t*t/(d*d) + b;
 | 
						|
        float ts = t - d/2.0f;
 | 
						|
        return -2.0f*c*ts*ts/(d*d) + 2.0f*c*ts/d + c/2.0f + b;
 | 
						|
	}
 | 
						|
}
 |