Subtitles section Play video Print subtitles As a general rule, if you're going to have moving game objects in your game you should make sure that they are rigidbody objects. Rigidbodies are components that allow a game object to be effected by physics. They allow the object to fall under gravity, and have physics properties such as mass, drag and velocity. When we add a rigidbody component to a game object we often then refer to it as a rigidbody object. A rigidbody component is required for any physics based interaction, and the game object must also have a collider attached in order to interact with other physics objects. Without a rigidbody our power cube will simply hover in mid air. But let's see what happens when we add one. Like any other component it can be added using the Add Component button at at the bottom of the inspector, or from the 'Component' top menu. You will find it under the Physics section. Now our object falls under gravity and can be controlled by the physics engine and any forces that are applied to it. Rigidbodies have numerous options. Firstly there are settings to control the mass, drag and angular drag of the game object. The mass of the object effects how collisions are treated with the object. Game objects with a higher mass will react less when collided with a lower mass game object. The drag of a game object effects how quickly it will slow down without other interactions. Think of it like air resistance. It's used to determine the rate of a loss of linear velocity. Similarly, angular drag effects how quickly the game object will slow it's angular velocity, i.e. how fast it is rotating. So for example if you're adding torque to the object to rotate it, the angular drag will create resistance to this force. The next option is whether or not the game object is effected by gravity. By enabling this checkbox we use gravity. Settings for gravity can be seen in the Edit - Project Settings - Physics area of Unity. As you can see it's a 3 dimensional vector which by default has a real world value of -9.81. Because you can customise it globally here you could also create interesting effects Such as low gravity for a platformer or even setting it to a different axis as part of a puzzle game. For example, let's add gravity to the Z axis by a value of 5. And now the power cube is pulled towards towards the global Z axis. The Is Kinematic setting effects whether or not a rigid body will react to physics. Ordinarily when a scene begins, all static geometry, meaning any non-rigidbody objects are checked once by the physics engine and not checked again for efficiency. However when you move a static object the physics engine must re-check all other static objects for the sake of accuracy, and this can be expensive to performance. To avoid this, Kinematic rigidbody objects can be used and moved via their transform by using the Translate function. This means that you can have physics objects that effect others but are not effected themselves. An obvious example of this would be the paddle in a Pong or Breakout style game. In this example our rigidbody power cube has Use Gravity checked. When we press play, the object falls to the ground. We also have our round prop samoflange ball object, which has a similar component setup. If the power cube does not have gravity then it will not fall under it, but it will be effected by other objects. If we don't want it to be effected by other objects we can use Is Kinematic. And as stated we can also move the object via it's transform. So we'll make use of this simple script, which uses the translate function to move it via it's forward direction every frame. And as you can see, the object still interacts with the others but remains a rigidbody, so is constantly informing the physics engine of it's location and not forcing the physics engine to re-evaluate the entire scene. The Interpolate and Extrapolate settings are there to solve jittering. If you experience slight movement of your object when moving it via it's rigidbody, make use of the interpolate setting in order to smooth the transform movement based on the previous frame. And the extrapolate setting to smooth based on a predicted location in the next frame. The next setting is for the type of collision detection. We have Discrete, Continuous and Continuous Dynamic. The default is discrete and unless you have any problems you should use discrete. Continuous is for fast moving objects that are interacting with static geometry. And continuous dynamic is for fast moving objects that are interacting with other dynamic objects. Finally the constraints section of the rigidbody component allow you to constrain movement or rotation of the object by physics. For example, if you had a Tetris style game you might not want the cubes of your game to rotate as they fell in to place. You could constrain this using the rotation constraints here. In this example our power cube is falling on to the workbench. It's a rigid body that has Use Gravity checked. And as standard it falls like this. If we didn't want it to rotate as it falls we can freeze the rotation within the constraints. And now when it falls, no rotation.
B2 UK object game object gravity component effected drag Physics Objects (Rigidbodies) - Unity Official Tutorials 94 5 朱瑛 posted on 2014/05/02 More Share Save Report Video vocabulary