Puzzle을 기능 기준으로 수정 하려다가 수 많은 에러에 맞고 쓰러졌습니다.

Puzzle의 코어한 부분들이 모두 Blueprint로 구현되어 있었기에 기능 구현이고 뭐고
일단 C++ 스크립트로의 수정 과정이 선행 되어야 했습니다.

 

그래서 안타깝게도 하루만에 순서를 바꾸어 Interface 적용을 앞땡겼습니다.

Interface를 적용하고자 하는 부분을 탐색해보자 정말 수 많은 선택지가 펼쳐졌습니다.

그 중에서 단순 생성과 관련된 함수나, 외부에서 접근할 필요가 없는 트리거에 대한 변경 함수를 제외하고 
나머지 상태 확인이나 트리거 변경, 선언 함수들을 Interface로 엮었습니다.

 

그 결과는 다음과 같습니다.

 

더보기

IDamagable

  • Receive Damage
  • Receive Heal

 

더보기

IDamageActivity

  • Get Damage
  • Update Damage

 

더보기

IAttachable

  • Attach Piece
  • Detach Piece

 

더보기

ICheckAnswer

  • Push Answer
  • Pop Answer
  • Reset Answer
  • Check Answer
  • Get Answer

 

더보기

ICheckInRangeCharacter

  • Add In Queue
  • Remove In Queue
  • Save In Queued List
  • Reset Queue
  • Reset Saved Data

 

더보기

IObjectActiviy

  • Activate
  • InActivate
  • Reset
    Character: Visibility, Collision, Tick, Input
    Object: Visibility, Collition, Tick, bActive

 

더보기

IProjectileActivity

  • Fire
  • Destroy
  • Reset

 

더보기

IClimbable

  • Get Climb Type
  • Get Climb Velocity
  • Get Climb Acceleration
  • Get Exit to Top Teleport transform
  • Get Enter from Top Teleport transform

 

더보기

IClimbActivity

  • Enter Rope Top
  • Enter Rope Bottom
  • Exit Rope Top
  • Exit Rope Bottom
  • Enter Wall Top
  • Enter Wall Bottom
  • Exit Wall Top
  • Exit Wall Bottom
  • Enter Ladder Top
  • Enter Ladder Bottom
  • Exit Ladder Top
  • Exit Ladder Bottom
  • Exit Climb
  • Enter Climb
  • Is Climbing
  • Is Climb Up
  • Is Climb Down
  • Is Attach to Top
  • Is Attach to Bottom
  • Is Climbable

이들을 하나씩 적용하고, 이미 기능이 적용 되어 있다면 이를 수정 할 예정입니다.

 

이 외에 변경점이라면 이전에 Climb 기능 구현을 하면서 터득한
Animation Notify를 이용해 Melee Attack 기능을 개선하고자 합니다.

우선 Hit 이벤트가 여러번 발생하는 것을 막아주는 Lock을 Semaphore로 변경하고자 합니다.

이를 통해 한 Character에게는 한번의 이벤트만 발생하지만, 한번에 여러 Character에게 이벤트가 발생할 수 있습니다.

그리고 데미지 계산이나 Semaphore 연산을 RPC 함수를 이용하고자 합니다.

 

그리고 Wall을 분할하고자 합니다.

현재의 Wall은 Character의 이동 경로를 막는 방해물과 등반 가능한 등반 Object가 동시에 혼용되고 있습니다.

이를 두개로 나누어 기존의 Wall은 후자의 것으로 사용하고, 

전자의 것에 어울리는 새로운 Object를 생성하고자 합니다.

 

마지막으로 Puzzle을 새로 개발하고자 합니다.

BP 기반에 이전 Trap에 너무 의존적이었기에 완전히 삭제하고, 새로운 Puzzle을 개발하고자 합니다.

이번에는 UI 등 편의성을 개선할 계획도 있습니다.

새로운 Puzzle은 기존의 Break, Select를 우선 구현하고, 새로운 것을 구현할지 그때 가서 고민하려 합니다.

 

진행 순서는

1. Character 자체 기능 개선

2. Wall 분할

3. Climb 기능 개선

4. Trap 기능 개선

5. Puzzle 생성

입니다.

'개발일지 > Treasure Hunter' 카테고리의 다른 글

20.07.22 개발일지  (0) 2020.07.22
20.07.20 개발일지  (0) 2020.07.20
20.07.15 개발일지  (0) 2020.07.15
20.07.10 개발일지  (0) 2020.07.10
20.07.09 개발일지  (0) 2020.07.09

+ Recent posts