몬스터 공격시 캐릭터 데미지 대상 지정 및 몬스터 피격 시 HP바 감소

This commit is contained in:
Mingu Kim
2025-02-28 02:15:32 +09:00
parent b96aac99f7
commit 5e893a029f
7 changed files with 750 additions and 93 deletions

View File

@@ -23,45 +23,34 @@ namespace TON
public class Monster1SkillPattern : SkillPattern
{
private float _skill1CoolTime;
// private float _skill2CoolTime;
private MonsterSkillData _monsterSkillData;
// private MonsterSkillData _monsterSkillDataTwo;
private float _skillCoolTime;
private MonsterSkill _skill1;
// private MonsterSkill _skill2;
private MonsterSkillData _monsterSkillData;
private MonsterSkill _skill;
private Vector3 _skillOffset = new Vector3(0, -0.5f, 0); // 스킬 생성 위치 조정값
public Monster1SkillPattern(MonsterData monsterData, MonsterBase monsterBase) : base(monsterData, monsterBase)
{
_monsterSkillData = MonsterSkillDataManager.Singleton.GetMonsterSkillData(_monsterData.monsterSkillID);
// if (_monsterData.monsterSkillIDTwo > -1)
// {
// _monsterSkillDataTwo = MonsterSkillDataManager.Singleton.GetMonsterSkillData(_monsterData.monsterSkillIDTwo);
// }
// if (_monsterSkillData != null && _monsterSkillDataTwo != null)
if (_monsterSkillData != null)
{
Debug.Log($"몬스터 {_monsterSkillData.skillName} 데이터 로드 완료");
// Debug.Log($"몬스터 {_monsterSkillDataTwo.skillName} 데이터 로드 완료");
// 프리팹을 연결한 코드
_skill1 = Resources.Load<MonsterSkill>($"MonsterSkillPrefabs/{_monsterSkillData.skillName}");
// _skill2 = Resources.Load<MonsterSkill>($"MonsterSkillPrefabs/{_monsterSkillDataTwo.skillName}");
_skill = Resources.Load<MonsterSkill>($"MonsterSkillPrefabs/{_monsterSkillData.skillName}");
}
else
{
Debug.LogError($"몬스터 스킬 ID {_monsterSkillData.skillId}에 대한 데이터를 찾을 수 없습니다.");
// Debug.LogError($"몬스터 스킬 ID {_monsterSkillDataTwo.skillId}에 대한 데이터를 찾을 수 없습니다.");
}
_skill1CoolTime = Time.realtimeSinceStartup;
// _skill2CoolTime = Time.realtimeSinceStartup;
_skillCoolTime = _monsterSkillData.cooldown;
}
public override void Attack(GameObject target)
@@ -74,58 +63,16 @@ namespace TON
Vector3 spawnPosition = _monsterBase.transform.position - _skillOffset;
// 프리팹을 지정된 위치에 생성
Object.Instantiate(_skill1, spawnPosition, Quaternion.identity);
Object.Instantiate(_skill, spawnPosition, Quaternion.identity);
}
public override void Update()
{
if (Time.realtimeSinceStartup - _skill1CoolTime >= _monsterSkillData.cooldown)
if (Time.realtimeSinceStartup - _skillCoolTime >= _monsterSkillData.cooldown)
{
// TODO : 범위 체크
IsAttackable = true;
}
// if (Time.realtimeSinceStartup - _skill2CoolTime >= _monsterSkillDataTwo.cooldown)
// {
// // TODO : 범위 체크
// IsAttackable = true;
// }
}
}
// public class Monster2AttackPattern : AttackPattern
// {
//
//
// public Monster2AttackPattern(MonsterBase monsterBase) : base(monsterBase)
// {
//
// }
//
// public override void Attack()
// {
//
// Skill1();
//
// Skill2();
//
// MeleeAttack();
//
// }
//
// private void Skill1()
// {
//
// }
//
// private void Skill2()
// {
//
// }
//
// private void MeleeAttack()
// {
// _monsterBase.PlayerAttack();
// }
// }
}