(Unity)移動制限範囲を動的に変更する(Clampの活用)

(スクリプト)

using UnityEngine;

public class PlayerMove : MonoBehaviour
{
    private float speed = 0.2f;
    private Vector3 pos;

    // 初期値
    private float limitDown = -5;
    private float limitUp = 5;

    void Update()
    {
        float moveH = Input.GetAxis("Horizontal") * speed;
        float moveV = Input.GetAxis("Vertical") * speed;
        transform.Translate(moveH, 0, moveV);

        MoveClamp();
    }

    void MoveClamp()
    {
        pos = transform.position;
        pos.x = Mathf.Clamp(pos.x, -5, 5);
        pos.z = Mathf.Clamp(pos.z, limitDown, limitUp);

        transform.position = pos;
    }

    private void OnTriggerEnter(Collider other)
    {
        if(other.CompareTag("CheckPoint"))
        {
            Destroy(other.gameObject);

            // 移動範囲を動的に変更
            limitDown += 10;
            limitUp += 10;
        }
    }
}

(実行結果)

・特定のオブジェクトにふれるたびに、移動できる範囲が変更される。