Paste
Of Code


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Pool;

public class EnemyManager : MonoBehaviour
{
    [SerializeField] private MySpawnManager spawnManager;
    [SerializeField] public Transform followTarget;
    
    

    [SerializeField, Range(0f, 100f)] public float moveSpeed;
    [SerializeField, Range(0f, 720f)] public float turnSpeed = 360f;

    private List<Transform> activeEnemies = new List<Transform>();



    private void FixedUpdate()
    {
       for (int i = 0; i < activeEnemies.Count; i++)
        {

            UpdateEnemyPosition(activeEnemies[i]);
        }
    }

    void UpdateEnemyPosition(Transform enemyTransform)
    {
        if (followTarget != null)
        {
            Vector3 targetPosition = followTarget.position;
            targetPosition.y = enemyTransform.position.y;

            Vector3 nextPosition = Vector3.MoveTowards(enemyTransform.position, targetPosition, moveSpeed * Time.fixedDeltaTime);

            if (enemyTransform.TryGetComponent<Rigidbody>(out Rigidbody rb))
            {
                rb.MovePosition(nextPosition);
            }
            else
            {
                enemyTransform.position = nextPosition;
            }
        }
    }

    public void RegisterEnemy(GameObject enemy)
    {
        if (!activeEnemies.Contains(enemy.transform))
        {
            activeEnemies.Add(enemy.transform);
        }
    }

    
    public void UnregisterEnemy(GameObject enemy)
    {
        activeEnemies.Remove(enemy.transform);
    }
}

Toggle: theme, font