void Start() { BossManager = BossManagerObj.GetComponent <BossBattle>(); if (Instance == null) { Instance = this; } }
private void SpawnNewEnemy(GameObject spawnObject) { // Spawn a new enemy GameObject newEnemy = Instantiate(spawnObject); IDamageable damageable = newEnemy.GetComponent <IDamageable>(); if (damageable != null) { damageable.OnDeath += EnemySpawner_OnDeath; } BossBattle bossBattle = newEnemy.GetComponent <BossBattle>(); if (bossBattle != null) { bossBattle.OnBossDeath += EnemySpawner_OnDeath; } Vector3 newEnemyPosition = newEnemy.transform.position; // Place it at a random position outside of the spawn area if (Random.value > 0.5f) { if (Random.value > 0.5f) { newEnemyPosition.x = -_spawnArea.x + 2; } else { newEnemyPosition.x = _spawnArea.x - 2; } newEnemyPosition.y = Random.Range(-_spawnArea.y, _spawnArea.y); newEnemy.transform.position = newEnemyPosition; } else { if (Random.value > 0.5f) { newEnemyPosition.y = -_spawnArea.y + 2; } else { newEnemyPosition.y = _spawnArea.y - 2; } newEnemyPosition.x = Random.Range(-_spawnArea.x, _spawnArea.x); newEnemy.transform.position = newEnemyPosition; } _currentEnemiesAlive++; }
// Update is called once per frame void Update() { if (GameManager.manager.bossBattle) { bossHealth = FindObjectOfType <BossBattle>(); Move_Boss_Hearts(); if (bossHealth.health == 3) { hearts[0].SetActive(true); hearts[1].SetActive(true); hearts[2].SetActive(true); } else if (bossHealth.health == 2) { hearts[0].SetActive(false); hearts[1].SetActive(true); hearts[2].SetActive(true); } else if (bossHealth.health == 1) { hearts[0].SetActive(false); hearts[1].SetActive(false); hearts[2].SetActive(true); } else { hearts[0].SetActive(false); hearts[1].SetActive(false); hearts[2].SetActive(false); } } else { hearts[0].SetActive(false); hearts[1].SetActive(false); hearts[2].SetActive(false); bossHearts.anchoredPosition = Vector2.Lerp(bossHearts.anchoredPosition, new Vector2(40f, 0), 5f * Time.deltaTime); } }
// OnStateEnter is called when a transition starts and the state machine starts to evaluate this state override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { boss = animator.GetComponentInParent <BossBattle>(); }
void Start() { gameObject.SetActive(true); script = GameObject.Find("Boss").GetComponent <BossBattle>(); }
private void Start() { script = GetComponentInParent <BossBattle>(); }
// Start is called before the first frame update void Start() { bossHearts.anchoredPosition = new Vector2(40f, 0); bossHealth = FindObjectOfType <BossBattle>(); }
public void SetBossBattle(BossBattle bossBattle) { _bossBattle = bossBattle; _bossBattle.OnStageChanged += BossController_OnStageChanged; }