20 de mayo de 2024


Hoy empecé trabajando con el script de Fish.

Tuve problemas para entender las rotaciones de los gameObjects, quería que, si la rotación en Z era mayor a cierto rango representado entre dos float ('randomRotationAngle'), se invirtiera la dirección de la rotación.

En internet, encontré el método 'NormalizeAngle(float angle)', el cual logré comprenderlo luego de ver videos sobre ángulos, restos de divisiones, entre otros.

Básicamente, primero comprueba si el valor de 'angle' es mayor a una revolución (o mayor a 360 grados), para "resetearlo" a cero. Si se le pasan 398 grados, dará como resultado 38 grados, normalizando los valores dentro del rango 0-360 grados.

Luego, cuando la variable 'angle' sea mayor a la mitad de una revolución (180 grados), se restará una revolución entera. Ahora tiene sentido comparar el valor de 'angle' (tomando su valor absoluto) con el de 'randomRotationAngle'.

Me di cuenta de que Unity utiliza la convención a la hora de darle valores a las rotaciones en el Transform. Si se rota el gameObject en sentido antihorario, el valor aumentará, y si se gira en sentido horario, el valor disminuirá.

Testeé todos los scripts que he rehecho hasta ahora en una escena de Unity, y están funcionales. Mañana seguiré avanzando, o eso espero. Hoy estuve 5 horas trabajando.

Leave a comment

Log in with itch.io to leave a comment.