物理演算によりオブジェクトの位置を制御します。
Rigidbody コンポーネントをあるオブジェクトに追加すると、そのオブジェクトの動作を Unity の物理エンジンの管理下におきます。コードを追加しなくとも、 Rigidbody オブジェクトは重力によって下方向にひっぱられ、正しい Collider コンポーネントが存在している場合には接触しているオブジェクトとの衝突に反応します。 また、Rigidbody はオブジェクトに力を適用し、物理的に現実的な方法でそれをコントロールするためのスクリプトAPIも有しています。例えば、ある自動車の挙動は車輪によって加えられる力という面から指定することができます。この情報に基づけば、物理エンジンは車の挙動のその他ほとんどの側面を扱うことができるので、現実的に加速したり、衝突に対して正確に応答します。 スクリプトでは、 FixedUpdate 関数は力を適用したり、 Rigidbody の設定を変更する場所とすることが推奨されます(対照に Update は、その他ほとんどのフレーム更新作業で使用されます)。理由は、物理挙動の更新が時間進行単位で行われており、フレーム更新は関係ないからです。FixedUpdate は物理挙動更新の直前に呼び出されるため、その中でなされたどのような変更も直接反映されます。 Rigidbody で作業を始める際の一般的な問題には、ゲームの物理挙動が「スローモーション」で実行されているように見えるというものがあります。これは実際にあなたのモデルに使用されているスケールに起因しているものです。デフォルトの重力設定は、1ワールドユニットが距離の1メートルに対応することを前提としています。非物理的なゲームでは、あなたのモデルが全て100ユニットの長さであっても大した差はありませんが、物理挙動を用いればそれらはとても大きなオブジェクトとして扱われます。もし小さいと思われるようなオブジェクトに大きなスケールを使用すれば、それらはとてもゆっくりと落下しているように見えます。なぜなら、物理エンジンはそれらをとても長い距離を落下しているとても大きなオブジェクトと見なすからです。このことを念頭に置き、オブジェクトは現実の生活のスケールよりも大きく、または小さくするようにしましょう(従って、例えば車は 4ユニット = 4メートルほどにしておくべきです)。
angularDrag | オブジェクトの回転に対する抵抗 |
angularVelocity | Rigidbodyの角速度ベクトル |
centerOfMass | Transformの原点に対する質量の中心 |
collisionDetectionMode | Rigidbodyの衝突検出モード |
constraints | Rigidbodyのシミュレーションで自由に操作できる軸をコントロールします |
detectCollisions | 衝突検出を有効にするかどうか(デフォルトでは常に有効) |
drag | オブジェクトの抵抗 |
freezeRotation | 物理演算による回転の影響を受けるかどうか |
inertiaTensor | 質量の中心に対する、相対的な対角慣性テンソル |
inertiaTensorRotation | 慣性テンソルの回転角度 |
interpolation | Interpolation allows you to smooth out the effect of running physics at a fixed frame rate. |
isKinematic | 物理演算の影響を受けるかどうか |
mass | Rigidbodyの質量 |
maxAngularVelocity | Rigidbodyの最大角速度(デフォルトは7)範囲は { 0, infinity }. |
position | Rigidbodyの位置 |
rotation | Rigidbodyの角度 |
sleepAngularVelocity | 設定した角速度以下になるとオブジェクトはスリープモードになります (デフォルトは0.14) 範囲は { 0, infinity } |
sleepVelocity | 設定した線速度以下になるとオブジェクトはスリープモードになります (デフォルトは0.14) 範囲は { 0, infinity } |
solverIterationCount | 許可されているRigidbodyあたりのソルバー反復回数 |
useConeFriction | Rigidbodyで摩擦円錐を使用するかどうか |
useGravity | Rigidbodyが重力の影響を受けるかどうか |
velocity | Rigidbodyの速度ベクトル |
worldCenterOfMass | ワールド座標による質量の中心値 (Read Only) |
AddExplosionForce | 爆発のエフェクトをシミュレートするためにRigidbodyに力を適用させます。爆発力はRigidbodyからの距離に応じて直線的に減少していきます |
AddForce | Rigidbodyオブジェクトに力を加えます。力を加えることでオブジェクトを動かすことが出来ます |
AddForceAtPosition | 特定の位置から力を適用します。結果、これはトルクを適用しオブジェクトに力を加えます |
AddRelativeForce | ローカル座標に対してRigidbodyに相対的な力を加えます。 |
AddRelativeTorque | ローカル座標に対してRigidbodyに相対的なトルクを加えます。 |
AddTorque | Rigidbodyにトルクを追加します |
ClosestPointOnBounds | アタッチされたコライダーのバウンディングボックスに最も近い位置 |
GetPointVelocity | ワールド座標における、Rigidbodyオブジェクトの速度を取得します |
GetRelativePointVelocity | ローカル座標における、Rigidbodyオブジェクトの相対的速度を取得します |
IsSleeping | スリープモードかどうか |
MovePosition | Rigidbodyオブジェクトを指定する位置へ移動します |
MoveRotation | Rigidbodyオブジェクトを指定する角度へ回転します |
SetDensity | 不変な密度と仮定してアタッチされたコライダをもとに質量を設定します |
Sleep | 最新の1フレームでRigidbodyを強制的にスリープモードにします |
SweepTest | Rigidbodyオブジェクトが特定の方向でオブジェクトと衝突するかテストします |
SweepTestAll | Rigidbody.SweepTestのようですが、これはヒットした全てを返します |
WakeUp | 強制的にスリープモードを解除します |
OnCollisionEnter | OnCollisionEnter is called when this collider/rigidbody has begun touching another rigidbody/collider. |
OnCollisionExit | OnCollisionEnter is called when this collider/rigidbody has stopped touching another rigidbody/collider. |
OnCollisionStay | OnCollisionStay is called once per frame for every collider/rigidbody that is touching rigidbody/collider. |
animation | GameObjectにアタッチされたAnimation (アタッチされていない場合はnull) |
audio | GameObjectにアタッチされたAudioSource (アタッチされていない場合はnull) |
camera | GameObjectにアタッチされたCamera (アタッチされていない場合はnull) |
collider | GameObjectにアタッチされたCollider (アタッチされていない場合はnull) |
collider2D | GameObjectにアタッチされたCollider2D |
constantForce | GameObjectにアタッチされたConstantForce (アタッチされていない場合はnull) |
gameObject | このコンポーネントはゲームオブジェクトにアタッチされます。コンポーネントはいつもゲームオブジェクトにアタッチされています。 |
guiText | GameObjectにアタッチされたGUIText (アタッチされていない場合はnull) |
guiTexture | GameObjectにアタッチされたGUITexture (アタッチされていない場合はnull) |
hingeJoint | GameObjectにアタッチされたHingeJoint (アタッチされていない場合はnull) |
light | GameObjectにアタッチされたLight (アタッチされていない場合はnull) |
networkView | GameObjectにアタッチされたNetworkView (アタッチされていない場合はnull) |
particleEmitter | GameObjectにアタッチされたParticleEmitter (アタッチされていない場合はnull) |
particleSystem | GameObjectにアタッチされたParticleSystem (アタッチされていない場合はnull) |
renderer | GameObjectにアタッチされたRenderer (アタッチされていない場合はnull) |
rigidbody | GameObjectにアタッチされたRigidbody (アタッチされていない場合はnull) |
rigidbody2D | GameObjectにアタッチされたRigidbody2D |
tag | ゲームオブジェクトのタグ |
transform | GameObjectにアタッチされたTransform (アタッチされていない場合はnull) |
hideFlags | オブジェクトは非表示、シーンに保存、ユーザーが編集可能などを行うかどうか |
name | オブジェクト名 |
BroadcastMessage | ゲームオブジェクトまたは子オブジェクトにある すべての MonoBehaviour を継承したクラスにある methodName 名のメソッドを呼び出します。 |
CompareTag | Is this game object tagged with /tag/? |
GetComponent | Returns the component of Type type if the game object has one attached, null if it doesn't. |
GetComponentInChildren | Returns the component of Type type in the GameObject or any of its children using depth first search. |
GetComponentInParent | Returns the component of Type type in the GameObject or any of its parents. |
GetComponents | Returns all components of Type type in the GameObject. |
GetComponentsInChildren | Returns all components of Type type in the GameObject or any of its children. |
GetComponentsInParent | Returns all components of Type type in the GameObject or any of its parents. |
SendMessage | Calls the method named methodName on every MonoBehaviour in this game object. |
SendMessageUpwards | Calls the method named methodName on every MonoBehaviour in this game object and on every ancestor of the behaviour. |
GetInstanceID | Returns the instance id of the object. |
ToString | ゲームオブジェクトの名前を返します |
Destroy | ゲームオブジェクト、コンポーネントやアセットを削除します |
DestroyImmediate | 直ちにオブジェクトを破壊する。ですが、Destroy関数の方を使うことを推奨します |
DontDestroyOnLoad | 新しいシーンを読み込んでもオブジェクトが自動で破壊されないように設定します |
FindObjectOfType | タイプから最初に見つけたアクティブのオブジェクトを返します |
FindObjectsOfType | タイプから見つけた全てのアクティブのオブジェクト配列を返します |
Instantiate | original のオブジェクトをクローンします |
bool | オブジェクトが存在するかどうか |
operator != | 二つのオブジェクトが異なるオブジェクトを参照しているか比較します |
operator == | 二つのオブジェクトが同じオブジェクトを参照しているか比較します |