Как найти расстояние между двумя игровыми объектами только по оси x?
Я делаю ряды для каждого игрового объекта, в котором я появляюсь, чтобы спуститься вниз, и если они находятся в пределах досягаемости врага, они атакуют этого врага, а затем продолжают идти. Но ряды находятся близко, так что если у меня слишком большой радиус действия Gameobject, то они будут атаковать других врагов в соседних рядах, как только они окажутся в пределах досягаемости. Если оба игрока находятся в одном ряду, у них одна и та же позиция z, и поэтому я хочу сделать так: если у них одна и та же позиция z, они могут атаковать друг друга, если нет, то они не могут атаковать.
Что я уже пробовал:
float distanceToEnemy = Vector3.Distance(transform.position, enemy.transform.position);
это то, что я пробовал для получения расстояния, и это работает, просто я хочу, чтобы это был скорее диапазон коробки, а не диапазон сферы.
if (nearestEnemy != null && shortestDistance <= range && transform.position.z == nearestEnemy.transform.position.z) { target = nearestEnemy.transform; inRange = true; } else { target = null; inRange = false; }
и это то, что я сделал, чтобы заставить игрока стрелять только во врагов, которые имеют ту же позицию z, что и он, но это не сработало или не работает все время
Richard Deeming
Предположим, вы пытаетесь сравнить два числа с плавающей запятой, которые закрывать, но не равный.
Попробуйте заменить проверку равенства диапазоном:
Math.Abs(transform.position.z - nearestEnemy.transform.position.z) < MaximumDifference
(Где
MaximumDifference
это константа, представляющая максимальную разницу, которую вы хотите разрешить.)
Member 13006389
О боже, ты спасаешь мне жизнь...Я буквально пытался получить это уже больше полутора дней и искал все. Я не очень хороший программист, поэтому я действительно не понимаю эту математику, если только не посмотрю ее на форумах. Но, слава богу,ты пришел....Большое вам спасибо!
Karthik_Mahalingam
Всегда использовать Ответить кнопка для отправки комментариев / запросов заинтересованному пользователю, чтобы пользователь получил уведомление и ответил на ваш текст.