Estou tendo problemas com a prevenção de colisões desalinhadas pelo que considero um caso raro. Eu configurei dois objetos para se moverem um em direção ao outro, mas com um pequeno deslocamento, para que um deles se mova levemente para cima e um deles se mova levemente para baixo.
No meu algoritmo de direção de prevenção de colisão desalinhado, encontro os pontos na linha de frente do objeto e na linha de frente do outro objeto em que essas duas linhas são as mais próximas. Se esses pontos mais próximos estiverem a uma distância de prevenção de colisões e se a distância entre eles for menor que os dois raios das esferas delimitadoras dos dois objetos, os objetos deverão se afastar na direção apropriada.
O problema é que, no meu caso, os pontos mais próximos nas linhas são calculados para ficarem muito longe do ponto de colisão real. Isso ocorre porque as duas linhas avançadas de cada objeto estão se afastando à medida que os objetos passam. O problema é que, por causa disso, nenhuma direção ocorre e os dois objetos colidem parcialmente.
Alguém tem alguma sugestão de como posso calcular corretamente o ponto de colisão? Talvez, de alguma forma, levando em consideração o tamanho dos dois objetos?