【unity入門】Constraintsをスクリプトで制御しよう!
Rigidbodyを追加したオブジェクトを転がしたくない場合などに使うConstraints。
そんなConstraintsをスクリプトで制御したくなる時ってありますよね。
今回は、Constraintsをスクリプトで制御する方法についてまとめました。
この記事では、
1.移動しないようにする
2.回転しないようにする
3.移動も回転もしないようにする
4.制限を解除する
といったことを扱っていきます。
この記事の目次
移動しないようにする
FreezePositionX
FreezePositionXをオンにするには、
Rigidbody.constraints = RigidbodyConstraints.FreezePositionX;
サンプルコードは、
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour {
//ゲーム起動時に呼び出される
void Start()
{
//Rigidbodyを取得
var rb = GetComponent<Rigidbody>();
//FreezePositionXをオンにする
rb.constraints = RigidbodyConstraints.FreezePositionX;
}
}
FreezePositionY
FreezePositionYをオンにするには、
Rigidbody.constraints = RigidbodyConstraints.FreezePositionY;
サンプルコードは、
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour {
//ゲーム起動時に呼び出される
void Start()
{
//Rigidbodyを取得
var rb = GetComponent<Rigidbody>();
//FreezePositionYをオンにする
rb.constraints = RigidbodyConstraints.FreezePositionY;
}
}
FreezePositionZ
FreezePositionZをオンにするには、
Rigidbody.constraints = RigidbodyConstraints.FreezePositionZ;
サンプルコードは、
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour {
//ゲーム起動時に呼び出される
void Start()
{
//Rigidbodyを取得
var rb = GetComponent<Rigidbody>();
//FreezePositionZをオンにする
rb.constraints = RigidbodyConstraints.FreezePositionZ;
}
}
FreezePositionXYZ全て
FreezePositionXYZ全てをオンにするには、
Rigidbody.constraints = RigidbodyConstraints.FreezePosition;
サンプルコードは、
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour {
//ゲーム起動時に呼び出される
void Start()
{
//Rigidbodyを取得
var rb = GetComponent<Rigidbody>();
//FreezePositionXYZ全てをオンにする
rb.constraints = RigidbodyConstraints.FreezePosition;
}
}
回転しないようにする
FreezeRotationX
FreezeRotationXをオンにするには、
Rigidbody.constraints = RigidbodyConstraints.FreezeRotationX;
サンプルコードは、
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour {
//ゲーム起動時に呼び出される
void Start()
{
//Rigidbodyを取得
var rb = GetComponent<Rigidbody>();
//FreezeRotationXをオンにする
rb.constraints = RigidbodyConstraints.FreezeRotationX;
}
}
FreezeRotationY
FreezeRotationYをオンにするには、
Rigidbody.constraints = RigidbodyConstraints.FreezeRotationY;
サンプルコードは、
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour {
//ゲーム起動時に呼び出される
void Start()
{
//Rigidbodyを取得
var rb = GetComponent<Rigidbody>();
//FreezeRotationYをオンにする
rb.constraints = RigidbodyConstraints.FreezeRotationY;
}
}
FreezeRotationZ
FreezeRotationZをオンにするには、
Rigidbody.constraints = RigidbodyConstraints.FreezeRotationZ;
サンプルコードは、
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour {
//ゲーム起動時に呼び出される
void Start()
{
//Rigidbodyを取得
var rb = GetComponent<Rigidbody>();
//FreezeRotationZをオンにする
rb.constraints = RigidbodyConstraints.FreezeRotationZ;
}
}
FreezeRotationXYZ全て
FreezeRotationXYZ全てをオンにするには、
Rigidbody.constraints = RigidbodyConstraints.FreezeRotation;
サンプルコードは、
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour {
//ゲーム起動時に呼び出される
void Start()
{
//Rigidbodyを取得
var rb = GetComponent<Rigidbody>();
//FreezeRotationXYZ全てをオンにする
rb.constraints = RigidbodyConstraints.FreezeRotation;
}
}
移動も回転もしないようにする
移動も回転もしないようにするには、
Rigidbody.constraints = RigidbodyConstraints .FreezeAll ;
サンプルコードは、
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour {
//ゲーム起動時に呼び出される
void Start()
{
//Rigidbodyを取得
var rb = GetComponent<Rigidbody>();
//移動も回転もしないようにする
rb.constraints = RigidbodyConstraints.FreezeAll;
}
}
制限を解除する
制限を解除するには、
Rigidbody.constraints = RigidbodyConstraints.None ;
サンプルコードは、
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour {
//ゲーム起動時に呼び出される
void Start()
{
//Rigidbodyを取得
var rb = GetComponent<Rigidbody>();
//移動も回転もしないようにする
rb.constraints = RigidbodyConstraints.None;
}
}
まとめ
この記事では、Constraintsをスクリプトで制御する方法についてまとめました。
少しでも役に立ったのなら幸いです。