/// <summary> /// 보스 체력이 회복되는 루틴입니다. /// </summary> /// <param name="boss">플레이어 객체입니다.</param> /// <param name="item">사용한 아이템입니다.</param> /// <returns>Update()를 다시 호출하기 위해 함수를 종료할 때마다 null을 반환합니다.</returns> IEnumerator BossHealRoutine(EnemyBossScript boss) { // 사용할 변수를 선언합니다. float time = 0f; float unitTime = 0.02f; AudioSource audioSource = AudioSources[1]; // 체력을 회복하는 루프입니다. while (boss.IsHealthFull() == false) { // 루프 진입시마다 시작 시간을 초기화합니다. time = 0f; // 체력을 회복하면서 체력 회복 효과음을 재생합니다. audioSource.Play(); audioSource.time = 0; boss.Heal(); // 일정한 간격으로 체력을 회복합니다. while (time < unitTime) { time += Time.unscaledDeltaTime; yield return(null); } } // 코루틴을 종료합니다. yield break; }
/// <summary> /// 프레임이 갱신될 때 MonoBehaviour 개체 정보를 업데이트 합니다. /// </summary> void Update() { EnemyBossScript boss = _database._bossBattleManager._boss; if (boss != null) { // 체력을 업데이트 합니다. Vector3 healthScale = _healthBar.transform.localScale; healthScale.y = (float)boss.Health / boss.MaxHealth; _healthBar.transform.localScale = healthScale; } }
// Use this for initialization void Start() { //Instantiate(playerObject); if (instance == null) { instance = this; } //calling other scripts cameraScript = cameraObject.GetComponent <CameraScript>(); enemyScript = enemyFollower.GetComponent <EnemyFollowerScript>(); playerScript = playerObject.GetComponent <PlayerScript>(); enemyBossScript = enemyBoss.GetComponent <EnemyBossScript>(); enemyChaseScript = enemyChase.GetComponent <EnemyChasingScript>(); cameraScript.player = playerObject; //setting ui text scoreTxtTMP.enabled = true; waveTxtTMP.enabled = true; timeTxtTMP.enabled = true; //setting timescale Time.timeScale = 1; //BOSS STAGE CONDITION //curWave = 5; //timeleft = 0; //start game if (timeleft <= 180.0f || curWave <= 0) { StartCoroutine("SpawnEnemy"); } //enemyFollower.transform.position = spawnPositions[1].transform.position; //Instantiate(enemyFollower); //enemyFollower.transform.position = spawnPositions[3].transform.position; //Instantiate(enemyFollower); }
/// <summary> /// 보스의 체력을 회복합니다. /// </summary> public void HealBoss(EnemyBossScript boss) { StartCoroutine(BossHealRoutine(boss)); }