함께 만들어 볼까요?
장애물 피하기
공중에서 도약하기
- rigidbodyComponent안에 SetForce라는 함수 사용
- RigidbodyComponent:SetForce로 중력을 조절
떨어지는 장애물 만들기
- 중력을 갖도로 하기 위해 RigidbodyComponent를 장애물에 추가해준다.
- 떨어지고 다시 위로 Respawn 시키도록 한다.
- Trap_Falling_Component를 만들어 장애물에 추가한다.
- math.random 함수와 wait함수를 통해 주기를 바꾸어주면, 다양한 타이밍에 다양한 장소로 스폰된다.
충돌 기능 구현하기
- TriggerComponent와 중복방지를 위해 Trap_Trigger_Component라는 이름으로 새로 만든다.
- Property에 damage를 넣어준다.
- 결국 충돌 -> 플레이어 확인 -> 플레이어 체력 확인 -> 사망 여부 결정 -> 체력 감소 의 반복이다.
- 사망의 경우 그에 맞는 기능도 필요하다.
포션 기능 구현하기
- 포션을 추가하기 위해 DefaultPlayer에서 PotionTriggerComponent와 Take_Potion_Component를 추가한다.
- Potion Entity에 PotionTriggerComponent를 추가한다.
- HP = HP + Heal임을 기억하자.
- HP의 MAX를 넘어가지 않도록 한다.
- 중복 회복을 방지하기 위해 period를 도입한다.
- 나는 여기서 key를 눌렀다 뗏을 때 회복해도 좋다고 생각했다. 물론 이건 Trigger라서 불가한 것이지만.
포탈 구현하기
UI 구현하기
-
캐릭터의 상태를 알아야하기 때문에 UI가 필요하다.
-
HP바가 항상 나타나있으면 거슬릴 수 있기 때문에 사라졌다 나타나도록 할 수 있다.
-
HP를 나타내는 방법
-
MOD에서 제공하는 함수인 OnUpdate코드를 이용해 프레임마다 수정될 수 있도록 한다.
self.myHp.Value = _UserService.LocalPlayer.PlayerComponent.Hp / _UserService.LocalPlayer.PlayerComponent.MaxHp