【unity入門】is kinematicをスクリプトからオンにする方法/見当たらない場合の対処法
unityでゲームを製作制作しているとよく使うis kinematicですが、
・is kinematicをスクリプトからオンにする方法がわからない
・is kinematicが見当たらない場合
といったことが多々あるかと思います。
そこで、この記事では
・is kinematicが見当たらない場合の対処法
・is kinematicをスクリプトからオンにする方法
について解説していきます!
この記事の目次
is kinematicが見当たらない場合の対処法
is kinematicが見当たらない場合はおそらくRigidbody2Dを使っている時ではないでしょうか。
というのも、RigidbodyとRigidbody2Dでは仕様が少し異なり、Rigidbody2Dにはis kinematicという項目がないからです。
それでは、Rigidbody2Dでis kinematicをオンにするにはどうすれば良いのでしょうか?
Rigidbody2Dでis kinematicをオンにする
Rigidbody2Dにはis kinematicという項目がないので、代わりにBodyTypeをKinematicにすることで変更することで対応させます。
Rigitbody2DのBody Typeについてについてはこちらの記事をどうぞ『Rigitbody2DのBody Typeについて』
is kinematicをスクリプトからオンにする方法
isKinematicをスクリプトからオンにする方法は非常に簡単です。
RigidbodyとRigidbody2Dで微妙にやり方が異なるのでそれぞれ説明していきましょう。
Rigidbody
Rigidbodyでis kinematicをスクリプトからオンにするには、
Rigidbody.isKinematic = true;
サンプルコードは、
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour {
//ゲーム起動時に呼び出される
void Start()
{
//Rigidbodyを取得
var rb = GetComponent<Rigidbody>();
//isKinematicをオンにする
rb.isKinematic = true;
}
}
Rigidbody2D
Rigidbody2Dにはis Kinematicという項目がないので、代わりに代わりにBodyTypeをKinematicにすることで変更することで対応させるのでしたね。
スクリプトからBodyTypeをKinematicに変更するには、
Rigidbody2D.bodyType = RigidbodyType2D.Kinematic;
サンプルコードは、
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour {
//ゲーム起動時に呼び出される
void Start()
{
//Rigidbody2Dを取得
var rb = GetComponent<Rigidbody2D>();
//BodyTypeをKinematicにする
rb.bodyType = RigidbodyType2D.Kinematic;
}
}
まとめ
この記事では、is kinematicを
・スクリプトからオンにする方法
・見当たらない場合の対処法
について扱ってきました。
どちらも簡単にできますので、ぜひ覚えておいてください!