Boa tarde a todos, estou com dificuldade para resolver esse problema, quero que quando eu mate um inimigo ou destrua uma caixa dropem os itens (Vida, Moedas etc) No caso das moedas estou com um BP com efeitos de partículas e com sistema de magnet quando aproximo das moedas elas veem para meu personagem, mais realmente preciso que quando eu destruo um actor (Ex: Uma caixa de madeira) As moedas caiem no chão.
Alguem tem algum ideia como posso fazer isso?
Att
Luiz Schumacher
English:
Good afternoon everyone , I’m having trouble To resolve this problem , I que When I mate hum Enemy OR destroy A Box dropem OS items ( Life, coins etc ) in the case of coins I’m hum BP with particle effects and magnet system WHEN approach Currencies THEY see paragraph my character , More Really need que When I destroy ONE actor ( Ex: a wooden box ) How Coins fall on the floor .
Antes de destruir um actor você pode chamar a função Blueprint “SpawnActor” e no parâmetro Class você seleciona a classe Blueprint que representa as suas moedas.
Isto não pode ser feito usando EventDispatcher como um evento “OnDestroyed”. Então quando O objeto é destruído com a função DestroyActor, esta chama o evento OnDestroyed que executa o SpawnActor.
Você sabe como fazer isto usando EventDispatcher Marcos Romero? Eu quero tentar algo desse jeito mas não consigo formular a lógica necessária! Esta me parece ser uma solução mais elegante.
Olá Marcos Romero, primeiramente obrigado pela resposta e também quero falar que fiz todos seus tutoriais no seu blog e me ajudou muito, gostaria de saber se você vai fazer mais tutoriais sendo em blogs ou videos aulas.
Sobre minha duvida para dropar as moedas quando matar um inimigo ou um objeto (Actor) Vou testar em casa quando sair do trabalho e posto aqui se deu certo!
Novamente obrigado pela resposta, pensei que o forum do Brasil estava morto e ninguem respondia rs!
Só para adicionar: já enfrentei problemas em executar operações dentro do OnDestroyed Event, visto que após um certo tempo ele apaga o actor da memória, podendo cessar os processos antes de retornar do escopo dentro do OnDestroyed. No meu caso era um loop relativamente expensive, que nunca chegava ao fim porque o actor era destruido antes.
Outra maneira de você testar isso seria utilizando do Event EndPlay, que, até onde eu sei, irá substituir o OnDestroyed, que será depreciado.
Acredito que não seria dificil de testar a eficiencia disto, se você conseguir algum resultado legal eu gostaria de saber, também
Testei eu mesmo aqui e deu certo, desde que seja binded por outro actor. Do contrário ele poderia remover o actor antes de terminar a sequência de eventos.