Version: 5.4
Audio Profiler
GPU Profiler

Perfilador de Física(Physics Profiler)

El Physics Profiler muestra estadísticas acerca de la física que ha sido procesada por el motor de física en su Escena. Esta información lo puede ayudar para diagnosticar y resolver problemas de rendimiento o discrepancias inesperadas relacionadas con la física en su escena.

Physics Profiler
Physics Profiler

Propiedades

Property: Función:
Active Rigidbodies El número de componentes de Rigidbody que se están moviendo y no están dormidos. El número mostrado puede no ser exacto; Sólo cuenta aquellos que se procesan durante el tiempo del perfil, que puede no incluir todos los componentes de Rigidbody activos en la escena.
Sleeping Rigidbodies El número de componentes Rigidbody que no se relacionan con el motor de física y, por lo tanto, no necesitan ser procesados activamente (consulte Visión general del Rigidbody: Dormir para obtener más información). El número mostrado aquí puede no ser exacto.
Number of Contacts El número total de puntos de contacto entre todos los colliders en la escena.
Static Colliders El número de colliders conectados a GameObjects sin componentes Rigidbody. Estos GameObjects nunca se mueven utilizando un componente de física.
Dynamic Colliders El número de colliders conectados a GameObjects con componentes Rigidbody. Estos GameObjects se mueven usando un componente de física.

Nota: El Physics Profiler puede no contar cada GameObject que tiene un componente basado en la física; Sólo cuenta con GameObjects que han sido procesados por el motor de física. Para calcular el número exacto de GameObjects con componentes físicos específicos conectados, escriba un script personalizado utilizando la función FindObjectsOfType.

Utilizando el Physics Profiler para entender problemas de rendimiento

La simulación de física se ejecuta en un ciclo de actualización de frecuencia fija independiente desde el bucle de actualización de la lógica principal y sólo puede avanzar a través de un Time.fixedDeltaTime por llamada. Esto es similar a la diferencia entre Update() y FixedUpdate() (véase la documentación del Time Manager para más información).

Cuando se produce una lógica pesada o un frame gráfico que tarda mucho tiempo, el Profiler de Física tiene que llamar a la simulación física varias veces por frame. Esto significa que un frame que ya requiere muchos recursos requiere aún más tiempo y recursos, lo que fácilmente puede hacer que la simulación de física se detenga temporalmente debido al valor Maximum Allowed Timestep (que se puede establecer en Edit > Project Settings > Time).

Puede detectar esto en su proyecto seleccionando CPU Usage Profiler y comprobando el número de llamadas para Physics.Processing o Physics.Simulate en la sección Overview.

Physics Profiler con el valor de 1 en la columna Calls
Physics Profiler con el valor de 1 en la columna Calls

En esta imagen de ejemplo, el valor de 1 en la columna Calls indica que la simulación de física fue llamada una vez sobre el último frame lógico.

Un recuento de llamadas cercano a 10 podría indicar un problema. Como primera solución, reduzca la frecuencia de la simulación física; Si el problema continúa, compruebe lo que podría haber causado el frame pesado justo antes de que el Physics Profiler tuviera que usar muchas llamadas de simulación para ponerse al día con el tiempo de juego. A veces, un frame de gráficos pesados puede causar más llamadas de simulación física más adelante en una escena.

Para obtener información más detallada sobre la simulación física en su escena, haga clic en la flecha de triángulo para expandir Physics.Processing como se muestra en la captura de pantalla anterior. Esto muestra los nombres reales de las tareas del motor de la física que se ejecutan para actualizar su escena. Los dos nombres más comunes que puedes ver son:

  • Pxs: abreviatura de ‘PhysX solver’, que son tareas del motor de física requeridas por los joints (articulaciones), así como la resolución de contactos para los cuerpos sobrepuestos.

  • ScScene: se utiliza para las tareas necesarias para actualizar la escena, ejecutando la fase amplia y la fase estrecha, y los cuerpos integradores (moviéndolos en el espacio debido a las fuerzas y los impulsos). Véase el trabajo de Steven M. LaValle sobre algoritmos de Planning para una definición sobre fases de detección de colisión de dos fases.

Audio Profiler
GPU Profiler