본문 바로가기

728x90
728x90

프로그래밍

언리얼 엔진 5에서의 스윕 테스트 함수들: SweepMultiByObjectType, SweepTestByObjectType 언리얼 엔진 5 (UE5)에서 충돌 감지와 관련된 다양한 스윕 테스트 함수들이 있습니다. 이번 글에서는 SweepMultiByObjectType, SweepTestByObjectType, 그리고 SweepTestByProfile 함수에 대해 알아보겠습니다.1. SweepMultiByObjectTypeSweepMultiByObjectType 함수는 월드에 대한 스윕 테스트를 수행하여 지정된 객체 유형과의 모든 초기 겹침을 반환합니다. 이 함수는 게임 월드에서 여러 객체와의 충돌이나 겹침을 감지하는 데 특히 유용합니다.사용 방법스윕 형태: 월드를 통해 스윕 할 형태(구, 상자, 캡슐 등)를 정의합니다.시작 및 종료 지점: 스윕의 시작 지점과 종료 지점을 지정합니다.객체 유형: 겹침을 확인할 객체 유형을 정의.. 더보기
"Warning: FNetGUIDCache::SupportsObject: PhysicsConstraintComponent" 오류 해석 및 해결 방법 in 언리얼5 오류 발생 원인:Unreal Engine에서 "PhysicsConstraintComponent"는 네트워크 복제(replication)를 지원하지 않는 구성 요소입니다. 이 구성 요소는 두 개의 강체의 움직임을 제한하는 데 사용되며, 네트워크 환경에서 모든 클라이언트에 동일하게 동작하도록 복제하기에는 복잡하고 성능 문제를 일으킬 수 있습니다. 해결 방법:불필요한 복제 방지:모든 클라이언트에서 동일하게 동작해야 할 필요가 없는 경우, 해당 구성 요소의 복제를 비활성화합니다.클라이언트에서 로컬 물리 시뮬레이션을 통해 구성 요소의 동작을 모방할 수 있습니다.구성 요소 단순화:더 간단한 조인트 유형을 사용하거나 제약 조건의 수를 줄여 구성 요소를 단순화합니다.현실감과 네트워크 성능 사이의 균형을 찾기 위해 다양.. 더보기
특정 조건에서 물리 시뮬에이션 중지 in 언리얼5 Unreal Engine 5 (UE5)에서 특정 조건에서 물리 시뮬레이션을 일시 중지하거나 "슬립" 상태로 만들려면 블루프린트 또는 C++ 코드를 사용할 수 있습니다.  아래의 예는 속도가 30 단위 이하일 때 물리 시뮬레이션을 일시 중지하도록 코드를 수정하려면, GetComponentVelocity() 함수를 사용하여 컴포넌트의 속도를 확인할 수 있습니다. // 기본값 설정AYourCustomActor::AYourCustomActor(){ PrimaryActorTick.bCanEverTick = true;}// 매 프레임 호출void AYourCustomActor::Tick(float DeltaTime){ Super::Tick(DeltaTime); // 속도가 임계값 이하인지 확인 .. 더보기
UPrimitiveComponent와 USceneComponent의 차이점 in 언리얼5 Unreal Engine 5 (UE5)에서 UPrimitiveComponent와 USceneComponent의 차이점을 설명해드릴게요.USceneComponent변환 및 부착: USceneComponent는 변환(위치, 회전, 크기)을 가지며 다른 컴포넌트에 부착될 수 있는 컴포넌트의 기본 클래스입니다. 컴포넌트의 계층 구조를 만들 때 유용합니다.렌더링 및 충돌 없음: 렌더링이나 충돌 기능이 없습니다. 게임 세계에서 직접적으로 보이거나 상호작용하지 않고 변환 계층을 관리하는 “더미” 컴포넌트로 자주 사용됩니다.UPrimitiveComponent렌더링 및 충돌: UPrimitiveComponent는 렌더링 및 충돌 기능을 추가한 USceneComponent의 하위 클래스입니다. 이는 게임 세계에서 보이는 .. 더보기
구조체 타입 로그 출력 팁! in 언리얼 물론이죠! FVector의 ToString 함수를 구조체 내에서 사용하도록 코드를 수정할 수 있습니다. 아래는 FVector의 ToString 함수를 사용하여 구조체의 ToString 함수를 재정의한 예제 코드입니다:구조체 정의 및 ToString 함수 재정의:// MyStruct.h#pragma onceUSTRUCT(BlueprintType)struct FMyStruct{    GENERATED_BODY()    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="MyStruct")    FVector MyVector;    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="MyStruct")    int32 M.. 더보기
컴포넌트의 하위(자식) 컴포넌트 찾기 in 언리얼 // 자식 컴포넌트를 클래스별로 찾는 함수UChildComponent* UYourParentComponent::FindChildComponent(){    // 모든 부착된 컴포넌트를 반복합니다    for (UActorComponent* Component : GetAttachChildren())    {        // 컴포넌트가 원하는 클래스인지 확인합니다        if (UChildComponent* ChildComponent = Cast(Component))        {            return ChildComponent;        }    }    // 일치하는 컴포넌트를 찾지 못한 경우 nullptr을 반환합니다    return nullptr;}```이 예제에서:`UYou.. 더보기
액터 내 컴포넌트간 Collision 무시 방법 in 언리얼 BeginPlay() 메서드를 수정하여 모든 컴포넌트를 가져오고 충돌을 무시하도록 설정: void AYourActor::BeginPlay(){ Super::BeginPlay(); // 액터의 모든 컴포넌트를 가져옴 TArray Components; GetComponents(Components); // 컴포넌트를 순회하며 서로 충돌을 무시하도록 설정 for (int32 i = 0; i (Components[i]); if (Component1) { for (int32 j = i + 1; j (Components[j]); if (Component2) { .. 더보기
언리얼5에서 파라미터 전달 타이머 만들기 UE5에서 파라미터를 사용하는 타이머 함수의 예제 코드입니다:파라미터를 사용하는 함수를 생성합니다.파라미터를 넣을 수 있는 오브젝트 델리게이트를 생성합니다타이머를 설정 및 2에서 만든 델리데이트를 전달 합니다.다음은 간단한 예제입니다:UCLASS()class MYPROJECT_API AMyActor : public AActor{ GENERATED_BODY() public: // 이 액터의 기본 값을 설정합니다. AMyActor();protected: // 게임 시작 시 또는 스폰될 때 호출됩니다. virtual void BeginPlay() override;public: // 매 프레임마다 호출됩니다. virtual void Tick(float D.. 더보기

728x90
728x90