Cómo llegar a un ángulo eligiendo la dirección de rotación más corta

Tengo un personaje en mi juego que debe girar suavemente para llegar al ángulo deseado. Considerarangle como el ángulo actual ytouchAngle como el ángulo deseado que siempre está entre 0 y 360. Quiero agregar + 1 / -1 al ángulo actual en cada actualización del juego para llegar al deseadotouchAngle. El problema es que primero debe elegir la dirección y debe estar entre 0 y 360. Este es mi pseudocódigo:

int touchAngle;
float angle;
public void update()
{
    if ((int)angle != touchAngle) angle += ???
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta