DESIGN PATTERN MVC - DÚVIDA SOBRE UNITYACTION E UNITYEVENT
2 participantes
Página 1 de 1
DESIGN PATTERN MVC - DÚVIDA SOBRE UNITYACTION E UNITYEVENT
Bom dia pessoal,
Estou implementando o padrão de desenvolvimento Model, View e Controller(MVC), padrão de projeto. Eu encontrei essa estrutura https://github.com/felladrin/unity3d-mvc.
Eu não estou conseguindo entender esse código, e nem chamar o metodo no void start para testar.
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
public class Aplicacao : MonoBehaviour
{
public ContainerModelo Modelo;
public ContainerControle Controle;
public ContainerApresentacao Apresentacao;
private void Start()
{
AdicionarEventoListener("teste", aqui pede um UnityAction);
}
private Dictionary<string, UnityEvent> eventoDicionario = new Dictionary<string, UnityEvent>();
/// <summary>
/// Adicionar um listener para um determinado evento.
/// Uso: Chame dentro do metodo OnEnable() do MonoBehaviours.
/// </summary>
/// <param name="nomeDoEvento">Nome do evento.</param>
/// <param name="listener">Funcao de retorno.</param>
public void AdicionarEventoListener(string nomeDoEvento, UnityAction listener)
{
UnityEvent e;
if (eventoDicionario.TryGetValue(nomeDoEvento, out e))
{
e.AddListener(listener);
}
else
{
e = new UnityEvent();
e.AddListener(listener);
eventoDicionario.Add(nomeDoEvento, e);
}
}
/// <summary>
/// Remover um listener para um determinado evento.
/// Uso: Chame dentro do metodo OnDisable() do MonoBehaviours.
/// </summary>
/// <param name="nomeDoEvento">Nome do evento.</param>
/// <param name="listener">Funcao de retorno.</param>
public void RemoverEventoListener(string nomeDoEvento, UnityAction listener)
{
UnityEvent e;
if (eventoDicionario.TryGetValue(nomeDoEvento, out e))
{
e.RemoveListener(listener);
}
}
/// <summary>
/// Aciona todos os retornos de chamada registrados de um determinado evento.
/// </summary>
public void EventoTrigger(string nomeDoEvento)
{
UnityEvent e;
if (eventoDicionario.TryGetValue(nomeDoEvento, out e))
{
e.Invoke();
}
}
}
Dúvida o que eu posso colocar onde pede um "unity action" para testar o método, e de maneira geral o que faz essa classe. Obrigado
Estou implementando o padrão de desenvolvimento Model, View e Controller(MVC), padrão de projeto. Eu encontrei essa estrutura https://github.com/felladrin/unity3d-mvc.
Eu não estou conseguindo entender esse código, e nem chamar o metodo no void start para testar.
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
public class Aplicacao : MonoBehaviour
{
public ContainerModelo Modelo;
public ContainerControle Controle;
public ContainerApresentacao Apresentacao;
private void Start()
{
AdicionarEventoListener("teste", aqui pede um UnityAction);
}
private Dictionary<string, UnityEvent> eventoDicionario = new Dictionary<string, UnityEvent>();
/// <summary>
/// Adicionar um listener para um determinado evento.
/// Uso: Chame dentro do metodo OnEnable() do MonoBehaviours.
/// </summary>
/// <param name="nomeDoEvento">Nome do evento.</param>
/// <param name="listener">Funcao de retorno.</param>
public void AdicionarEventoListener(string nomeDoEvento, UnityAction listener)
{
UnityEvent e;
if (eventoDicionario.TryGetValue(nomeDoEvento, out e))
{
e.AddListener(listener);
}
else
{
e = new UnityEvent();
e.AddListener(listener);
eventoDicionario.Add(nomeDoEvento, e);
}
}
/// <summary>
/// Remover um listener para um determinado evento.
/// Uso: Chame dentro do metodo OnDisable() do MonoBehaviours.
/// </summary>
/// <param name="nomeDoEvento">Nome do evento.</param>
/// <param name="listener">Funcao de retorno.</param>
public void RemoverEventoListener(string nomeDoEvento, UnityAction listener)
{
UnityEvent e;
if (eventoDicionario.TryGetValue(nomeDoEvento, out e))
{
e.RemoveListener(listener);
}
}
/// <summary>
/// Aciona todos os retornos de chamada registrados de um determinado evento.
/// </summary>
public void EventoTrigger(string nomeDoEvento)
{
UnityEvent e;
if (eventoDicionario.TryGetValue(nomeDoEvento, out e))
{
e.Invoke();
}
}
}
Dúvida o que eu posso colocar onde pede um "unity action" para testar o método, e de maneira geral o que faz essa classe. Obrigado
DevTerror- Iniciante
- PONTOS : 2427
REPUTAÇÃO : 0
Respeito as regras :
Re: DESIGN PATTERN MVC - DÚVIDA SOBRE UNITYACTION E UNITYEVENT
Crie uma variável:
E em seguida, veja o que aparece no seu Editor.
Sabe aqueles Design's que tem no botão "OnClick"?
Então, é mais ou menos isso.
Ok, próxima dúvida: o que faz isto?
Dei uma olhada no GitHub, olhei seu script vi alguns componentes e parece que este script server para chamar vários métodos (registrar eles e depois chamá-los).
Ele cria um dicionário, uma estrutura +- assim:
+Nome (string)
-Função (UnityAction)
Daí se eu quiser criar uma nova ação, eu faço:
Aliás, não vi funcionalidades para estas linhas:
Referências para estudos:
Unity API - https://docs.unity3d.com/ScriptReference/Events.UnityAction.html
Fórum Unity Oficial - https://answers.unity.com/questions/993738/unityaction-vs-method.html
- Código:
public UnityAction action;
E em seguida, veja o que aparece no seu Editor.
Sabe aqueles Design's que tem no botão "OnClick"?
Então, é mais ou menos isso.
Ok, próxima dúvida: o que faz isto?
Dei uma olhada no GitHub, olhei seu script vi alguns componentes e parece que este script server para chamar vários métodos (registrar eles e depois chamá-los).
Ele cria um dicionário, uma estrutura +- assim:
+Nome (string)
-Função (UnityAction)
Daí se eu quiser criar uma nova ação, eu faço:
- Código:
e = new UnityEvent();
e.AddListener(listener);
eventDictionary.Add(eventName, e);
Aliás, não vi funcionalidades para estas linhas:
- Código:
//7, 8 e 9
public ModelContainer Model;
public ControllerContainer Controller;
public ViewContainer View;
Referências para estudos:
Unity API - https://docs.unity3d.com/ScriptReference/Events.UnityAction.html
Fórum Unity Oficial - https://answers.unity.com/questions/993738/unityaction-vs-method.html
NKKF- ProgramadorMaster
- PONTOS : 4820
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Tópicos semelhantes
» Como utilizar o design pattern MVC na Unity?
» Duvida sobre UVs
» Duvida sobre o GetButtonDown
» Duvida sobre Programação
» [DÚVIDA] Dúvida sobre script e rigidbody
» Duvida sobre UVs
» Duvida sobre o GetButtonDown
» Duvida sobre Programação
» [DÚVIDA] Dúvida sobre script e rigidbody
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos