Método FixedUpdate en Unity

Introducción

En este artícu­lo vamos a analizar el méto­do FixedUp­date de Uni­ty el cual per­mite realizar cam­bios equies­pa­ci­a­dos en el tiempo.

Un méto­do es una fun­ción defini­da en un Script que puede ser eje­cu­ta­da y real­iza la tarea que defin­i­mos en su inte­ri­or. Para saber más sobre méto­dos en pro­gra­mación puedes leer este artícu­lo o ver un video que resume la infor­ma­ción.

🟢 Difer­en­cias entre UPDATE y FIXEDUPDATE en UNITY
 

MIRA ESTE DESCABELLADO EXPERIMENTO

Método FixedUpdate en Unity — MonoBehaviours

La fun­ción FixedUp­date está defini­da en la clase MonoBe­hav­iour y se va a eje­cu­tar automáti­ca­mente en inter­va­l­os reg­u­lares de tiem­po si el MonoBe­hav­iour se encuen­tra activo.

Por defec­to, el tiem­po entre eje­cu­ciones con­sec­u­ti­vas de FixedUp­date es de 20 milise­gun­dos o 0.02 segun­dos. Este tiem­po lo podemos ver y mod­i­ficar en la pes­taña Edit > Project Set­tings > Time — Fixed Timestep.

Cuan­do creamos un nue­vo Script en Uni­ty, por defec­to nos apare­cerá algo de códi­go ya escrito. En este códi­go se define una Clase de Pro­gra­mación que se lla­ma igual al nom­bre que le dimos al Script y que extiende o here­da su com­por­tamien­to de MonoBe­hav­iour, esto en tér­mi­nos sim­ples sig­nifi­ca que nue­stro Script es en sí un MonoBe­hav­iour o un caso par­tic­u­lar de MonoBehaviour.

Los MonoBe­hav­iours se pueden agre­gar a los GameOb­jects que se encuen­tran en la jer­ar­quía, esto podemos hac­er­lo des­de el inspec­tor usan­do el botón "Add Com­po­nent" o sim­ple­mente arras­tran­do el Script al inspec­tor del GameObject.

Ejecución de la función FixedUpdate

Mien­tras el juego está cor­rien­do, Uni­ty automáti­ca­mente toma todos los MonoBe­hav­iours que hay en la esce­na y real­iza la eje­cu­ción de los méto­dos FixedUp­date cada vez que se cumple el tiem­po "Fixed Timestep". De modo que no debe­mos hac­er la eje­cu­ción de este méto­do man­ual­mente, el motor se encar­ga de ello.

Quiere decir que la fun­ción FixedUp­date se eje­cu­tará de man­era per­iódi­ca mien­tras nue­stro juego esté corriendo.

Inde­pen­di­en­te­mente de los FPS (frames por segun­do) de nue­stro juego, el méto­do FixedUp­date que se eje­cu­tará en inter­va­l­os reg­u­lares, 50 veces por segun­do si el Fixed Timestep está setea­do en 0.02 segundos.

FixedUpdate vs Update

Existe otra fun­ción de actu­al­ización que se eje­cu­ta automáti­ca­mente cada cier­to tiem­po, se tra­ta de la fun­ción Update.

Exper­i­men­to para enten­der las difer­en­cias entre Update y FixedUpdate

Conclusión — FixedUpdate para cambios equiespaciados en el tiempo

El méto­do FixedUp­date rep­re­sen­ta la parte dinámi­ca de un juego en Uni­ty, cuan­do quer­e­mos pro­ducir cam­bios en el tiem­po y que estos cam­bios se apliquen en inter­va­l­os reg­u­lares, recur­ri­mos a la fun­ción FixedUpdate.

Una apli­cación típi­ca de esta fun­ción es realizar el movimien­to de obje­tos o algu­nas ani­ma­ciones que hace­mos de man­era procedural.

Al mover obje­tos en FixedUp­date, la veloci­dad del obje­to será la que indique­mos. Si en cam­bio move­mos obje­tos en la fun­ción Update, cuan­do nue­stro juego fun­cione a más FPS, el obje­to se moverá más rápi­do que cuan­do el juego fun­cione más lento.

Es útil enten­der cómo es el orden de eje­cu­ción de los méto­dos Start, Update y FixedUp­date ya que nos per­mite iden­ti­ficar dis­tin­tos momen­tos en la eje­cu­ción del juego.

YouTube
Scroll al inicio
Secured By miniOrange