【unity入門】Rigidbodyのangular dragについてのまとめ
![](https://mogi0506.com/wp-content/uploads/2019/03/stephanie-harvey-431242-unsplash-1024x600.jpg)
unityでどれぐらいオブジェクトが回転するかは、Rigidbodyのangular dragの値で決まります。
今回は、そんなangular dragについてまとめてみました。
この記事では、
1.angular dragとは
2.angular dragとdragの違い
3.スクリプトで制御する
4.値をInfinityにする
ということを扱います。
この記事の目次
angular dragとは
angular dragとはオブジェクトが回転する時の空気抵抗のことです。
0からInfinity(無限大)までの数値を取り、値を大きくするに比例してオブジェクトが回転し難くなります。
angular dragが0のとき
![](https://mogi0506.com/wp-content/uploads/2019/04/スクリーンショット-0031-04-05-15.59.45.png)
![](https://mogi0506.com/wp-content/uploads/2019/04/名称未設定.mov-5.gif)
angular dragが0.7のとき
![](https://mogi0506.com/wp-content/uploads/2019/04/スクリーンショット-0031-04-05-16.01.31.png)
![](https://mogi0506.com/wp-content/uploads/2019/04/名称未設定.mov-6.gif)
スクリプトで変更
angularDragの値はスクリプトで変更することもできます。
RigidbodyとRigidbody2Dでのやり方をそれぞれ説明していきましょう。
Rigidbody
RIgidbodyでangularDragの値を変更する場合は、
Rigidbody.angularDrag = 変更する数値;
で変更することができます。
サンプルコードは、
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour {
//ゲーム起動時に呼び出される
void Start()
{
//Rigidbodyを取得
var rb = GetComponent<Rigidbody>();
//angularDragの数値を変更
rb.angularDrag = 10;
}
}
Rigidbody2D
Rigidbody2Dの場合もほとんど同じで、
Rigidbody2D.angularDrag = 変更する数値;
で変更することができます。
RigidbodyをRidigbody2Dに変更するだけですね。
サンプルコードは、
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour {
//ゲーム起動時に呼び出される
void Start()
{
//Rigidbody2Dを取得
var rb = GetComponent<Rigidbody2D>();
//angularDragの数値を変更
rb.angularDrag = 10;
}
}
値をInfinityにする
angularDragの値を最大限に大きくしてオブジェクトの回転を止めたい場合は、値をInfinityにしましょう。
![](https://mogi0506.com/wp-content/uploads/2019/04/スクリーンショット-0031-04-05-18.04.04.png)
angular dragとdragの違い
Rigidbodyにはオブジェクトに空気抵抗を与えるdragという項目があります。
angular dragとの違いは、dragはただの空気抵抗なのに対しangular dragは回転する時の空気抵抗だということです。
文字では少しわかりにくいと思うので、dragとangular dragの値をそれぞれInfinity(無限大)にした時の挙動を見てみましょう。
今回は回転しながら落ちてくるオブジェクトを使います。
![](https://mogi0506.com/wp-content/uploads/2019/04/名称未設定.mov-7.gif)
dragをInfinity(無限大)にする
![](https://mogi0506.com/wp-content/uploads/2019/04/スクリーンショット-0031-04-05-17.32.09.png)
![](https://mogi0506.com/wp-content/uploads/2019/04/名称未設定.mov-8.gif)
drag(空気抵抗)がInfinity(無限大)になったので、オブジェクトは落下せずに宙に浮いています。
しかし、angular drag(回転する時の空気抵抗)はゼロなので回転していますね。
angular dragをInfinity(無限大)にする
![](https://mogi0506.com/wp-content/uploads/2019/04/スクリーンショット-0031-04-05-17.32.24.png)
![](https://mogi0506.com/wp-content/uploads/2019/04/名称未設定.mov-9.gif)
angular drag(回転する時の空気抵抗)がInfinity(無限大)になったので、オブジェクトは回転していません。
しかし、drag(空気抵抗)はゼロなので落下していますね。
まとめ
今回はRigidbodyのangular dragについてまとめました。
angular dragについての理解が少しでも深まったのなら幸いです。