Version: 2017.3

Rigidbody

class in UnityEngine

/

Hereda de:Component

Cambiar al Manual

Descripción

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).

Variables

angularDragLa fricción (drag) angular del objeto.
angularVelocityThe angular velocity vector of the rigidbody measured in radians per second.
centerOfMassEl centro de masa relativo al origen del transform.
collisionDetectionModeEl modo de detección de colisiones del Rigidbody.
constraintsControla 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).
dragLa fricción del objeto.
freezeRotationControla si la física cambiará la rotación del objeto.
inertiaTensorEl tensor de inercia diagonal de masa con respecto al centro de masa.
inertiaTensorRotationLa rotación del tensor de inercia.
interpolationLa interpolación le permite suavizar el efecto de ejecutar la física a una velocidad de frame fija.
isKinematicControla si las físicas afectan al rigidbody.
massLa masa del rigidbody.
maxAngularVelocityLa velocidad angular maxima del rigidbody. (Predeterminado 7) rango { 0, infinidad}.
maxDepenetrationVelocityVelocidad maxima de un rigidbody cuando se mueve afuera de un estado penetrante.
positionLa posición del rigidbody.
rotationLa rotación del rigidbody.
sleepThresholdEl umbral de energía normalizado en masa, por debajo del cual los objetos empiezan a dormirse.
solverIterationsEl solverIterations determina qué tan preciso los contactos de los joints (articulaciones) Rigidbody y colisiones se resuelven. Anula Physics.defaultSolverIterations. Debe ser positivo.
solverVelocityIterationsEl solverVelocityIterations afecta qué tan preciso se resuelven los contactos de colisión y joints (articulaciones) Rigidbody. Anula Physics.defaultSolverVelocityIterations. Debe ser positivo.
useGravityControla si la gravedad afecta este rigidbody.
velocityEl vector velocidad del rigidbody.
worldCenterOfMassEl centro de masa del rigidbody en el espacio del mundo (Lectura solamente).

Funciones Públicas

AddExplosionForceAplica una fuerza a un rigidbody que simula efectos de explosión.
AddForceAgrega una fuerza al Rigidbody.
AddForceAtPositionAplica una fuerza force en una posición position. Como resultado esto aplicará un esfuerzo de torsión y una fuerza en el objeto.
AddRelativeForceAplica al rigidbody una fuerza relativa a su sistema de coordenadas.
AddRelativeTorqueAgrega un torque al rigidbody relativo a su sistema de coordenadas.
AddTorqueAplica un esfuerzo de torsión al Rigidbody.
ClosestPointOnBoundsEl punto más cercano al cubo delimitador de los Colliders adjuntos.
GetPointVelocityLa velocidad del rigidbody en el punto worldPoint en el espacio global.
GetRelativePointVelocityLa velocidad relativa del rigidbody en el punto relativePoint.
IsSleeping¿Está "durmiendo" el rigidbody?
MovePositionMueve el rigidbody a la posición position.
MoveRotationRota el Rigidbody con una rotación rotation.
ResetCenterOfMassRe-inicia el centro de masa del rigidbody.
ResetInertiaTensorRe-inicia el valor del tensor de inercia y rotación.
SetDensityEstablece la masa basándose en los colliders adjuntos y una densidad constante.
SleepObliga a un rigidbody a "dormir" al menos durante un frame.
SweepTestPrueba si un rigidbody colisiona con cualquier cosa, si se moviera a través de la escena.
SweepTestAllIgual que Rigidbody.SweepTest, pero devuelve todos los impactos.
WakeUpObliga a un rigidbody a "despertarse".

Mensajes

OnCollisionEnterOnCollisionEnter se llama cuando el Collider o Rigidbody entra en contacto con otro Collider/Rigidbody.
OnCollisionExitOnCollisionExit se llama cuando el Collider o Rigidbody ha dejado de tocar otro Collider o Rigidbody.
OnCollisionStayOnCollisionStay se llama cada frame para cada collider/rigidbody que está tocando rigidbody/collider.

Miembros heredados

Variables

gameObjectEl game object que tiene este componente adjunto. Un componente siempre está adjunto a un game object.
tagEl tag de este game object.
transformThe Transform attached to this GameObject.
hideFlags¿Debería el objeto estar oculto, guardado con la escena o modificable por el usuario?
nameEl nombre del objeto.

Funciones Públicas

BroadcastMessageLlama 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?
GetComponentDevuelve un componente de tipo type si el game object tiene a alguno adjuntado, o null si no lo tiene.
GetComponentInChildrenRetorna el componente de tipo type en el GameObject o cualquiera de sus hijos utilizando depth first search (busqueda de profundidad).
GetComponentInParentRetorna el componente de tipo type en el GameObject o cualquiera de sus padres.
GetComponentsRetorna todos los componentes de tipo type en el GameObject.
GetComponentsInChildrenRetorna todos los componentes de tipo type en el GameObject o cualquiera de sus hijo.
GetComponentsInParentRetorna todos los componentes de tipo type en el GameObject o cualquiera de sus padres.
SendMessageLlama al método denominado methodName en cada MonoBehaviour de este game object.
SendMessageUpwardsLlama al método denominado methodName en todos los MonoBehaviour de este juego y en todos los ancestros del behaviour.
GetInstanceIDDevuelve el id de la instancia del objeto.
ToStringReturns the name of the GameObject.

Funciones Estáticas

DestroyElimina un gameobject, componente o asset.
DestroyImmediateDestroys the object obj immediately. You are strongly recommended to use Destroy instead.
DontDestroyOnLoadHace que el objeto target no sea destruido automáticamente cuando se cargue una nueva escena.
FindObjectOfTypeDevuelve el primer objeto activo cargado de tipo type.
FindObjectsOfTypeDevuelve una lista de todos los objetos activos cargados de tipo type.
InstantiateClona el objeto original y devuelve el clon.

Operadores

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.