Desde a aula de interface voltamos a escrever a mesma função em varios scripts, entendia isso como uma pratica ruim.
Desde a aula de interface voltamos a escrever a mesma função em varios scripts, entendia isso como uma pratica ruim.
Oi, Yan, tudo bem?
Pode dar um exemplo? Mas sim normalmente duplicação é ruim
só vi hoje o topico, segui muito o curso ja, ai não lembro, importante é que funciona e inclusive ja lancei um jogo com o que aprendi, busque "wifipls" na itch.io
Uma coisa, no meu jogo autoral da itch.io "wifipls", eu tive problemas com os geradores, por isso tirei do jogo. O meu problema era o seguinte: quando o monstro mata o jogador, estava no script do monstro para setar ativo o menu de morte(nao fiz tão encapsulado pois estava tendo muitos problemas), isso funcionava enquanto o monstro estava colocado na cena, e não atravez do gerador, sei que no prefab eu não consigo deixar referenciado o objeto "menuDeMorte" pela interface, então no script do monstro, coloquei um "findwithtag" que procurava a tag do menu, supostamente acho que isso deveria funcionar, mas na pratica o menu não ativava, e no erro dizia que estava recebendo um Null.setActive. Não sei porque ele não identificou o objeto de jogo com a tag menu e ficava recebendo null sempre.
Eu tirei os geradores, coloquei apenas 4 monstros em cena e decidi ir para o proximo projeto, os scripts ja mudaram entao.
Normalmente o ideal seria nesse caso você ter um Game Manager que lida com isso então quando acontecer algo você só dispara pro Game Manager um método por exemplo:
Jogador tomou um hit -> Manda o Game Manager disparar o game over
E aí o Game Manager pode ser um singleton (usamos mais pra frente no curso) então você só tem um objeto que fica responsável e os outros só disparam mensagens
Mas porque não funciona ativalo com findwithtag no script do inimigo? Faria muito sentido pra mim funcionar, porque ele retorna null?
Isso é discutido mais a frente no curso, mas é uma forma de facilitar.
Sobre o porque o find with tag não funciona pode ser muita coisa desde um erro no nome da tag, até a tag ter um espaço no final, etc. mas tecnicamente funciona