Control de la posición de un objeto a través de simulaciones de física.
La adición de un componente Rigidbody a un objeto pondrá su movimiento bajo el control del motor de física de Unity. Incluso sin agregar ningún código, un objeto Rigidbody será tirado hacia abajo por gravedad y reaccionará a colisiones con objetos entrantes si el componente Collider adecuado también está presente.
El Rigidbody también tiene una API de scripting que le permite aplicar fuerzas al objeto y controlarlo de una manera físicamente realista. Por ejemplo, el comportamiento de un coche se puede especificar en términos de las fuerzas aplicadas por las ruedas. Dada esta información, el motor de física puede manejar la mayoría de los otros aspectos del movimiento del automóvil, por lo que se acelerará de manera realista y responderá correctamente a las colisiones.
En un script, se recomienda la función FixedUpdate como el lugar para aplicar fuerzas y cambiar la configuración del Rigidbody (en oposición a Update, que se utiliza para la mayoría de las tareas de actualización del fame). La razón de esto es que las actualizaciones de física se llevan a cabo en pasos de tiempo medidos que no coinciden con la actualización del frame. FixedUpdate se llama inmediatamente antes de cada actualización de física por lo que cualquier cambio hecho allí será procesado directamente.
Un problema común al comenzar con Rigidbodies es que la física del juego parece funcionar en "cámara lenta". Esto en realidad se debe a la escala utilizada para sus modelos. Los valores de gravedad por defecto suponen que una unidad mundial corresponde a un metro de distancia. Con los juegos no físicos, no hace mucha diferencia si sus modelos son todas de 100 unidades de largo, pero cuando se utiliza física, estos objetos serán tratados como objetos muy grandes. Si se utiliza una gran escala para objetos que se supone que son pequeños, van a aparecer que caen muy lento - el motor de física piensa que son objetos muy grandes que caen sobre distancias muy grandes. Con esto en mente, asegúrese de mantener sus objetos más o menos a su escala en la vida real (por lo que un coche debe ser de aproximadamente 4 unidades = 4 metros, por ejemplo).
angularDrag | La fricción (drag) angular del objeto. |
angularVelocity | The angular velocity vector of the rigidbody measured in radians per second. |
centerOfMass | El centro de masa relativo al origen del transform. |
collisionDetectionMode | El modo de detección de colisiones del Rigidbody. |
constraints | Controla qué grados de libertad se permiten para la simulación de este Rigidbody. |
detectCollisions | ¿Debería estar habilitada la detección de colisiones? (Por defecto siempre está habilitada). |
drag | La fricción del objeto. |
freezeRotation | Controla si la física cambiará la rotación del objeto. |
inertiaTensor | El tensor de inercia diagonal de masa con respecto al centro de masa. |
inertiaTensorRotation | La rotación del tensor de inercia. |
interpolation | La interpolación le permite suavizar el efecto de ejecutar la física a una velocidad de frame fija. |
isKinematic | Controla si las físicas afectan al rigidbody. |
mass | La masa del rigidbody. |
maxAngularVelocity | La velocidad angular maxima del rigidbody. (Predeterminado 7) rango { 0, infinidad}. |
maxDepenetrationVelocity | Velocidad maxima de un rigidbody cuando se mueve afuera de un estado penetrante. |
position | La posición del rigidbody. |
rotation | La rotación del rigidbody. |
sleepThreshold | El umbral de energía normalizado en masa, por debajo del cual los objetos empiezan a dormirse. |
solverIterations | El solverIterations determina qué tan preciso los contactos de los joints (articulaciones) Rigidbody y colisiones se resuelven. Anula Physics.defaultSolverIterations. Debe ser positivo. |
solverVelocityIterations | El solverVelocityIterations afecta qué tan preciso se resuelven los contactos de colisión y joints (articulaciones) Rigidbody. Anula Physics.defaultSolverVelocityIterations. Debe ser positivo. |
useGravity | Controla si la gravedad afecta este rigidbody. |
velocity | El vector velocidad del rigidbody. |
worldCenterOfMass | El centro de masa del rigidbody en el espacio del mundo (Lectura solamente). |
AddExplosionForce | Aplica una fuerza a un rigidbody que simula efectos de explosión. |
AddForce | Agrega una fuerza al Rigidbody. |
AddForceAtPosition | Aplica una fuerza force en una posición position. Como resultado esto aplicará un esfuerzo de torsión y una fuerza en el objeto. |
AddRelativeForce | Aplica al rigidbody una fuerza relativa a su sistema de coordenadas. |
AddRelativeTorque | Agrega un torque al rigidbody relativo a su sistema de coordenadas. |
AddTorque | Aplica un esfuerzo de torsión al Rigidbody. |
ClosestPointOnBounds | El punto más cercano al cubo delimitador de los Colliders adjuntos. |
GetPointVelocity | La velocidad del rigidbody en el punto worldPoint en el espacio global. |
GetRelativePointVelocity | La velocidad relativa del rigidbody en el punto relativePoint. |
IsSleeping | ¿Está "durmiendo" el rigidbody? |
MovePosition | Mueve el rigidbody a la posición position. |
MoveRotation | Rota el Rigidbody con una rotación rotation. |
ResetCenterOfMass | Re-inicia el centro de masa del rigidbody. |
ResetInertiaTensor | Re-inicia el valor del tensor de inercia y rotación. |
SetDensity | Establece la masa basándose en los colliders adjuntos y una densidad constante. |
Sleep | Obliga a un rigidbody a "dormir" al menos durante un frame. |
SweepTest | Prueba si un rigidbody colisiona con cualquier cosa, si se moviera a través de la escena. |
SweepTestAll | Igual que Rigidbody.SweepTest, pero devuelve todos los impactos. |
WakeUp | Obliga a un rigidbody a "despertarse". |
OnCollisionEnter | OnCollisionEnter se llama cuando el Collider o Rigidbody entra en contacto con otro Collider/Rigidbody. |
OnCollisionExit | OnCollisionExit se llama cuando el Collider o Rigidbody ha dejado de tocar otro Collider o Rigidbody. |
OnCollisionStay | OnCollisionStay se llama cada frame para cada collider/rigidbody que está tocando rigidbody/collider. |
gameObject | El game object que tiene este componente adjunto. Un componente siempre está adjunto a un game object. |
tag | El tag de este game object. |
transform | The Transform attached to this GameObject. |
hideFlags | ¿Debería el objeto estar oculto, guardado con la escena o modificable por el usuario? |
name | El nombre del objeto. |
BroadcastMessage | Llama al método denominado methodName de todos los MonoBehaviour en este game objecto en cualquiera de sus hijos. |
CompareTag | ¿Este game object está etiquetado con tag? |
GetComponent | Devuelve un componente de tipo type si el game object tiene a alguno adjuntado, o null si no lo tiene. |
GetComponentInChildren | Retorna el componente de tipo type en el GameObject o cualquiera de sus hijos utilizando depth first search (busqueda de profundidad). |
GetComponentInParent | Retorna el componente de tipo type en el GameObject o cualquiera de sus padres. |
GetComponents | Retorna todos los componentes de tipo type en el GameObject. |
GetComponentsInChildren | Retorna todos los componentes de tipo type en el GameObject o cualquiera de sus hijo. |
GetComponentsInParent | Retorna todos los componentes de tipo type en el GameObject o cualquiera de sus padres. |
SendMessage | Llama al método denominado methodName en cada MonoBehaviour de este game object. |
SendMessageUpwards | Llama al método denominado methodName en todos los MonoBehaviour de este juego y en todos los ancestros del behaviour. |
GetInstanceID | Devuelve el id de la instancia del objeto. |
ToString | Returns the name of the GameObject. |
Destroy | Elimina un gameobject, componente o asset. |
DestroyImmediate | Destroys the object obj immediately. You are strongly recommended to use Destroy instead. |
DontDestroyOnLoad | Hace que el objeto target no sea destruido automáticamente cuando se cargue una nueva escena. |
FindObjectOfType | Devuelve el primer objeto activo cargado de tipo type. |
FindObjectsOfType | Devuelve una lista de todos los objetos activos cargados de tipo type. |
Instantiate | Clona el objeto original y devuelve el clon. |
bool | ¿Existe el objeto? |
operator != | Compare si dos objetos se refieren a un objeto diferente. |
operator == | Compara dos referencias de objeto para ver si se refieren al mismo objeto. |