[UE5] TIL - 8 <UPROPERTY>

ChangJin·2024년 3월 19일
0

Unreal Engine5

목록 보기
35/114
post-thumbnail

2024-03-19

깃허브!
https://github.com/ChangJin-Lee/ARproject
https://github.com/ChangJin-Lee/ToonTank

느낀점
오늘은 유데미 ToonTank에서 UPROPERTY 형식자 부분을 배웠다. 우리가 플레이어에 사용하는 변수를 가져다 되게 자주 사용하게 되는데 디폴트 블루프린트 혹은 인스턴스에서 값을 읽거나, 쓸때 형식자를 통해 제어할 수 있다. 마치 헤더파일과 블루프린트의 콜라보같은 느낌이랄까. 중요한 내용이라고 하니 자세히 적어보겠다.

TIL

  • BluePrint specifiers

BluePrint specifiers


https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/GameplayArchitecture/Properties/Specifiers/

  • 헤더파일에서 지정자를 통해 디폴트 블루프린트와 인스턴스 창에 변수를 어떻게 노출시킬지 제어할 수 있다.
  • 자주 쓰이는 형식 지정자를 정리한 표가 있어서 가져왔다.



  • 쓰임은 다음과 같다. UPROPERTY(VisibleAnywhere, BlueprintReadWrite ... ) 뒤에 마구 붙을 수 있다. 카메라를 추가해서 월드 카메라를 가져온다던지 하는 기능도 있다고 한다.

	// 어디서든 보임
	UPROPERTY(VisibleAnywhere, BlueprintReadWrite)
	int32 VisibleAnywhereInt = 32;

	// 어디서든 보이고 편집도 가능
	UPROPERTY(EditAnywhere, BlueprintReadOnly)
	int32 EditAnywhereInt = 32;

	// 인스턴스에서만 보이고 디폴트 블루프린트에서 안보임
	UPROPERTY(VisibleInstanceOnly, BlueprintReadWrite)
	int32 VisibleInstanceOnlyInt = 32;

	// 디폴트 블루프린트에서만 보임
	UPROPERTY(VisibleDefaultsOnly)
	int32 VisibleDefulatsOnlyInt = 5;
	
	// 인스턴스에서만 보임
	UPROPERTY(VisibleInstanceOnly)
	int32 RunSpeed = 10;
	
	UPROPERTY(EditDefaultsOnly)
	int32 EditDefaultsOnlyInt = 9;

	UPROPERTY(EDitInstanceOnly)
	int32 EditInstanceOnlyInt = 14;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 EditAnywhere = 2323;

  • BlueprintGetter가 있길래 이게 뭐지 하고 공식문서를 찾아보니

BlueprintGetter=GetterFunctionName
이 프로퍼티는 커스텀 액세서 함수를 지정합니다.
또한 BlueprintSetter 또는 BlueprintReadWrite 지정자가 지정되지 않으면, BlueprintReadOnly 로 간주합니다.

  • 라고한다. 즉 마치 함수처럼 사용할 수 있게 만들어 주는 녀석인 것 같다.

  • 블루프린트에선 다음처럼 사용이 가능하다.
  • 이렇게 값을 가져와서 프린트할 수도있고

  • 이렇게 값을 Set할 수도 있다.


- 플레이어 블루프린트를 레벨에 두고 게임을 실행해보면 다음처럼 값이 print 되는 걸 확인할 수 있다.

profile
게임 프로그래머

0개의 댓글