일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 프로그래머스
- Frustum
- directx
- UnrealEngine5
- 2294
- RootMotion
- const
- 1563
- 팰린드롬 만들기
- RVO
- DeferredRendering
- NRVO
- Programmers
- 오블완
- GeeksForGeeks
- UE5
- C
- 줄 세우기
- winapi
- baekjoon
- 언리얼엔진5
- algorithm
- Unreal Engine5
- softeer
- 티스토리챌린지
- C++
- 백준
- DirectX11
- UnrealEngine4
- IFileDialog
- Today
- Total
Game Develop
[UE5] UPROPERTY 본문
UPROPERTY를 당연히 쓰긴 써왔지만, 사실 각프로퍼티에 대해 좀 헷갈렸었다.
설명은 많지만 아키타입이 뭔지도 헷갈리고, 그냥 적용범위가 넓은 프로퍼티를 써서 되게만 해왔던 것 같다.
하지만 const처럼, 읽기전용으로 할것을 굳이 Edit관련 프로퍼티를 넣을필요가 없기에 한번 싹 정리를 했다.
공식문서등에 나오는 아키타입이란 것은, 우리가 어떤 액터를 만들고 해당 액터를 상속받는 블루프린트클래스파일을 만들경우 이 블루프린트파일이 아키타입이라 생각하면 된다.
유니티의 프리팹이랑 매우 비슷한 개념이라고 하며, UPROPERTY에서 아키타입에 관해 Edit이라던가 Visible관한 설명이 나오면 이 블루프린트파일내에서 디테일패널에 표시할건지, 수정까지할건지 등에 대한 속성을 결정하는거라 보면 된다.
위의 UPROPERTY를 보면 VisibileDefaultsOnly가 선언되어있는 것을 볼 수 있다.
해당 프로퍼티는 변수를 아키타입에서 읽기전용으로 사용할 것이라는 변수이고, 실제로 아래와 같이 나온다.
블루프린트파일내의 디테일패널에 노출되어있는 것을 볼 수 있다. Visible이기 때문에 읽기전용이다.
그리고 UPROPERTY 설명에 나오는 인스턴스에 대한 설명은, 게임이 실행되었을 때
저 우측하단의 빨간색부분의 디테일패널을 의미한다.
만약 EditAnywhere이나 EditInstanceOnly가 선언되어있을 경우, 저 디테일패널에서 실시간으로 값을 수정할 수 있으며 게임에 적용된다. 플레이를 멈출 시 시작했을때 값으로 되돌아간다.
그래서 나같은 경우 만약 미세한 조정, 뭐 충돌체같은거에 대해서는 인스턴스상에서 수정이 가능한 프로퍼티를 적용했다.
이외에 위의 예시에 있는 변수중 하나인 m_bIsWalking같은것들은 VisibleDefaultsOnly로 되어있긴 한데, 저거를 아키타입에서 굳이 표현할필요는 없을것같아서 VisibleInstanceOnly로 전부 바꿔주려 한다.
그러면 실시간으로 상태값들이 잘 변경되고있는지 확인할 수 있기 때문에 괜찮을 것 같다.
추가적으로, UPROPERTY에는 Transient라는 프로퍼티가 존재한다.
이 프로퍼티를 추가하면 해당 변수를 직렬화에서 제외시킨다는것을 의미한다.
'UnrealEngine5 > 이것저것' 카테고리의 다른 글
[UE5] 언리얼 용어들 (0) | 2024.03.26 |
---|---|
[UE5] 언리얼에서의 생성자는 여러번 호출된다. (0) | 2024.03.19 |
[UE5] 언리얼에서 확실히 인라인화하고 싶을때는 FORCEINLINE을 사용하자. (0) | 2024.02.21 |
[UE5] const와 레퍼런스를 적극적으로 활용하자. (0) | 2024.02.17 |
[UE5] 인터페이스였던것을 추상클래스로 바꾸려다가 다시 인터페이스로한것에 대하여 (1) | 2024.01.24 |