Charactor Controller コンポーネントを使えば傾斜や段差の判定を行うことが出来ます。 Unity - Unity Manual
メニューの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 ); } }