public override void OnInspectorGUI() { base.OnInspectorGUI(); EnemyStatsSO enemyStats = (EnemyStatsSO)target; if (GUILayout.Button("Increase random stat")) { enemyStats.IncreaseRandomStat(); } }
/// <summary> /// Awake is called when the script instance is being loaded. /// </summary> void Awake() { if (Instance != this && Instance != null) { Destroy(gameObject); } else { Instance = this; } poolDictionary = new Dictionary <string, Queue <GameObject> >(); enemyStats = Resources.Load <EnemyStatsSO>("ScriptableObjects/EnemyStats"); foreach (Pool pool in pools) { Queue <GameObject> objectPool = new Queue <GameObject>(); for (int i = 0; i < pool.size; i++) { GameObject obj = Instantiate(pool.prefab); Enemy enemy = obj.GetComponent <Enemy>(); if (enemy != null) { foreach (EntityData data in enemyStats.data) { if (data.Name == enemy.GetType().Name) { enemy.data = data; break; } } } if (pool.parent != null) { obj.transform.SetParent(pool.parent); } obj.SetActive(false); objectPool.Enqueue(obj); } poolDictionary.Add(pool.tag, objectPool); } }
private void Start() { playerManager = FindObjectOfType <PlayerManager>(); enemyStatsSO = FindObjectOfType <Enemy>().enemyStatSO; rhythmTracker = GetComponent <RhythmTracker>(); }