@NeoLight3

Как сделать проверку по Vector3 в C#?

Есть точка outlon (переменная класса Vector3), как можно сделать условие так чтобы если игрок перейдёт линию радиуса этой точки в 10.5f?
У меня получилось сделать подобное условие if только если игрок будет точ в точ на самой точке, а как сделать подобное только с радиусом в 10.5f ?

5efc6e98a560d690565307.png

P.S переменная user это игрок.
user.position - местоположение игрока по осям X Y Z.
outlon - точка с координатами X Y Z.
  • Вопрос задан
  • 53 просмотра
Решения вопроса 1
ShockWave2048
@ShockWave2048
imposter
Просто проверить расстояние между точками:
var dist = Mathf.Abs(Vector3.Distance(outlon, user.position));
if (dist<10.5f) // попал
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
zZaKko
@zZaKko
Люблю стратегии и Unity.
Тогда проверяй не точь в точь (==), а больше равно или меньше равно (>= ; <=).
Ответ написан
DanceM
@DanceM Куратор тега C#
Кто хочет -ищет способ, кто не хочет -ищет причину
Нельзя сравнивать float'ы (==), они могут не совпадать, даже если одинаковые (такие у float особенности, гуглите детали, если интересно).

Либо реализуйте через < >, как указал zZaKko. Либо вообще используйте физику и триггеры, без проверок вручную.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы