В моей игре игрок может запустить оружие, которое запустит снаряд, который автоматически нацелит противника, ближайшего к определенному объекту. Однако как я могу остановить снаряды от таргетинга на моего собственного игрока? Есть ли способ пометить всех других игроков определенным тегом, оставив моего собственного игрока с другим тегом? Игроки запускаются как сборники, когда начинается игра.Как настроить таргетинг на всех других игроков, кроме вас самих?
0
A
ответ
1
При запуске снаряда дайте ссылку на игрока, который выстрелил в него. Затем, вычисляя ближайшего игрока, проверьте, совпадает ли ближайший с тем, кто его застрелил. Если он есть, выберите второй ближайший.
public class Projectile : MonoBehaviour
{
public Player player = null;
private Player target = null;
private Player GetClosestPlayer(IList listOfPlayers)
{
Player closestPlayer = ...; // use your algorithm method here
if (player != null && player == closestPlayer)
{
// copy listOfPlayers and remove closestPlayer from it
return GetClosestPlayer(copyOfListOfPlayersWithoutPreviousClosest);
}
return closestPlayer;
}
void Update()
{
if (target != null)
// steer to target
else
target = GetClosestPlayer();
}
}
Если снаряд нацеливает объекты с тегом «Враг» (например), он не будет нацелен ни на что другое. – user3071284