언리얼에서 UPROPERTY 옵션 중에서 EditAnywhere 과 BlueprintReadWrite 에 대해 알아보겠습니다.
먼저 EditAnywhere 에서 “Anywhere” 는 모든 곳에서 접근 가능하다는 뜻이 아니라, 값을 수정할 수 있는 편집 위치가 여러 곳이라는 의미입니다. 언리얼에서는 같은 변수라도 여러 위치에서 값을 변경할 수 있습니다.
예를 들어 다음과 같은 위치가 존재합니다.
• 블루프린트 기본값
• 레벨(월드) 에 배치된 액터 인스턴스
• 부모 블루프린트를 상속한 자식 블루프린트
이 편집 위치 범위를 어떻게 허용할 것인지에 따라 Edit 옵션이 나뉩니다.
EditAnywhere
이 옵션을 사용하면 여러 편집 위치에서 값을 수정할 수 있습니다.
• 블루프린트 기본값에서 수정 가능
• 레벨(월드)에 배치된 액터 인스턴스별로 수정 가능
• 부모 블루프린트를 상속한 자식 블루프린트에서 재설정 가능
수정 가능한 위치가 여러 곳이기 때문에 Anywhere라는 이름이 붙었습니다.
UPROPERTY(EditAnywhere)
float Speed;
EditDefaultsOnly
• 블루프린트 기본값 수정 가능
• 월드 인스턴스에서는 수정 불가
모든 인스턴스가 동일한 값을 유지해야 할 때 사용합니다.
EditInstanceOnly
이 옵션은 월드에 배치된 인스턴스에서만 수정할 수 있습니다.
• 블루프린트 기본값 수정 불가
• 레벨에 배치된 액터별로 값 수정 가능
레벨 상황에 따라 개별 조정이 필요할 때 사용합니다.
다음으로 BlueprintReadWrite 는 완전히 다른 기능을 담당합니다.
BlueprintReadWrite는 블루프린트 그래프에서 변수에 접근하고 값을 변경할 수 있도록 허용하는 옵션입니다.
여기서 그래프란 Event Graph나 Function Graph처럼 노드를 연결해 게임 로직을 작성하는 영역을 의미합니다.
UPROPERTY(BlueprintReadWrite)
float Speed;
이 옵션이 있으면 블루프린트 그래프에서 변수를 읽거나(Get) 값을 변경(Set) 할 수 있습니다.
EditAnywhere 만 사용할 경우
UPROPERTY(EditAnywhere)
float Speed;
이 경우 Details 패널에서는 값을 수정할 수 있지만, 블루프린트 그래프에서는 변수에 접근할 수 없습니다.
EditAnywhere와 BlueprintReadWrite를 함께 사용할 경우
UPROPERTY(EditAnywhere, BlueprintReadWrite)
float Speed;
이 경우 에디터에서 값 수정이 가능하고, 블루프린트 그래프에서도 변수 값을 읽고 변경할 수 있습니다.
핵심 정리
EditAnywhere 는 값을 수정할 수 있는 편집 위치의 범위를 결정합니다.
BlueprintReadWrite 는 블루프린트 그래프에서 변수 값을 읽고 변경할 수 있게 해줍니다.
'Unreal' 카테고리의 다른 글
| [UE5] Box Component 는 어떨때 사용하면 좋을까? (0) | 2026.02.16 |
|---|---|
| [UE5] FMath::VInterpConstantTo() (0) | 2026.02.09 |
| [UE5] 출력 로그창의 글씨 크기 변경 (0) | 2026.02.09 |
| [UE5] 디테일 패널에서의 구분선의 의미 (0) | 2026.02.09 |
| [UE5] C++ 클래스를 안전하게 지우는 방법 (0) | 2026.02.09 |