본문 바로가기
회사 TIL

[TIL] 23.01.06 / 언리얼 디버깅 사용 방법

by imagineer_jinny 2023. 1. 8.

TIL (Today I Learned)

 

오늘 해야할 것

  • 3 x 3 퍼즐 구현

 

오늘 한 것

  • 퍼즐 여러개 움직이게 하기

- 퍼즐1을 포인팅해서 움직인다(현재 상황)

- 퍼즐2를 포인팅하면 퍼즐2가 움직인다.

 현재는 모든 움직임이 _puzzle1 -> 움직임 이런식으로 구현되어있다.

puzzles[i] -> 움직임 이렇게 바꿔주기.

-> 여기서 고민 : 일단 다 움직일 수 있게 for문 돌려서 구현해놓고 상태로 막아줄까?

-> MovePuzzle, CorrectPuzzleLocation 함수 같은 경우, 함수 안에 바로 _puzzle1 -> 이런식으로 구현이 되어 있다.

-> 원하는 퍼즐을 인자로 받아와서 그 퍼즐을 움직이게 구조를 바꿔주자.

-> 인자는 만들어줬다. 이제 이 인자는 어디서 어떻게 넣어줄까?

언제? - 포인팅 되는 시점에 (OnHandBeginOverlap)  -> selectedPuzzle로 받아줌

어떻게? - selectedPuzzle을 MovePuzzle, CorrectPuzzleLocation 함수에 넘겨줘서 _puzzle1 대신 사용해준다

 


시간 딜레이

OnHandBeginOverlap(UPrimitiveComponent* overlappedComponent, AActor* otherActor, UPrimitiveComponent* otherComp, int32 otherBodyIndex, bool fromSweep, const FHitResult& sweepResult)

 

이유: HandBeginOverlap 함수에서 Overlap 되었을 때 터치되고 있는 Actor를 받아오고 싶은데 otherActor를 받아올지, otherComp를 받아올지도 모르겠고 otherActor, otherComp를 받아왔는데 뭘 받아왔는지 이름도 모르겠고, Actor로 받아왔으면 원하는 형태(_puzzle1의 형태가 UStaticMeshComponent)로 캐스팅 해줬는데 null이 자꾸 떠서 Cast 바꿔보고 otherComp, otherActor 자꾸 바꿔보면서 시간낭비함.

 

해결: 언리얼 디버깅을 통해 정확한 인자 값들 파악 

디버깅 통해서 정확한 인자값들 파악 -> overlappedComponent, otherActor, otherComp이 뭔지 정확히 디버깅이 알려줘서 바로 해결

 


 

-퍼즐2를 포인팅하고 있을 때 퍼즐1을 포인팅할 수 없다.(반대도 마찬가지)

- 퍼즐 하나를 잡고 있는 상태에서는 다른 퍼즐을 잡을 수 없다.

- 손 하나가 otherComp로 들어와있으면, 다른 손은 otherComp로 들어갈 수 없다.

- 만약 otherComp가

RightHandPointFingerArea이면

LeftHandPointFingerArea가 들어왔을 때 return;

 

-퍼즐2와의 포인팅이 끝나면 다른 퍼즐 포인팅을 할 수 있다.

 

- 현재 퍼즐1, 퍼즐2를 포인팅 하고 있는지 어떻게 알 수 있나?

상태를 줄 수 있을 것 같다. 

ex. 퍼즐1 포인팅 상태, 퍼즐2 포인팅 상태

 

- 한 퍼즐의 포인팅이 끝나면 상태는 아무것도 포인팅하고 있지 않다는 Nothing 상태로 둔다.

 

 

 

 

오늘 배운 것

  • 언리얼 디버깅

0. 언리얼 에디터 끄기

1. 원하는 지점에 브레이킹 포인트 찍고 

 

2. 프로젝트 오른쪽 클릭 -> 디버그 -> 새 인스턴스 시작

 

3. 프로젝트 오른쪽 클릭 -> 디버그 -> 새 인스턴스 시작

4. 언리얼 에디터 자동 실행

5. 플레이 버튼 누르고 플레이 하면 브레이킹 포인트 찍은 부분에서 모래시계 나오면서 멈춤

6. 코드로 돌아와서 하나씩 줄 넘겨가며 보고싶은 값들에 마우스 갖다 대면 뭐가 담겼는지 보여줌

7. 어렵게 UE_LOG 할 필요가 없음!!

 

 

다음주에 진행할 것

  • RightHand / LeftHand 상태만 만들어준 상태. 상태 적용 해보기

 

 

 

앞으로 진행할 것

  • 유데미 언리얼 강의 듣기
  • UE5 블루프린트 강의 듣기
  • R1 Project 커리큘럼 - 유데미 강의 들으면서 러프하게 짜기
  • Static Mesh / Skeletal Mesh(애니메이션을 위한) 찾아보기
  • Texture / Material(상위개념)  찾아보기
  • Pico 빌드
  • 서랍, 문 등 다시 잡을 때 손잡이가 앞으로 확 오는 문제 처리하기
  • 롤 하기
  • Gimmick 가이드 완성하기(for 인프런)

 

댓글