[TUTORIAL] Sistema simples de SEMÁFORO (sinaleira), com tempo entre fases, escolha da fase inicial e troca de cor dos materiais
4 participantes
Página 1 de 1
[TUTORIAL] Sistema simples de SEMÁFORO (sinaleira), com tempo entre fases, escolha da fase inicial e troca de cor dos materiais
Olá pessoal, elaborei este sistema simples de sinaleira aonde você escolhe o tempo que cada fase da sinaleira irá durar, qual será a fase inicial, e ainda faz a troca da cor da luz e do material.
Para isto, basta criar um novo script em C# e dar-lhe o nome de "SinaleiraSimples" e utilizar este código nele:
Tendo isto feito, jogue o script na sua sinaleira, e configure as variáveis:
CorInicial = cor inicial da sinaleira
luzSinaleira = a luz da sinaleira, basta jogar a luz na variável
MaterialDaLuz = material da luz, basta jogar o objeto que tem a mesh da lampada
segVermelha = segundos que a luz permanecerá vermelha
segAmarela = segundos que a luz permanecerá amarela
segVerde = segundos que a luz permanecerá verde
Tendo tudo configurado, a sinaleira já irá funcionar 100% :D
Para isto, basta criar um novo script em C# e dar-lhe o nome de "SinaleiraSimples" e utilizar este código nele:
- Código:
using UnityEngine;
using System.Collections;
public class SinaleiraSimples : MonoBehaviour {
public enum CorInic {ComecarVermelho, ComecarAmarelo, ComecarVerde}
public CorInic CorInicial = CorInic.ComecarVermelho;
public Light luzSinaleira;
public GameObject MaterialDaLuz;
public float segVermelha = 30, segAmarela = 2, segVerde = 10;
private Shader shaderLuzes;
void Start () {
//
luzSinaleira.type = LightType.Point;
luzSinaleira.enabled = true;
luzSinaleira.renderMode = LightRenderMode.ForcePixel;
luzSinaleira.color = Color.red;
shaderLuzes = Shader.Find("Standard");
if (MaterialDaLuz.gameObject.GetComponent<Renderer> ().material != shaderLuzes) {
MaterialDaLuz.gameObject.GetComponent<Renderer> ().material = new Material (shaderLuzes);
}
MaterialDaLuz.gameObject.GetComponent<Renderer>().material.EnableKeyword("_EMISSION");
//
switch (CorInicial) {
case CorInic.ComecarVermelho:
StartCoroutine ("VermelhoParaAmarelo");
break;
case CorInic.ComecarAmarelo:
StartCoroutine ("AmareloParaVerde");
break;
case CorInic.ComecarVerde:
StartCoroutine ("VerdeParaVermelho");
break;
}
}
IEnumerator VermelhoParaAmarelo(){
luzSinaleira.color = Color.red;
MaterialDaLuz.gameObject.GetComponent<Renderer> ().material.SetColor ("_EmissionColor", Color.red);
MaterialDaLuz.gameObject.GetComponent<MeshRenderer> ().material.color = Color.red;
yield return new WaitForSeconds (segVermelha);
StartCoroutine ("AmareloParaVerde");
}
IEnumerator AmareloParaVerde(){
luzSinaleira.color = Color.yellow;
MaterialDaLuz.gameObject.GetComponent<Renderer> ().material.SetColor ("_EmissionColor", Color.yellow);
MaterialDaLuz.gameObject.GetComponent<MeshRenderer> ().material.color = Color.yellow;
yield return new WaitForSeconds (segAmarela);
StartCoroutine ("VerdeParaVermelho");
}
IEnumerator VerdeParaVermelho(){
luzSinaleira.color = Color.green;
MaterialDaLuz.gameObject.GetComponent<Renderer> ().material.SetColor ("_EmissionColor", Color.green);
MaterialDaLuz.gameObject.GetComponent<MeshRenderer> ().material.color = Color.green;
yield return new WaitForSeconds (segVerde);
StartCoroutine ("VermelhoParaAmarelo");
}
}
Tendo isto feito, jogue o script na sua sinaleira, e configure as variáveis:
CorInicial = cor inicial da sinaleira
luzSinaleira = a luz da sinaleira, basta jogar a luz na variável
MaterialDaLuz = material da luz, basta jogar o objeto que tem a mesh da lampada
segVermelha = segundos que a luz permanecerá vermelha
segAmarela = segundos que a luz permanecerá amarela
segVerde = segundos que a luz permanecerá verde
Tendo tudo configurado, a sinaleira já irá funcionar 100% :D
Re: [TUTORIAL] Sistema simples de SEMÁFORO (sinaleira), com tempo entre fases, escolha da fase inicial e troca de cor dos materiais
Legal, mto obrigado
jonatan oliveira rocha- Avançado
- PONTOS : 3038
REPUTAÇÃO : 6
Idade : 34
Respeito as regras :
Re: [TUTORIAL] Sistema simples de SEMÁFORO (sinaleira), com tempo entre fases, escolha da fase inicial e troca de cor dos materiais
Não tens nenhum modelo de sinaleira 3D?
Marcella560- Iniciante
- PONTOS : 2377
REPUTAÇÃO : 0
Re: [TUTORIAL] Sistema simples de SEMÁFORO (sinaleira), com tempo entre fases, escolha da fase inicial e troca de cor dos materiais
Marcella560 escreveu:Não tens nenhum modelo de sinaleira 3D?
Vou modelar um agora pra você
EndStarsProgramming2- Membro
- PONTOS : 2414
REPUTAÇÃO : 5
Idade : 22
Áreas de atuação : Estudando C#
Respeito as regras :
Re: [TUTORIAL] Sistema simples de SEMÁFORO (sinaleira), com tempo entre fases, escolha da fase inicial e troca de cor dos materiais
OBS : FOI MAL ESQUECI QUE TO SEM BLENDER : P
EndStarsProgramming2- Membro
- PONTOS : 2414
REPUTAÇÃO : 5
Idade : 22
Áreas de atuação : Estudando C#
Respeito as regras :
Tópicos semelhantes
» [TUTORIAL] Sistema simples para VOLTAR NO TEMPO, Unity 3D
» [TUTORIAL] Sistema de escolha de personagens
» [TUTORIAL] Sistema De Save Game Ao Sair Da Fase
» [TUTORIAL] Sistema simples de GRANADA e EXPLOSÕES
» [TUTORIAL] Sistema simples para lançar objetos.
» [TUTORIAL] Sistema de escolha de personagens
» [TUTORIAL] Sistema De Save Game Ao Sair Da Fase
» [TUTORIAL] Sistema simples de GRANADA e EXPLOSÕES
» [TUTORIAL] Sistema simples para lançar objetos.
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos