今日も元気にUnityしていますか?あきです。
前回まで、【Unity自己流メモ#11】みたいにナンバリングしてたんだけど、毎回記事を執筆するときに、今回は何回目か確認するのがだるいから、この記事からナンバリングしないのでどうぞよろしく。
さてさて、今回の内容はUnityで重力を止めようというものだ。
まぁいつも通り、まずはコード貼ります。
Rigidbody.isKinematic = true;
これだけ。
Rigidbodyを宣言して取得した後、重力を止めたくなったところで、上のコードを記載してやればええ。
なんで「true」なのに、重力を「停止」するのかについて詳しく知りたい人は、
エクスプラボさんのこの記事を見ると分かりやすいと思う。
正直私も上記のように思っていたが、この記事を見てなんとか理解。
ということは、逆にいうと「false」にすると、重力が発動するってことだ。
とはいっても、「isKinematic」は重力だけではなく、物理演算を受けなくなるため、重力は止めても移動させたいといったコードを書くには不向きであると思われる。
その時は、GravityScaleを0にしてやれば、無重力状態になる。
using UnityEngine;
public class ExampleScript : MonoBehaviour
{
void Start()
{
// Rigidbody2Dコンポーネントを取得
Rigidbody2D rb2D = GetComponent<Rigidbody2D>();
// 重力を停止
rb2D.gravityScale = 0;
}
}
しょうみ、こっちの方がいいかも。
まぁ、用途に応じて分けてくれ。
それじゃあ、Unityライフを楽しんで!
コメント