DEG-95 [Fix] 팔라딘 몬스터 폭탄 던지는 애니메이션 누락 수정

- 공격 패턴 순차 실행 -> 랜덤 실행으로 변경
This commit is contained in:
fiore 2025-04-25 15:46:54 +09:00
parent 9b1709b92c
commit 39379da300
5 changed files with 17 additions and 16 deletions

Binary file not shown.

BIN
Assets/JYY/Scenes/MonsterTest.unity (Stored with Git LFS)

Binary file not shown.

View File

@ -114,7 +114,7 @@ public abstract class EnemyController : CharacterBase
public virtual void BattleSequence() public virtual void BattleSequence()
{ {
// 이 메서드는 자식 요소에서 오버라이드하여 구현합니다. // 이 메서드는 자식 요소에서 오버라이드하여 구현합니다.
Debug.LogWarning("BattleSequence가 구현되지 않았습니다."); Debug.LogWarning("BattleSequence가 구현되지 않음 : " + "BattleSequence()를 오버라이드하여 구현하십시오.");
} }
public override void Die() public override void Die()

View File

@ -34,14 +34,7 @@ public class EnemyStateFlee :IEnemyState
float distance = Vector3.Distance(_enemyController.transform.position, _detectPlayerTransform.position); float distance = Vector3.Distance(_enemyController.transform.position, _detectPlayerTransform.position);
// 일정 범위 안으로 플레이어가 접근하면 공격 시퀸스 _enemyController.BattleSequence();
if (distance <= _attackRange)
{
return;
}
} }
public void Exit() public void Exit()

View File

@ -1,6 +1,7 @@
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using Unity.VisualScripting; using Unity.VisualScripting;
using UnityEngine; using UnityEngine;
using UnityEngine.Serialization; using UnityEngine.Serialization;
@ -37,7 +38,7 @@ public class PldDogController : EnemyController
[SerializeField] private GameObject horizontalSlash; [SerializeField] private GameObject horizontalSlash;
[SerializeField] private float _patternTimer = 0f; [SerializeField] private float _patternTimer = 0f;
private int _currentPatternIndex = 0; private int _lastPatternIndex = -1;
private bool _isPatternRunning = false; private bool _isPatternRunning = false;
private bool _isFirstAttack = true; private bool _isFirstAttack = true;
@ -92,9 +93,16 @@ public class PldDogController : EnemyController
Agent.isStopped = true; Agent.isStopped = true;
IsMeleeCombat = true; IsMeleeCombat = true;
_patternActions[_currentPatternIndex]?.Invoke(); var available = Enumerable
.Range(0, _patternActions.Count)
.Where(i => i != _lastPatternIndex)
.ToList();
_currentPatternIndex = (_currentPatternIndex + 1) % _patternActions.Count; // 패턴 순환 int nextIndex = available[Random.Range(0, available.Count)];
_patternActions[nextIndex]?.Invoke();
_lastPatternIndex = nextIndex;
} }
// 순환 패턴과 별개로 동작하는 특수 패턴 // 순환 패턴과 별개로 동작하는 특수 패턴