Voy a ir contra la corriente aquí y sugerir que, en lugar de pregenerar sus curvas, solo lo maneje cuadro por cuadro, usando (por ejemplo) la misma lógica que usaría para crear un recorrido de referencia. -missile .
Esto será mucho más fácil y probablemente más realista porque no necesita casos especiales para cuando hay paredes entre dos puntos: simplemente maneja la detección de colisiones como de costumbre.
La desventaja es que el movimiento se verá subóptimo. El objeto siempre tomará la ruta más directa de un punto de referencia al siguiente, lo que significa que, a diferencia de una spline, no comenzará a girar hacia el punto de referencia 3 hasta que ya haya pasado el punto de referencia 2. Dependiendo de su situación, esto puede o no sea reparable ajustando sus puntos de referencia (si es incluso un problema).