분류 전체보기 303

[C++] 유용한 C++ 기능 - structured binding

C++17에서 도입된 structured binding은 복합적인 데이터 구조를 손쉽게 풀어낼 수 있는 기능을 제공합니다. 이를 통해 배열, 튜플, 구조체 등에서 멤버를 간단하게 추출하여 사용할 수 있습니다. Structured binding은 다음과 같은 문법을 사용합니다: auto [변수1, 변수2, ...] = 표현식; 여기서 표현식은 풀어낼 데이터 구조를 나타내며, 변수1, 변수2 등은 구조체나 튜플의 각 요소에 대응됩니다. 예를 들어, 튜플을 사용한 structured binding은 다음과 같이 보입니다: #include #include int main() { std::tuple myTuple(42, 3.14, "Hello"); auto [a, b, c] = myTuple; std::cout

[C++] 유용한 C++ 기능 - if / switch init statement

if / switch init statement 로컬 변수의 생명주기가 블럭과 같도록 합니다. if 문 이후에 x 변수가 잘못 사용되는 위험을 방지하고 코드의 의도를 명확히 합니다. if (int x = getX(); x > 0) { // x가 0보다 큰 경우에 실행되는 코드 // x를 여기서 사용할 수 있음 } else { // x가 0 이하인 경우에 실행되는 코드 } 위의 예제에서 getX() 함수는 변수 x를 초기화하는데 사용됩니다. 이렇게 하면 if 블록 내에서만 x가 유효하게 됩니다. 다음은 switch에서 사용하는 예시입니다. switch (int value = getValue(); value) { case 1: // value가 1인 경우에 실행되는 코드 break; case 2: // va..

[UE] Unreal Engine UObject에서 Tick함수 사용하는 법

https://lykanstudio.tistory.com/83 // Test.h #include "Tickable.h" class PROJECTTest_API UTest : public UObject, public FTickableGameObject { GENERATED_BODY() public: UTest(); public: /** 사용할 Tick함수 입니다. */ virtual void Tick(float DeltaTime) override; /** Tick을 활성화할지 여부를 반환하는 함수입니다. */ virtual bool IsTickable() const override; /** 에디터에서 Tick을 활성화할지 여부를 반환하는 함수입니다. 일반적으로 true를 반환하여 에디터에서도 객체의 Tic..

[UE5] Game Ability System 상세 로그 보기

Game Ability System 소스 코드에는 많은 로깅들이 구현 되어 있습니다. 이러한 로그들은 ABILITY_LOG() 문으로 남기고 있습니다. 로그의 표시 수준 : VeryVerbose < Verbose < Log < Display < Warning < Warning < Error < Fatal 로그 카테고리 별로 표시 수준이 정해져 있으며 표시 수준 보다 낮은 수준은 표시 하지 않습니다. 예를 들어 아래 표에서 LogAbilitySystem 로그 카테고리의 표시 수준이 Display이면 'Display < Warning < Warning < Error < Fatal' 수준의 로그만 표시 됩니다. 로그 카테고리 표시 수준 LogAbilitySystem Display LogAbilitySystem..

[UE5] Game Ability System 디버깅 명령

showdebug abilitysystem 이 기능은 세 개의 "페이지"로 나뉩니다. 세 페이지 모두 현재 가지고 있는 게임플레이 태그를 표시합니다. AbilitySystem.Debug.NextCategory showdebug abilitysystem 명령으로 디버깅을 킨 상태에서 AbilitySystem.Debug.NextCategory 명령으로 세 페이지를 순환할 수 있습니다. AbilitySystem.Debug.PrevTarget 명령으로 이전 페이지로 순회 할 수도 있습니다. 첫 페이지 : 모든 어트리뷰트의 CurrentValue가 표시됩니다. 두 번째 페이지 : 모든 지속 시간 및 무한 게임플레이 이펙트와 스택 수, 해당 이펙트가 부여하는 게임플레이 태그, 부여하는 모디파이어가 표시됩니다. 세 ..

[UE5] 최적화를 위한 프로파일링 개요 및 편의 기능들

큰 범위 병목 지점 찾기 프로파일링은 큰 범위에서부터 시작하여 점차 범위를 좁혀가며 분석하는 것이 효율적입니다. 먼저 언리얼 엔진에서 제공하는 콘솔 명령어를 사용하여 큰 범위의 병목 지점을 쉽게 찾을 수 있습니다. 가장 먼저 확인해야 할 것은 어떤 쓰레드에서 병목 현상이 발생하는지, 혹은 GPU에서 발생하는지를 파악하는 것입니다. 이를 가장 잘 확인할 수 있는 방법은 'stat unit' 명령어를 사용하는 것입니다. stat unit은 항목을 구분하여 병목 지점을 쉽게 찾을 수 있도록 큰 범위로 보여줍니다. → 대부분의 경우 분석 시작의 처음은 'stat unit' 또한, stat unitgraph 콘솔 명령어를 사용하여 실시간 그래프와 함께 동일한 지표를 표시할 수도 있습니다. 60프레임을 목표로 한다..

반응형