TIL

김흥식·2025년 5월 9일

아이템 만들기

  1. 오늘 공부한 내용 :
    오늘은 어제 못한 체력회복 기능과 체력이 초마다 감소하는 부분 만들었다 야무지게 만들고 하다 보니 뿌듯했다...

그리고 꾸준히 계속 감소를해야하다보니 나는
Coroutine을 사용을했다!!

Corutine이란! 일정 시간 간격으로 무언가를 실행하거나, 프레임에 걸쳐 나눠서 작업을 수행하고 싶을 때 사용하는 기능입니다.

대부분 루프를 돌릴때 사용한다라고 많이들 이야기 한다 하더라 그래서 아하 그러면 이런 코드를 작성하면 좋겠다 하면서
public int maxHP = 100; //최대체력
private int currentHP; // 현재체력

public Slider hpSlider; // 체력바 UI

public float damageInterval = 1f; // 몇 초마다 깎을지
public int damagePerTick = 1; // 한번에 깎이는 양

private void Start()
{
currentHP = maxHP; //시작할때 최대 체력으로 설정
UpdateHPUI(); // UIHP 체력표시 업데이트

 // 체력 감소 루프 시작
 StartCoroutine(DrainHealthOverTime());

}

IEnumerator DrainHealthOverTime() // 일정시간 마다 체력이 줄어드는 코루틴
{
while (currentHP > 0)
{
yield return new WaitForSeconds(damageInterval); // 시간 기다림
TakeDamage(damagePerTick); // 체력감소 적용
}

 // HP가 0이면 사망 처리
 Debug.Log("체력 소진! 게임 오버");

}

public void TakeDamage(int amount) //체력감소 함수
{
currentHP -= amount;
currentHP = Mathf.Clamp(currentHP, 0, maxHP);
UpdateHPUI();
}

public void Heal(int amount) //체력회복 함수
{
currentHP += amount;
currentHP = Mathf.Clamp(currentHP, 0, maxHP);
UpdateHPUI();
}

private void UpdateHPUI() // 체력 UI 업데이트 함수
{
if (hpSlider != null)
{
hpSlider.value = currentHP;
}
}

일단 체력바도 만들고 변수 선언 해주고 몇초동안 어느정도 양을깎을지 수치 조정해주고
이것저것 다 추가를했다 내가 코드를 작성하면서 느낀게 무조건 내가 주석처리를 해야지 이해도 가고 또 팀원이 내 코드를 보고 합칠때 도움디될거같아서 무조건 주석처리를 습관화 하자 라고 마음을 가졌다

  1. 공부하면서 어려웠던 점 :
    어렵다? 이런거 보다는 그냥 깃허브를 사용하는데 어려움이 컷고 심지어 팀원이 작성한걸 가져오려고 하니 이게 왠걸...맥을 사용하시더라.. 그러니 윈도우랑 호환이 안되서 이걸 어쩌나 했는데.. 다행히 팀원이 해결해서 그걸 빌드 받아서 합쳤는데 정말 이게 너무 쉽지가 않았당..

앞으로는 깃허브를 좀 더 공부해야겠다.. 생각많이했다..

  1. 그래도 순조롭게 팀프로젝트가 잘 진행되고 있어서 담주에도 좀 더 열심히 해야겠다!
profile
열심히 해보자!

0개의 댓글