(スクリプト)
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;
}
}
}
(実行結果)
・特定のオブジェクトにふれるたびに、移動できる範囲が変更される。