Iniciando com Scripted Events
2 participantes
Página 1 de 1
Iniciando com Scripted Events
Bom dia, pessoas! Então, estou criando um pequeno jogo 2D e por motivos de melhor Otimização eu quero começar a adicionar Scripted Events nos meus códigos (preciso tirar algumas coisas do "Update ()"), porém, não tenho muita ideia de como começar a fazer isso. Vamos a um exemplo:
Digamos que o meu PLAYER tenha uma variável do tipo int "vida", ela começa valendo 3 e se chega a 0, o personagem morrerá. Atualmente eu verifico a vida do personagem a cada frame na Update() mas eu quero agora usar Scripted Events, pelo que sei seria uma forma menos pesada de fazer isso, certo?
Se alguém pudesse me indicar alguma boa vídeo aula ou qualquer tipo de ajuda, seria bem-vindo! Obrigado.
Digamos que o meu PLAYER tenha uma variável do tipo int "vida", ela começa valendo 3 e se chega a 0, o personagem morrerá. Atualmente eu verifico a vida do personagem a cada frame na Update() mas eu quero agora usar Scripted Events, pelo que sei seria uma forma menos pesada de fazer isso, certo?
Se alguém pudesse me indicar alguma boa vídeo aula ou qualquer tipo de ajuda, seria bem-vindo! Obrigado.
bielTuvel- Iniciante
- PONTOS : 2514
REPUTAÇÃO : 7
Respeito as regras :
Re: Iniciando com Scripted Events
https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/keywords/delegate
https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/keywords/event
https://docs.unity3d.com/ScriptReference/Coroutine.html
https://docs.unity3d.com/ScriptReference/Events.UnityAction.html
https://www.youtube.com/watch?v=jXORJ4Tvlns
Sugiro esses links a cima!
aqui um exemplo bem simples de como usar event, não necessariamente precisaria usar eventos nesse tipo de coisa, porem com event vc poderia ter callbacks para alertar terceiros caso o personagem esteja tomando dano ou quando o personagem morrer ou seja novos horizontes!
caso esteja curioso sobre callbacks aqui tem mais sobre
https://www.c-sharpcorner.com/UploadFile/1c8574/delegate-used-for-callback-operation/
https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/keywords/event
https://docs.unity3d.com/ScriptReference/Coroutine.html
https://docs.unity3d.com/ScriptReference/Events.UnityAction.html
https://www.youtube.com/watch?v=jXORJ4Tvlns
Sugiro esses links a cima!
aqui um exemplo bem simples de como usar event, não necessariamente precisaria usar eventos nesse tipo de coisa, porem com event vc poderia ter callbacks para alertar terceiros caso o personagem esteja tomando dano ou quando o personagem morrer ou seja novos horizontes!
caso esteja curioso sobre callbacks aqui tem mais sobre
https://www.c-sharpcorner.com/UploadFile/1c8574/delegate-used-for-callback-operation/
- Código:
public delegate void OnDeath(); //aqui definimos nosso delegate sem nenhum parâmetros mais basicamente vc pode passar qualquer tipo
public event OnDeath OnDeathEventHandler; //aqui declaramos o evento do tipo do nosso delagate "OnDeath"
public int life; //vida
void Start()
{
OnDeathEventHandler += delegate //aqui assinamos nosso delegate com um método anônimo
{
Debug.LogWarning("magrelin morreu");
//tudo que se tem que fazer quando o personagem morrer
};
}
//metodo para tirar vida do personagem
public void TakeDamage(int damage)
{
if (life > 0)
{
life -= damage;
//tem vida?
if (life <= 0)
{
//caso tenha algum assinatura no evento
if (OnDeathEventHandler != null)
OnDeathEventHandler.Invoke();
else
Debug.LogWarning("Nada registrado em "OnDeathEventHandler"");
}
}
}
Weslley- Moderador
- PONTOS : 5726
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Iniciando com Scripted Events
Nossa, muito obrigado, mandou tudo que tinha direito! Vou dar uma estudada com base nisso, o código deixou algumas coisas bem claras, aquela situação que eu coloquei ali, foi mais pra um exemplo mesmo, certamente vou aplicar em várias coisas os events, valeu de novo.Weslley escreveu:https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/keywords/delegate
https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/keywords/event
https://docs.unity3d.com/ScriptReference/Coroutine.html
https://docs.unity3d.com/ScriptReference/Events.UnityAction.html
https://www.youtube.com/watch?v=jXORJ4Tvlns
Sugiro esses links a cima!
aqui um exemplo bem simples de como usar event, não necessariamente precisaria usar eventos nesse tipo de coisa, porem com event vc poderia ter callbacks para alertar terceiros caso o personagem esteja tomando dano ou quando o personagem morrer ou seja novos horizontes!
caso esteja curioso sobre callbacks aqui tem mais sobre
https://www.c-sharpcorner.com/UploadFile/1c8574/delegate-used-for-callback-operation/
- Código:
public delegate void OnDeath(); //aqui definimos nosso delegate sem nenhum parâmetros mais basicamente vc pode passar qualquer tipo
public event OnDeath OnDeathEventHandler; //aqui declaramos o evento do tipo do nosso delagate "OnDeath"
public int life; //vida
void Start()
{
OnDeathEventHandler += delegate //aqui assinamos nosso delegate com um método anônimo
{
Debug.LogWarning("magrelin morreu");
//tudo que se tem que fazer quando o personagem morrer
};
}
//metodo para tirar vida do personagem
public void TakeDamage(int damage)
{
if (life > 0)
{
life -= damage;
//tem vida?
if (life <= 0)
{
//caso tenha algum assinatura no evento
if (OnDeathEventHandler != null)
OnDeathEventHandler.Invoke();
else
Debug.LogWarning("Nada registrado em "OnDeathEventHandler"");
}
}
}
bielTuvel- Iniciante
- PONTOS : 2514
REPUTAÇÃO : 7
Respeito as regras :
Tópicos semelhantes
» Duvida com scripted events.
» Sols Like Projeto iniciando!
» Iniciando Unity com erro de compilação
» Ajuda em código com Events!
» Sols Like Projeto iniciando!
» Iniciando Unity com erro de compilação
» Ajuda em código com Events!
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos