The Rigidbody 3D component lets objects in Unity move and react to forces like gravity and collisions, making them behave like real things.
Rigidbody 3D component in Unity
Start learning this pattern below
Jump into concepts and practice - no test required
Rigidbody rb = gameObject.AddComponent<Rigidbody>();
rb.mass = 1.0f;
rb.useGravity = true;
rb.isKinematic = false;You add Rigidbody to a GameObject to make it physical.
Properties like mass, gravity, and kinematic control how it moves.
Rigidbody rb = gameObject.AddComponent<Rigidbody>();
rb.mass = 2.0f;
rb.useGravity = true;Rigidbody rb = GetComponent<Rigidbody>(); rb.isKinematic = true;
Rigidbody rb = gameObject.AddComponent<Rigidbody>(); rb.AddForce(new Vector3(0, 10, 0));
This script adds a Rigidbody to the object so it falls with gravity. When you press space, it pushes the object up like a jump.
using UnityEngine; public class SimplePhysics : MonoBehaviour { Rigidbody rb; void Start() { rb = gameObject.AddComponent<Rigidbody>(); rb.mass = 1.0f; rb.useGravity = true; } void Update() { if (Input.GetKeyDown(KeyCode.Space)) { rb.AddForce(new Vector3(0, 300, 0)); Debug.Log("Jump force applied!"); } } }
Make sure your object has a Collider component to interact with physics properly.
Setting isKinematic to true stops physics from moving the object, useful for manual control.
Use AddForce to push objects instead of changing position directly for realistic movement.
The Rigidbody 3D component makes objects move and react like real things using physics.
Add Rigidbody to objects to enable gravity, forces, and collisions.
Control Rigidbody properties to change how objects behave physically.
Practice
Rigidbody component to a 3D object in Unity?Solution
Step 1: Understand Rigidbody role
The Rigidbody component allows objects to move and react using physics rules like gravity and collisions.Step 2: Compare options
Only To make the object respond to physics like gravity and collisions describes physics behavior, others are unrelated to Rigidbody.Final Answer:
To make the object respond to physics like gravity and collisions -> Option CQuick Check:
Rigidbody = physics control [OK]
- Confusing Rigidbody with visual or audio components
- Thinking Rigidbody changes appearance
- Assuming Rigidbody disables collisions
Solution
Step 1: Identify correct method to get Rigidbody
UseGetComponent<Rigidbody>()to get Rigidbody on the same GameObject.Step 2: Check other options
Rigidbody rb = GetComponent<Collider>(); gets Collider, not Rigidbody. Rigidbody rb = FindObjectOfType<Rigidbody>(); finds any Rigidbody in scene, not necessarily on this object. Rigidbody rb = new Rigidbody(); creates a new Rigidbody instance, which is incorrect.Final Answer:
Rigidbody rb = GetComponent<Rigidbody>(); -> Option BQuick Check:
GetComponent<Rigidbody>() = correct access [OK]
- Using GetComponent<Collider>() instead of Rigidbody
- Creating new Rigidbody with new keyword
- Using FindObjectOfType which is less specific
void Start() {
Rigidbody rb = GetComponent<Rigidbody>();
rb.useGravity = false;
rb.AddForce(new Vector3(0, 10, 0), ForceMode.Impulse);
}
What will happen to the object when the game starts?Solution
Step 1: Analyze Rigidbody settings
SettinguseGravity = falsedisables gravity effect on the object.Step 2: Analyze AddForce effect
Adding an impulse force upwards makes the object jump up instantly.Step 3: Combine effects
Since gravity is off, the object will jump up but not fall back down.Final Answer:
The object will jump up with an impulse and stay in the air without falling -> Option AQuick Check:
useGravity false + impulse = jump up, no fall [OK]
- Assuming gravity still pulls object down
- Thinking AddForce alone moves object continuously
- Confusing ForceMode types
void Update() {
Rigidbody rb = GetComponent<Rigidbody>();
rb.velocity = new Vector3(0, 5, 0);
}
What is the likely problem?Solution
Step 1: Understand Rigidbody physics update timing
Physics updates happen in FixedUpdate, not Update. Setting velocity in Update can cause inconsistent behavior.Step 2: Identify correct method
Velocity changes should be done inside FixedUpdate for smooth physics simulation.Final Answer:
Setting velocity in Update causes physics conflicts; should use FixedUpdate -> Option DQuick Check:
Use FixedUpdate for Rigidbody velocity changes [OK]
- Forgetting Rigidbody component is required
- Changing velocity in Update instead of FixedUpdate
- Confusing velocity vector directions
Solution
Step 1: Understand bouncing with physics
Bouncing requires gravity, collision response, and energy loss over time.Step 2: Use drag and physics material
Setting drag slows the ball gradually. Physics Material's bounciness controls bounce height and energy loss.Step 3: Evaluate other options
Set Rigidbody'suseGravityto false and apply upward force every frame disables gravity, so no natural bounce. Set Rigidbody'sisKinematicto true and move the ball manually in Update disables physics simulation. Disable Rigidbody and use Transform.Translate to simulate bouncing ignores physics entirely.Final Answer:
Set Rigidbody's drag to a small positive value and use Physics Material with bounciness less than 1 -> Option AQuick Check:
Drag + bounciness < 1 = realistic bounce loss [OK]
- Turning off gravity disables bouncing
- Making Rigidbody kinematic stops physics
- Using Transform.Translate ignores physics
