Почему возвращаемое значение Vector3.Distance становится больше, когда два объекта расположены близко друг к другу - PullRequest
0 голосов
/ 21 сентября 2019

Как сказано в названии, я использую Vector3.Distance , чтобы получить расстояние до двух объектов, что-то вроде вражеского погони за игроком, и я обнаружил, что даже враг "ловит" игрока, два объекта находятся близкодруг к другу, я имею в виду, что все они находятся в одинаковом положении, перекрывая друг друга, но значение, которое возвращает этот API, не то, что я думал, значение держится в пределах 0 некоторое время, затем оно начинает становиться все больше и больше,Интересно, есть ли какая-то причина, чтобы объяснить это, это странно.

Я использую NavMeshAgent, чтобы установить "player.transform.position" в качестве места назначения.

введите описание изображения здесь

другое изображение: введите описание изображения здесь

public override void Reason(GameObject player, GameObject npc)
{
    NPCControl npcControl = npc.GetComponent<NPCControl>();
    float distance = Vector3.Distance(npc.transform.position, player.transform.position);

    Vector3 Ppos = player.transform.position;
    Debug.Log("P(" + Ppos.x + ", " + Ppos.y + ", " + Ppos.z + ")");
    Vector3 Epos = npc.transform.position;
    Debug.LogWarning("E(" + Epos.x + ", " + Epos.y + ", " + Epos.z + ")");
    float Dst = Vector3.Distance(Ppos, Epos);
    Debug.LogError("P-E(" + Dst + ")");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...