오늘도 오버워치 리그 여파로 비실비실 거리다가 시간을 날렸습니다.

 

확실히 제가 유니티에 많이 미흡하긴 한가봅니다.

 

3년?  4년 전에 언리얼 엔진을 처음 사용 했을 때 겪었던 느낌을 그대로 느끼고 있습니다.

 

언리얼 엔진은 막히더라도 금방 해결법을 찾는데 유니티는 한번 막히면 그날 내리 막히니 비교되서 더 힘듭니다.

 

누군가 유니티 문서 잘 되어 있다고 그랬는데... 문서도 왠지 언리얼이 더 잘 나오는 것 같고 으음...

 

원래는 오늘 UI를 모두 만든 뒤 연결을 해보려 했는데 연결 부분을 먼저 만지다 보니까 하나 정도만 만들었습니다.

 

유니티 UI는 canvas 밑에 panel을 두고 그 밑에 botton이나 text를 두는 방식입니다.

 

간단하게는 UI별로 Scene을 따로 두는 것이지만 성능 저하가 심하다고 알고 있습니다.

 

그래서 하나의 Scene에서 여러 UI를 열었다 닫았다 하는 방법을 찾았습니다.

 

여러 시도가 있었고, 지금 정한 방식은 panel을 여러개 생성한 뒤 하나만 active 해놓고, 나머지는 버튼 이벤트에 따라 active, inactive를 해주는 방식입니다.

 

이 방식으로 정하니 다음 단계가 보였습니다.

 

첫째. 버튼 별 이벤트들을 어떤 방식으로 나눌 것인가. 하나의 파일에 둘 것인가 각자의 파일을 만들 것인가.

 

둘째. panel을 게임 시작 할 때 다 같이 생성해서 바로 inactive 하는 방법을 찾아야 한다.

 

이 두가지를 금요일에 좀 찾아봐서 해결하면 될 것 같습니다.

 

아마 두번째 문제를 해결 먼저 하고 첫번째를 해결할 것 같습니다. 아무래도 이벤트는 정리가 안되어서...

 

상당히 더뎌서 집중이 떨어지지만 여기까지 해 놓으면 그 뒤로는 좀 더 속도가 날 것이라 믿습니다.

'폐기된 게시판 > MBGC' 카테고리의 다른 글

20.02.18 개발일지  (0) 2020.02.18
20.02.14 개발일지  (0) 2020.02.14
20.02.07 개발일지  (0) 2020.02.07
20.02.04 개발일지  (0) 2020.02.04
20.01.31 개발일지  (0) 2020.01.31

오늘은 등만이 가능한 Actor들의 최상위 C++클래스인 THClimbBase와

현재 구현이 가능한 Rope와 Ladder의 C++ 상위 클래스인 THRopeBase, THLadderBase를 작성했습니다.

"작성"이라 한 이유는 아직 기능이 구현 됨을 확인하지 못했기 때문에...

 

그저께부터 시작한 오버워치 리그 때문에 생활 패턴이 좀 꼬였는데 이 때문에 오늘 체력이 많이 부족해 개발 시간이 적었습니다.

그래도 개발 양은 크게 차이가 없는 것 같습니다.

시간 부족하니까 양 채우려고 집중 해서 그런가...

이것 외에 평소와의 차이점이 한가지 더 있습니다.

바로 개발하면서 구조 개선이 되었다는 점입니다.

처음부터 좋은 구조를 바로 생각해 냈으면 더 좋았겠습니다만,

이전에는 하루 개발을 다 하고 자기 전에 개선된 구조가 생각이 났다면 오늘은 개발을 하고 잠깐 숨을 돌릴 때 개선된 구조가 생각이 났습니다.

 

구체적으로는 Character와 THClimbBase와의 Collision 시 필요한 트리거들과 이벤트 할당에 관한 것입니다.

처음 생각 했을 때에는 이 모든 것들을 THClimbBase에서 처리하도록 했습니다.

이벤트는 당연히 이 Actor 안에서 처리하고, 처리 과정에서 Character를 받아야 하니 트리거도 Actor 안에서 처리했습니다.

그런데 이를 개발하면서 트리거들 중 동일한 부분이 반복되었습니다.

그래서 이 부분을 함수로 묶었는데, 묶인 함수에서 선언하는 함수가 모두 Character의 함수들이었습니다.

게다가 원래 외부로 공개되지 않은 변수에 대한 Setter들을 선언해야 했습니다.

결국 트리거 처리를 Character에서 해주었습니다.

이 뒤로는 손쉽게 정리가 되었습니다.

상황 별로 차이가 나는 트리거 값들은 두가지로 나뉘었습니다.

현재 캐릭터가 처한 상황을 나타내거나, 캐릭터가 collision을 하는 Actor를 가르키거나.

전자는 파라미터로 Actor 안에서 넘겨주었고, 후자는 THClimbBase를 상속 받는 THRopeBase와 THLadderBase에서 Character의 트리거 처리를 wrapping하는 함수를 override한 뒤 해당 설정을 추가했습니다.

 

Unreal을 쓰면서 정말 간만에 기존에 알던 구조로의 개발을 고민하고 적용해본 것 같습니다.

이 뒤로는 각 Base Actor를 상속받는 BP Example들을 만든 뒤 맵에 추가했습니다.

다만 컴파일 에러가 없을 뿐 기능 확인은 아직 못한 상태입니다.

수요일, 목요일동안 이 부분을 처리해 구현을 할 예정입니다.

 

 

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

20.02.13 개발일지  (0) 2020.02.13
20.02.12 개발일지  (0) 2020.02.12
20.02.08 개발일지  (0) 2020.02.08
20.02.06 개발일지  (0) 2020.02.06
20.02.05 개발일지  (0) 2020.02.05

오늘은 Trigger를 따로 분리 했던 것을 Object 단위로 재편성 하였습니다.

이전 구현은 TriggerBase를 두고 이를 상속 받아서 Trap이나 Puzzle을 만들었다면,

지금은 ObjectBase를 두어 필요한 최소 함수를 제공하고, 이를 각 Trap이나 Puzzle이 상속 받는 형태를 취하고 있습니다.

나누는 것 자체는 오래 안 걸렸는데, 파일 만들 때 자꾸 경로 오류가 떠서 몇번이고 반복 해야 했습니다.

 

아무튼 일주일동안 하루에 한번씩 구조를 고치던 이 기능도 마무리가 되었습니다.

그 다음에 등반 오브젝트를 잠깐 건들여봤습니다.

원래는 사다리, 로프, 암벽이 있는데 암벽 애니메이션이 완벽히 갖추어지지 않아 우선 사다리와 로프만 구현을 하려 합니다.

이 오브젝트도 ObjectBase를 기반으로 개발하는데, 원래 ObjectBase에서 제공하는 콜리전 범위는 로프 중간 부분을 덮어 공중에서 등반을 하는 이벤트를 적용 할 예정입니다.

그리고 새로운 Actor Component를 추가해 각각 오브젝트의 위와 아래 부분에 둘 예정입니다.

이들은 일반적으로 걸어서 등반을 하는 이벤트를 발생시킬 예정입니다.

대략적인 로직과 함수 틀은 짜 놓은 상태입니다.

다음주 월요일에는 함수들을 적용한 뒤 예시 오브젝트를 만들어 애니메이션을 적용해보고자 합니다.

이 둘이 된다면 코드를 조금 정리 한 뒤, 퍼즐과 함정을 몇가지 기획해 보겠습니다.

그리고 시간이 더 남는다면 첫번째 영상 촬영을 해보겠습니다.

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

20.02.12 개발일지  (0) 2020.02.12
20.02.10 개발일지  (0) 2020.02.10
20.02.06 개발일지  (0) 2020.02.06
20.02.05 개발일지  (0) 2020.02.05
20.02.03 개발일지  (0) 2020.02.03

+ Recent posts