Personagem pegar e soltar objeto

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

1 curtida

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.

1 curtida

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).