6
respostas

Desde a aula de interface voltamos a escrever a mesma função em varios scripts

Desde a aula de interface voltamos a escrever a mesma função em varios scripts, entendia isso como uma pratica ruim.

6 respostas

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