본문 바로가기

전체 글339

6. UE_LOG(FString, float, bool, char, wchar ...) 이번 수업에서는 UE_LOG에서 출력할 수 있는 여러 가지 Primitive Type들에 대해 알아보았다. 그리고 FString에 대해서도 알아보았다. FString은 TEXT("") 매크로를 통해 유니코드로도 작성 가능하며, 역참조 연산자를 오버로딩해서 const char*를 반환하는 기능을 확인했다. UE_LOG를 이용하면 작업할 때 특정 분기에서 로그를 출력하도록 해서 디버깅에 많은 도움이 될 것이다. 그리고 *GetName()을 출력함으로써 이걸 출력한 오브젝트가 어떤 오브젝트인지도 구분이 가능하다. 앞으로 언리얼 엔진을 사용하면서 매우 유용하게 사용할 것 같은 기능이다. 2023. 3. 27.
13. Background 및 NPC 추가 Background 및 NPC 추가 - Background는 그냥 이미지를 가져와서 화면에 뿌려주는 식으로 구현했다. - 리소스를 찾기가 힘들어서 로딩 씬에 있는 이미지로 구현했는데, 아무래도 포토샵으로 실제 인게임에 있는 자료들을 가공해서 사용하게 될 것 같다. - NPC는 각각 무기를 주는 NPC, 스킬을 찍게 해주는 NPC, 버프를 주는 NPC 등등이 있는데, 이 NPC들이 제 역할을 하려면 UI가 구현되어야 한다. - 따라서 추후 작업은 UI 작업 내일 할 일 - UI 작업 2023. 3. 27.
부록 : i, j로 이루어진 이중 for문 에서 j < i가 조건일 때 시간복잡도 계산 cin >> n; for (int i = 0; i < n; ++i) for (int j = 0; j < i; ++j) int a = 0; // No used - 이 코드의 시간복잡도는 O(n^2)이다. - 왜 O(n^2)인가? 궁금해서 이게 어떻게 수식으로 표현되는지 알아봤다. - i는 n만큼 반복하고, j는 i-1만큼 반복한다. - 그렇다면 이 식은 i가 증가함에 따라 매 루프마다 i-1번만큼 반복하는 식이다. - i가 10이라면 j는 아래의 횟수만큼 반복한다. (행 : i, 열: j) 0 1 (j) 2 3 4 5 6 7 8 9 1 (i) 2 V 3 V V 4 V V V 5 V V V V 6 V V V V V 7 V V V V V V 8 V V V V V V V 9 V V V V V V V V - j는.. 2023. 3. 27.
12. Raycast를 이용한 충돌 디테일 작업 Raycast - 타일 맵 기반의 맵은 타일 각각이 충돌체를 가지고 있고, 플레이어가 타일과 충돌할 때 적절한 처리를 해주어야 한다. - 그 중 하나는 플레이어가 타일의 위에 올라왔을 때 Ground 처리를 해주고 그에 따른 애니메이션을 적용해야 한다는 것이다. - 이 기능을 구현하려면 단순히 플레이어와 타일의 충돌만을 처리하는 게 아니라 어느 방향에서 충돌했는지도 검사해야 한다. - 이번에는 PhysX에서 GeometryQuery::raycast 함수를 지원해서 이 기능을 사용해보기로 했다. - raycast 함수는 빛의 원점과 빛의 방향, 그리고 검사할 지오메트리와 Transform을 인자로 넘기면, 충돌 여부에 따라 true, false를 반환해주며, PxRaycastHit 구조체에 어느 지점에 충.. 2023. 3. 26.