@Vqrlamov

Как определять Transform множества врагов?

Нужна помощь, скрипт поворачивает игрока лицом к врагу, если игрок оказывается в зоне действия врага, но это работает только с Transform определенного врага. Как сделать так, чтобы можно было выполнять это действие с Transform множества врагов?

using UnityEngine;

public class LookAtEnemyLogic : MonoBehaviour
{
    private bool onEnemyZone;

    public Transform enemy;
    public float speed;

    void Update()
    {
        if (onEnemyZone)
        {   
            // Плавный поворот на врага
            var targetRotation = Quaternion.LookRotation(enemy.transform.position - transform.position);
            transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, speed * Time.deltaTime);
        }
    }

    private void OnTriggerStay(Collider player)
    {
        if (player.gameObject.CompareTag("Enemy"))
        {
            onEnemyZone = true;
        }
        else
        {
            onEnemyZone = false;
        }
    }
}
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
@Farawa
Как вариант хранить трансформы всех врагов, в апдейте в начале добавить проверку на наличие врага, если врага нет, то пробегаться по массиву и сравнивать дистанцию между игроком и врагом, брать самого ближнего, который в радиусе поражения и добавлять его как цель
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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