¿Cómo calcular "el vector A después de rotar el vector normal A a cualquier vector normal B, de modo que el ángulo entre los dos vectores se reduzca en N grados" en Unity3D?
No entiendo muy bien lo que quieres...
Si solo devuelvo cero o B, puedo decir la dirección de AB, ¿por qué molestarse en calcular la rotación?
Juzgar la dirección es muy simple, puedes usar
Vector3.Angle()
Para mejorar, existe tal función
public static Vector3 RotateTowards(Vector3 actual, Vector3 target. float maxRadiansDelta, float maxMagnitudeDelta);
El primer parámetro es el vector original A, el segundo parámetro es el vector objetivo B, el tercer parámetro es el ángulo Y el cuarto parámetro El parámetro se establece en 0.0f.
(Por supuesto, si A y B son ambos vectores unitarios).
Pero esta función parece significar esto y aún no la he practicado.
Ver: /ScriptReference/Vector3.RotateTowards.html.