Fade In/Out em Teleporte
2 participantes
Página 1 de 1
Fade In/Out em Teleporte
Como faço pra acrescentar um Fade In/ Fade Out nesse script de teleporte?
Quero que a tela escureça antes do teleporte e volte ao normal depois.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(BoxCollider))]
[RequireComponent(typeof(AudioSource))]
public class Teleporte : MonoBehaviour
{
bool podeInteragir = false; //eu criei
public GameObject Jogador; // euc riei
public Transform[] destinos;
public AudioClip audioTeleporte;
[Space(10)]
public bool destruirAoColidir = false;
AudioSource emissorDeSom;
bool rotinaIniciada = false;
void Update() //eu criei
{
if (podeInteragir == true && Input.GetKeyDown(KeyCode.E))
{
Jogador.GetComponent<SalvarPosic>().SalvarLocalizacao();
}
}
void Awake()
{
emissorDeSom = GetComponent<AudioSource>();
emissorDeSom.playOnAwake = false;
emissorDeSom.loop = false;
GetComponent<BoxCollider>().isTrigger = true;
}
void OnTriggerEnter()
{
podeInteragir = true;
}
void OnTriggerStay(Collider other)
{
if (podeInteragir == true && Input.GetKeyDown(KeyCode.E))
{
Teleportar(other.gameObject);
}
}
void OnTriggerExit()
{
podeInteragir = false;
}
void Teleportar(GameObject obj)
{
if (destinos.Length > 0 && !rotinaIniciada)
{
int destino = Random.Range(0, destinos.Length);
if (destinos[destino])
{
obj.transform.position = destinos[destino].position;
obj.transform.rotation = destinos[destino].rotation;
if (destruirAoColidir)
{
StartCoroutine("EsperarParaDestruir");
}
}
if (audioTeleporte)
{
emissorDeSom.clip = audioTeleporte;
emissorDeSom.PlayOneShot(emissorDeSom.clip);
}
}
}
IEnumerator EsperarParaDestruir()
{
rotinaIniciada = true;
MeshRenderer mesh = GetComponent<MeshRenderer>();
if (mesh)
{
mesh.enabled = false;
}
yield return new WaitForSeconds(5);
Destroy(gameObject);
}
void OnGUI()
{
if (podeInteragir == true)
{
GUIStyle stylez = new GUIStyle();
stylez.alignment = TextAnchor.MiddleCenter;
GUI.skin.label.fontSize = 20;
GUI.Label(new Rect(Screen.width / 2 - 50, Screen.height / 2 + 50, 200, 30), "Pressione 'E'");
}
}// ate aqui
} //deixar essa
Quero que a tela escureça antes do teleporte e volte ao normal depois.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(BoxCollider))]
[RequireComponent(typeof(AudioSource))]
public class Teleporte : MonoBehaviour
{
bool podeInteragir = false; //eu criei
public GameObject Jogador; // euc riei
public Transform[] destinos;
public AudioClip audioTeleporte;
[Space(10)]
public bool destruirAoColidir = false;
AudioSource emissorDeSom;
bool rotinaIniciada = false;
void Update() //eu criei
{
if (podeInteragir == true && Input.GetKeyDown(KeyCode.E))
{
Jogador.GetComponent<SalvarPosic>().SalvarLocalizacao();
}
}
void Awake()
{
emissorDeSom = GetComponent<AudioSource>();
emissorDeSom.playOnAwake = false;
emissorDeSom.loop = false;
GetComponent<BoxCollider>().isTrigger = true;
}
void OnTriggerEnter()
{
podeInteragir = true;
}
void OnTriggerStay(Collider other)
{
if (podeInteragir == true && Input.GetKeyDown(KeyCode.E))
{
Teleportar(other.gameObject);
}
}
void OnTriggerExit()
{
podeInteragir = false;
}
void Teleportar(GameObject obj)
{
if (destinos.Length > 0 && !rotinaIniciada)
{
int destino = Random.Range(0, destinos.Length);
if (destinos[destino])
{
obj.transform.position = destinos[destino].position;
obj.transform.rotation = destinos[destino].rotation;
if (destruirAoColidir)
{
StartCoroutine("EsperarParaDestruir");
}
}
if (audioTeleporte)
{
emissorDeSom.clip = audioTeleporte;
emissorDeSom.PlayOneShot(emissorDeSom.clip);
}
}
}
IEnumerator EsperarParaDestruir()
{
rotinaIniciada = true;
MeshRenderer mesh = GetComponent<MeshRenderer>();
if (mesh)
{
mesh.enabled = false;
}
yield return new WaitForSeconds(5);
Destroy(gameObject);
}
void OnGUI()
{
if (podeInteragir == true)
{
GUIStyle stylez = new GUIStyle();
stylez.alignment = TextAnchor.MiddleCenter;
GUI.skin.label.fontSize = 20;
GUI.Label(new Rect(Screen.width / 2 - 50, Screen.height / 2 + 50, 200, 30), "Pressione 'E'");
}
}// ate aqui
} //deixar essa
Triskal- Avançado
- PONTOS : 1436
REPUTAÇÃO : 7
Respeito as regras :
Re: Fade In/Out em Teleporte
Veja este tutorial:
Ele ensina uma forma de fazer fadeIn/fadeOut, ai você pode implementar no seu script.
Ele ensina uma forma de fazer fadeIn/fadeOut, ai você pode implementar no seu script.
Charlesoff- MembroAvançado
- PONTOS : 1758
REPUTAÇÃO : 40
Áreas de atuação : Game dev
Respeito as regras :
Re: Fade In/Out em Teleporte
Alguém pode me ajudar a inserir nesse código acima um playable director que seja dado play uma vez a cada vez q seja teleportado?
Triskal- Avançado
- PONTOS : 1436
REPUTAÇÃO : 7
Respeito as regras :
Tópicos semelhantes
» Como programar animações de fade in e fade out para botão no Unity
» [Resolvido] Fade in e fade out em botões, ou textos.
» Fade in e out de textos
» Fade in e out de cenas
» Fade In para trocar de cenas
» [Resolvido] Fade in e fade out em botões, ou textos.
» Fade in e out de textos
» Fade in e out de cenas
» Fade In para trocar de cenas
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos