Member 13006389 Ответов: 1

Как найти расстояние между двумя игровыми объектами только по оси 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

Всегда использовать  Ответить   кнопка для отправки комментариев / запросов заинтересованному пользователю, чтобы пользователь получил уведомление и ответил на ваш текст.

1 Ответов

Рейтинг:
1

Member 13006389

решение было первым комментарием