![enter image description here](https://i.stack.imgur.com/hCgCz.png)
Класс противника: Enemy.cs (не монобихевиор)
using UnityEngine;
[System.Serializable]
public class Enemy
{
public EnemyType EnemyType;
public GameObject EnemyPrefab;
public string EnemyTag;
public int MaxHealth;
public int EnemyDamage;
public Vector3 SpawnPos;
private int _currentHealth;
public void Init()
{
_currentHealth = MaxHealth;
}
public void UpdateHealth(int newHealthValue)
{
_currentHealth = newHealthValue;
}
public void ReceiveDamage(int damage)
{
var updatedHealth = _currentHealth - damage;
UpdateHealth(updatedHealth > 0 ? updatedHealth : 0);
}
}
Enemies Class: Enemies.cs, которые управляют всеми врагами, рандомизируются между врагами
using UnityEngine;
public enum EnemyType
{
Enemy1,
Enemy2,
Enemy3,
Enemy4,
Enemy5,
Boss
}
public class Enemies : MonoBehaviour
{
public Enemy[] AllEnemies;
//Initial Value
public int NumberOfEnemies = 3;
private void Start()
{
InitEnemies(NumberOfEnemies);
}
public void InitEnemies(int howManyEnemies)
{
for(int i= 0; i < howManyEnemies; i++)
{
var randomIndex = Random.Range(0, AllEnemies.Length - 1);
SpawnEnemy(AllEnemies[randomIndex]);
}
}
public void SpawnEnemy(Enemy enemy)
{
Instantiate(enemy.EnemyPrefab, enemy.SpawnPos, Quaternion.identity);
enemy.Init();
}
}
Вы можете видеть, что я назначил все данные врагов в инспекторе, которые появляются из массива врагов в классе врагов, у него есть вражеский префаб, позиция, урон и т. Д.
Если у вас есть какие-либо вопросы, не стесняйтесь спрашивать:)
Ура!