21. CLASE RIGIDBODY (V)









centerOfMass:

CenterOfMass : Vector3


Representa el centro de masa relativo al origen del transform. El centro del transform se corresponde a las coordenadas locales 0,0,0, y si no reubicamos vía un script el centro de masa, Unity lo calcula automáticamente (suele coincidir con el centro del transform)

Si bien no es una variable con demasiada utilidad, sí que a veces puede servirnos para, por ejemplo, hacer más estable y menos propenso a los vuelcos a un coche. Un coche con un centro de masa/gravedad bajo es menos propenso a volcar.

 
rigidbody.centerOfMass = Vector3 (0, -2, 0);



worldCenterOfMass:

var worldCenterOfMass : Vector3


Esta variable nos indica el centro de masa/gravedad de un rigidbody en el espacio global. Tengamos presente que a diferencia de la anterior esta variable es de solo lectura.


detectCollisions:

Var detectCollisions : Boolean


Indica si la detección de colisiones está habilitada (por defecto, sí). Deshabilitar esta variable es util si tenemos un objeto que es kinemático y queremos evitar que el sistema realice cálculos inútiles de detección de colisiones para él.


interpolation:

Var interpolation : RigidbodyInterpolation


La interpolación nos permite suavizar el efecto de correr físicas en un framerate fijo. Por defecto la interpolación está off. Comunmente se usa la interpolación de rigidbodies en los personajes de los jugadores. Las físicas suelen transcurrir en pasos fijos (FixedUpdate), mientras los gráficos son renderizados en framerates variables. Esto puede llevar a que los objetos parezcan temblorosos, porque físicas y gráficos no están completamente sincronizados. El efecto es sutil pero perceptible, y sobre todo afecta a los personajes principales que son seguidos por alguna cámara. Es recomentable poner en on la interpolación para el personaje principal pero deshabilitarla para los demás.

La enumeración RigidbodyInterpolation tiene los siguientes valores:


None Significa que no hay interpolación. Es la opción por defecto.
Interpolate La interpolación irá con un poco de retraso, pero puede ser un
poco más suave que la extrapolación.
Extrapolate La extrapolación predecirá la posición del rigidbody en base a la
velocidad actual.



sleepVelocity:

var sleepVelocity : float


La velocidad lineal, por debajo de la cual los objetos empiezan a dormir (por defecto 0.14) en un rango que va de 0 a infinity. La hecho de que los objetos duerman es una optimización que permite que el engine de físicas deje de procesar para estor rigidbodies. Así, cuando el objeto se duerme deja de detectar colisiones o realizar simulaciones, por ejemplo.


sleepAngularVelocity:

var sleepAngularVelocity : float


La velocidad angular, por debajo de los cuales los objetos empiezan a dormirse (por defecto 0.14)


maxAngularVelocity:

Var maxAngularVelocity : float


Representa la maxima velocidad angular del rigidbody (por defecto 7) en un rango que va de 0 a infinity.

Se tiene que fijar una velocidad angular máxima para evitar inestabilidades numéricas con objetos rotando demasiado rápido.



Bueno, y hasta aquí las variables de la clase Rigidbody. He omitido la explicación de unas cuantas que me han parecido poco importantes, de poco uso.

La próxima lección empezamos con las funciones.

POSTED BY UnityScripts
POSTED IN
DISCUSSION 2 Comments

2 Responses to : 21. CLASE RIGIDBODY (V)

  1. Anónimo says:

    gracias te pasaste

  2. Unknown says:

    Me gustaría saber si puedes hablar mas detenedimante de var sleepAngularVelocity : float o si lo harás en un futuro y ademas acerca de las formas de optimización

Leave a Reply

Con la tecnología de Blogger.