Bom dia pessoal
Estou com um personagem, que não é player, que coloquei a movimentação como se fosse o caixa de supermercado. Como faço para que ele pegue e e depois solte um determinado objeto?
Opa, tudo bom? Eu tenho algumas sugestões.
1- Caso os produtos estejam indo ao caixa periodicamente, você pode utilizar um Physics.CheckBox no operador do caixa de supermercado, para que ele verifique se há algum objeto com a tag “Produto” próximo aos braços dele, se houver, então já é ideal começar a lógica para que ele pegue o produto.
2- Se houver algum produto próximo, você pode ativar a animação do personagem operador de caixa fazendo o movimento de pegar, e então soltar o objeto na outra parte do caixa, utilizando o animator.
3- Agora para a lógica do próprio objeto se movimentar, a minha sugestão é que, pode tanto ser algo mais simples, como simplismente mexer no transform do produto para que ele se mova até a posição da mão do operador do caixa, que, pode ser inviável, devido ao efeito de “teleporte”, mas também pode ser viável, se levarmos em consideração o estilo do jogo. Outra maneira seria criar uma animação para o próprio produto, simulando que ele está se movendo de maneira mais suave, para causar a impressão de que o operador do caixa realmente está pegando este objeto.
A maneira que eu acho que seria mais adequada: Caso o seu personagem operador de caixa esteja corretamente “riggado”, crie um script que faça com que, a quando a mão do operador de caixa entrar em contato com o produto em questão, faça com que o produto se torne “Filho” da mão do operador na hierarquia de objetos, assim, quando a mão do personagem se mover, o produto se moverá junto, e quando ele terminar a animação, você pode simplismente remover ele da hierarquia e ativar a gravidade deste objeto, caso ele ainda não tenha, para que ele caia
Eu não sei como isso poderia ser implementado, mas com raycast também da pra fazer, e talvez seja a melhor forma, porém como seu personagem não é o player, ao meu ver pode ser dificil
Lembrando que essas são apenas as minhas sugestões, e estou apenas em busca de aprender junto com você. Não sei se estas são as melhores maneiras de executar possíveis, mas espero ter ajudado!
Obrigado. So quero que o objeto com tag produto grude na mão e desgrude
Então seria uma boa e seria também mais fácil tornar o objeto filho da mão do personagem somente até chegar no local correto, e então remover
Se for só para o objeto seguir a posição da mão do personagem, a bordagem mais simples é torna-lo filho da mão mesmo.
Seria só colocar o objeto aqui dentro, na estrutura de esqueleto do personagem.
Obrigado. Vou fazer então via script ja que ele precisa soltar depois, mas colocando pelo script não sei se vai ficar na mão ou em outra parte porque a mão do personagem nao tem separação é somente onpersonagem inteiro as separações que têm é somente das roupas
Já imaginei uma coisa. Como ele não tem subdivisões posso criar um objeto vazio e arrastar como filho do personagem e posicionar na mão, aí os produtos coloco como filho desse obejto. Será se presta? À noite vou testar
Se for um personagem humanoide e você estiver usando animações nele, provavelmente terá um esqueleto, igual do print que mandei acima.
Dessa forma, só abrir a estrutura de objetos do esqueleto na Hierarqui e adicionar o objeto como filho da mão (você pode fazer via programação).