MonsterCtrl 클래스에있는 내용
public void MonsterHit(float playerAtk)
{
float dmg;
if (monsterArmor >= playerAtk)
{
dmg = 1f;
}
else
{
dmg = playerAtk - monsterArmor;
monsterCurrentHp -= dmg;
}
if (monsterCurrentHp <= 0)
{
monsterState = MonsterState.die;
}
}
public void MonsterAttack()
{
GameObject.FindGameObjectWithTag("Player").GetComponent().PlayerHit(monsterAtk);
PlayerCtrl 클래스에 있는내용
public void PlayerHit(float monsterAtk)
{
float dmg;
if (playerArmor >= monsterAtk)
{
dmg = 1f;
}
else
{
dmg = monsterAtk - playerArmor;
playerCurrentHp -= dmg;
}
if (playerCurrentHp <= 0)
{
playerState = PlayerState.die;
}
}
public void PlayerAttack()
{
GameObject.FindGameObjectWithTag("Monster").GetComponent().MonsterHit(playerAtk);
}
위에 코드보면
몬스터든 플레이어든 히트당하는 캐릭터의 방어력이 공격하는 캐릭터의 공격력보다 높거나 같으면 데미지(dmg)1받도록 해놧는데
실제로 테스트 해보면 안들어감 ;
그런데 수치 변경해서 공격력 올리면 데미지 잘들어감
왜이러지 왜 1데미지 안들어감??
공격력 높거나 같을 때 데미지에 1 넣는 코드만 쓰고 체력에서 데미지 빼는 코드 안 써서 그럼
playerCurrentHp -= dmg아 이거 안해서 그런가?
monsterCurrentHp -= dmg; 부분을 if문 밖으로 빼내야지
if (playerArmor >= monsterAtk) { dmg = 1f; }
아 진짜 이거때문에 몇시간도안 머리 쥐어뜨ㄸ고있었는데 이렇게 허무할수가
ㄱㅊ 이걸로 몇시간 머리쥐어뜯으면 평생 다신이런실수안한
코딩이 그런거지 머 ㅎㅎ
야 그리고 추가로 지금상황에서는 방어력이 -면 피찬다 의도한거면 미안