目次

036 CharactorControllerで坂や段差の判定を行う

概要

Charactor Controller コンポーネントを使えば傾斜や段差の判定を行うことが出来ます。 Unity - Unity Manual

CharactorControllerの追加

メニューのComponent → Physics → Character Controller を選択します。

Slope Limitどのくらいの傾斜の面まで登れるかを指定します
Step Offsetどのくらいの段差の面まで登れるかを指定します

上記を調整することで傾斜や段差の判定を変更できます。

ソースコード

public class BoxScript : MonoBehaviour
{
	CharacterController controller;
	Vector3				moveDirection;
	float				fSpeed = 3.0f;
	float				fGravity = 0.98f;
 
	void Start ()
	{
		controller = GetComponent("CharacterController") as CharacterController;
	}
 
	void Update ()
	{
		// 地に着いているか?
		if( controller.isGrounded )
		{
			moveDirection = new Vector3( Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical") );
			moveDirection = transform.TransformDirection( moveDirection );
			moveDirection *= fSpeed;
		}
		// 重力
		moveDirection.y -= fGravity * Time.deltaTime;
 
		// 移動
		controller.Move( moveDirection * Time.deltaTime );
	}
}

結果