Bueno estaba realizando un proyecto en el qu necesitaba que unos objetos se movieran atravez de rotaciones de 90 grados pero simpre terminan no con la posicion exacta o con la misma escala e incluso se van desfasando de los mismos ejes. Intente utilizar este algoritmo para corregirlas pero no logro que conserven ni su escala como su rotacion
void repararGiro(GameObject esquina){
Quaternion rotacion=Quaternion.Euler(,,);
print (esquina.gameObject.name.ToString () + " " + esquina.transform.rotation.eulerAngles);
float temporal;
float Rx, Ry, Rz;
//X
temporal = esquina.transform.rotation.eulerAngles.x % 90f;
if (esquina.transform.rotation.eulerAngles.x % 90f != ) {
temporal=esquina.transform.rotation.eulerAngles.x/90f;
Rx=Mathf.RoundToInt(temporal);
rotacion.x=Rx*90f;
}else {
rotacion.x=esquina.transform.rotation.eulerAngles.x;
}
//Y
if (esquina.transform.rotation.eulerAngles.y % 90f != ) {
temporal=esquina.transform.rotation.eulerAngles.y/90f;
Ry=Mathf.RoundToInt(temporal);
rotacion.y=Ry*90f;
}else {
rotacion.y=esquina.transform.rotation.eulerAngles.y;
}
//Z
if (esquina.transform.rotation.eulerAngles.z % 90f != ) {
temporal = esquina.transform.rotation.eulerAngles.z / 90f;
Rz = Mathf.RoundToInt (