Unity で rigidbody の位置,回転の固定をスクリプトから変更する

シェアする

rigidbody のついたオブジェクトは回転及び位置の固定を設定する事ができる。以下は Inspector から設定する場合の画面。計6箇所チェックボックスがあるのがわかる。

freeze position and rotation

これをスクリプトから編集するにはどうするか。rigidbody にある constraints 変数を変更します。

// 回転、位置ともに固定
rigidbody.constraints = RigidbodyConstraints.FreezeAll;

// 回転しない設定
rigidbody.constraints = RigidbodyConstraints.FreezeRotation;

// 移動しない設定
rigidbody.constraints = RigidbodyConstraints.FreezePosition;

// 位置 X だけ固定
rigidbody.constraints = RigidbodyConstraints.FreezePositionX;

複数のポイントを設定する場合は以下のように組み合わせる事ができます。

// 位置固定、回転の X と Y を固定。
rigidbody.constraints = 
RigidbodyConstraints.FreezeRotationX |
RigidbodyConstraints.FreezeRotationZ |
RigidbodyConstraints.FreezePositionY;

あんまり使わないかもしれないがせっかく調べたのでメモしておこう。

Sponsored Link

シェアする

フォローする