using UnityEngine;
public class DistanceCount : MonoBehaviour
{
[SerializeField] private GameObject player;
[SerializeField] private GameObject enemy;
private Vector3 playerPos;
private Vector3 enemyPos;
public float distance { get; private set; }
[SerializeField]
private float maxDistance = 100f;// 想定される最大距離(マップが無限に広いということはないはずなので)
private void Start()
{
if (!player)
player = GameObject.Find("Player");
if (!enemy)
enemy = GameObject.Find("Enemy");
if (!player && !enemy)
return;
playerPos = player.transform.position;
enemyPos = enemy.transform.position;
distance = Vector3.Distance(playerPos, enemyPos);
}
void Update()
{
playerPos = player.transform.position;
enemyPos = enemy.transform.position;
distance = Vector3.Distance(playerPos, enemyPos);
if (distance > maxDistance)
{
Debug.Log("マップの外に出てます");
}
Debug.Log(maxDistance - distance / maxDistance * maxDistance );//相対距離を0~100で定義する
}
}
この手のプログラムだと想定される最大距離を定義した方が作りやすいと思います
ぼくならこんな感じでやるかなあ
Like!