반응형

게임 개발/Unreal Engine 80

[UE] 언리얼 엔진 AsyncTask 사용

AsyncTask 언리얼 엔진에는 코드를 비동기적으로 실행할 수 있는 AsyncTask라는 유용한 기능이 있습니다. 이 기능은 지정된 스레드에서 특정 코드를 실행하는 방식으로 작동하며, 주로 게임 스레드를 차단하지 않고 즉시 실행하기에는 작업이 너무 무거울 때 사용됩니다. 또한 멀티스레딩으로 인해 발생하는 문제, 특히 한 스레드에서 다른 스레드에서 사용 및/또는 수정하려는 프로퍼티에 액세스하는 문제에 대한 해결책을 제공합니다. AsyncTask(ENamedThreads::AnyThread, []() { // 이 코드는 게임 스레드를 멈추지 않고 비동기적으로 실행됩니다. }); 예를 들어 비동기 작업에 대한 중첩 호출을 만들 수도 있습니다: AsyncTask(ENamedThreads::AnyThread, ..

[UE] BindWidget으로 C++와 UMG 연결

C++에서 Blueprint으로 생성된 위젯을 어떻게 제어할 수 있을까요? 이에 대한 답은 BindWidget 메타 속성입니다. UPROPERTY(BlueprintReadWrite, meta = (BindWidget)) class UTextBlock* TitleLabel; UPROPERTY(BlueprintReadWrite, meta = (BindWidget)) class UImage* IconImage; 다음은 예제 코드입니다. BindExample.h #pragma once #include "CoreMinimal.h" #include "Blueprint/UserWidget.h" #include "BindExample.generated.h" UCLASS(Abstract) class UBindExampl..

[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프레임을 목표로 한다..

반응형