멋쟁이사자처럼 X 넥슨 MOD Suppoters Hackathon 실습 03 TIL

SeungjunRyu·2022년 7월 31일
0

Nexon MOD Project

목록 보기
15/15

함께 만들어 볼까요?

장애물 피하기

공중에서 도약하기

  • 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라서 불가한 것이지만.

포탈 구현하기

  • Portal을 Scene에 배치한다.

  • 혹은 Entity를 직접 배치해 만들 수 있다.

    엔티티에 Add Component를 통해 PortalComponent를 추가하도록 하자. Like 줄과 사다리 Component

  • 포탈은 둘이서 하나임을 기억하자.

  • 포탈을 모두 PortalEntityRef로 설정하면 양방향 포털이 된다.

UI 구현하기

  • 캐릭터의 상태를 알아야하기 때문에 UI가 필요하다.

  • HP바가 항상 나타나있으면 거슬릴 수 있기 때문에 사라졌다 나타나도록 할 수 있다.

  • HP를 나타내는 방법

  • MOD에서 제공하는 함수인 OnUpdate코드를 이용해 프레임마다 수정될 수 있도록 한다.

self.myHp.Value = _UserService.LocalPlayer.PlayerComponent.Hp / _UserService.LocalPlayer.PlayerComponent.MaxHp
profile
만년초보 ing

0개의 댓글