ドキュメント

Unity Engine


User Manual

Script Reference

Unity Engine


Kinematic Body Type reference

Explore the properties of the Kinematic Body Type.
読み終わるまでの所要時間 4 分最終更新 1ヶ月前

A Kinematic Rigidbody 2D behaves like an immovable object (as if it has infinite mass) during collisions, and mass-related properties are not available with this Body Type.

Kinematic Rigidbody 2D properties

Property

Function

Body TypeSelect to set the movement behavior and Collider 2D interaction of this Rigidbody 2D’s component settings.
    DynamicSelect to set this Rigidbody 2D to the Dynamic Body Type, which is designed to move under simulation and has all Rigidbody 2D properties available. This is the default Body Type for a Rigidbody 2D.
    KinematicSelect to set this Rigidbody 2D to the Kinematic Body Type, which is designed to move under simulation but only under very explicit user control.
    StaticSelect to set this Rigidbody 2D to the Static Body Type, which is designed to not move under simulation at all and behaves like an immovable object with infinite mass. Refer to Body Type: Static for more information.
MaterialSet a common physics material for all Collider 2Ds attached to this Rigidbody 2D. Note: A Collider 2D uses its own Material property if it has one set. If there is no Material specified here or in the Collider 2D, the default option is None (Physics Material 2D). This uses a default Material which you can set in the Physics 2D window.
SimulatedEnable Simulated to have the Rigidbody 2D and any attached Collider 2Ds and Joint 2Ds to interact with the physics simulation during runtime. If this is disabled, these components do not interact with the simulation. Refer to Rigidbody 2D properties: Simulated, below for more information. This property is enabled by default.
Full Kinematic ContactEnable this property if you want the Rigidbody 2D to be able to collide with all other Rigidbody 2D Body Types. Note: When this property is disabled, the Kinematic Rigidbody 2D only collides with Dynamic Rigidbody 2Ds. See Using Full Kinematic Contacts for more details.
Collision DetectionDefine how collisions between Collider 2Ds are detected.
    DiscreteSelect this option to allow GameObjects with Rigidbody 2Ds and Collider 2Ds to overlap or pass through each other during a physics update, if they are moving fast enough. Collision contacts are only generated at the new position.
    ContinuousSelect this option to ensure GameObjects with Rigidbody 2Ds and Collider 2Ds do not pass through each other during a physics update. Instead, Unity calculates the first impact point of any of the Collider 2Ds, and moves the GameObject there. Note: This option takes more CPU time than Discrete.
Sleeping ModeDefine how the GameObject "sleeps" to save processor time when it is at rest.
    Never SleepSelect this option to have sleeping disabled. Important: This should be avoided where possible, as it can impact system resources.
    Start AwakeSelect this to have the GameObject initially awake.
    Start AsleepSelect this to have the GameObject initially asleep but can be awaken by collisions.
InterpolateDefine how the GameObject's movement is interpolated between physics updates. Note: This is useful when motion tends to be jerky.
    NoneSelect this to not apply movement smoothing.
    InterpolateSelect this to smoothen movement based on the GameObject's positions in previous frames.
    ExtrapolateSelect this to smoothen movement is smoothed based on an estimate of its position in the next frame.
ConstraintsDefine any restrictions on the Rigidbody 2D’s motion.
    Freeze PositionStops the Rigidbody 2D moving in the X and Y world axes selectively.
    Freeze RotationStops the Rigidbody 2D rotating around the Z world axis selectively.
Layer OverridesExpand for the Layer override settings.
    Include LayersSelect the additional Layers that all Collider 2Ds attached to this Rigidbody 2D should include, when deciding if a collision with another Collider2D should occur or not. Refer to Rigidbody2D-includeLayers for more information.
    Exclude LayersSelect the additional Layers that all Collider 2Ds attached to this Rigidbody 2D should exclude, when deciding if a collision with another Collider 2D should occur or not. Refer to Rigidbody2D-excludeLayers for more information.

Full Kinematic Contacts

Enabling Full Kinematic Contacts enables a Kinematic Rigidbody 2D to collide with all Rigidbody 2D Body Types. This is similar to the behavior of a Dynamic Rigidbody 2D, except the Kinematic Rigidbody 2D is not moved by the physics system when contacting another Rigidbody 2D. Instead, it behaves like an immovable object with infinite mass.
When this property is disabled, a Kinematic Rigidbody 2D will only collide with Dynamic Rigidbody 2Ds and not the other Body Types. Note: Trigger Colliders are an exception to this rule. This means that no collision scripting callbacks (OnCollisionEnter, OnCollisionStay, OnCollisionExit) will occur.
This can be inconvenient when you are using physics queries (such as Physics.Raycast) to detect where and how a Rigidbody 2D should move, and when you require multiple Kinematic Rigidbody 2Ds to interact with each other. Enable Use Full Kinematic Contacts to make Kinematic Rigidbody 2D components interact in this way.
注
Use Full Kinematic Contacts allows explicit position and rotation control of a Kinematic Rigidbody 2D, but still allows full collision callbacks. In a setup where you need explicit control of all Rigidbody 2Ds, use Kinematic Rigidbody 2Ds in place of Dynamic Rigidbody 2Ds to still have full collision callback support.