Problema com detecção de colisão de uma bola em movimento rápido com uma raquete controlada pelo mouse

Unity, eu tenho uma raquete que deve acertar uma bola, e a raquete é controlada diretamente pelo mouse, ou seja, o bastão está sendo movido pelo mouse usando os eixos do mouse e a função transform.translate () para mover o raquete

Eu esperava que a física do Unity3d não traduzisse corretamente o movimento da raquete diretamente pelo mouse e impactasse a bola de acordo, e eu teria que escrever algo personalizado, e isso acabou sendo verdad

Mas a colisão da bola não está sendo detectada corretamente quando a raquete está em movimento. Quando está parado, está tudo bem, e a bola se comporta como eu gost

gora, eu escrevi um script de física personalizado (eu uso C # para scripts) no qual anexei 4 raios de comprimento 0,6F à bola e, depois de fazer alguns cálculos vetoriais complexos, calcule a velocidade da bola depois de bater no raquete e aplique-a diretamente à velocidade da bola usando rigidbody.velocity = calculVelocity (). Agora está novamente funcionando bem quando a raquete não está se movendo, mas não quando movo a raquete. O problema exato (sintomas do) é:

sando a física incorporada e a detecção de colisão: quando a raquete está se movendo, a bola às vezes passa direto pela raquete e, às vezes, diminui (para níveis inacreditáveis

Usando o meu script para calcular a velocidade: O problema é o mesmo, mas ele permite identificar o que há de errado quando imprimo o normal do colisor (a raquete). Às vezes, dá o normal certo e, às vezes, o negativo do vetor normal, o que significa que ele está atravessando a superfície superior e detectando o acerto com o lado inferior do colisor (raquete).

As coisas que tentei:

Aumentar o tamanho do colisor (funciona com o coletor de caixas mais amplo da raquete, mas obviamente a bola se afasta bastante da raquete, e meu próprio script funciona aqui, a física padrão gera resultados estranhos quando a raquete é movida ), enfim, não entendo a realidade que quero.

Diminuindo o carimbo de data e hora fixado para 0,001, o que melhorou significativamente as coisas, mas ainda muito longe do resultado que eu quero, e a bola está novamente escolhendo o lado errado da bol

Alterando a detecção de colisão para dinâmica contínua. O que também não melhorou as coisas.

Além do lado errado escolhido na colisão, outro problema que observei é que, depois de saltar da raquete, a bola se move, mas a raquete é movida mais rapidamente, em vez de se mover em um arco ou linha completa, de alguma forma aparece em frente da bola, resultando em dois acertos. É uma conjectura baseada no que é visível.

Também está claro que o aspecto "movimento" da raquete não está sendo lido pela física incorporada do Unity3d, resultando em um comportamento estranho quando a raquete está se movendo usando o mouse bate na bol

Estou preso, não tenho idéia para onde ir daqui. Por favor, diga-me o que estou fazendo de errado.

questionAnswers(4)

yourAnswerToTheQuestion