UFUNCTION() 은 언제 붙여야 하는 건가요?
634
작성한 질문수 3
이번 강좌에서 8분 쯤
UFUNCTION()
void OnAttackMontageEnded(UAnimMontage* Montage, bool bInterrupted);
함수를 만들었는데, 실수로 UFUNCTION()을 안붙여줬더니 언리얼에서 오류를 뿜고 델리게이트가 정상적으로 되지 않더라구요.
지금까지는 UFUNCTION() 매크로 없이 UpDown, Yaw 같은 함수를 만들었는데, UFUNCTION()이 정확히 언제 붙이고 언제 안붙여도 되는건지 궁금합니다!
답변 1
1
저의 미약한 지식이지만 도움이 되실지 모르겠네요...
C++은 C#과 달리 Reflection이라는 기능이 없습니다..
언리얼에서는 이를 억지로 구현해 놓았구요.
이 Reflection이라는 기능을 통해서 런타임에 자기 자신을 검사할 수가 있는데 이를 사용하기 위해서는 특수한 매크로를 사용해야 합니다.
그게 UCLASS, UPROPERTY, UFUNCTION 같은 매크로 이구요.
이렇게 매크로를 사용하게 되면 UnrealHeaderTool(UHT)이 컴파일시점에 정보를 수집해서 추가 코드를 생성 해줍니다.
UCLASS 를 사용해서 해당 클래스가 garbage collection을 사용하게 해주고
UPROPERTY, UFUNCTION이 블루프린트에 노출될수 있게 해주는것으로 알고 있습니다.
블루프린트 안에서 사용하실려면 ()안에 어떻게 사용할건지 지정도 해주셔야 합니다.
제가 강의를 본지 좀 오래되서 저게 어떤 상황인지는 모르겠는데 아마 블루프린트 쪽을 건드리고 있지 않을까요??
강사님 질문 있습니다.
1
445
0
언리얼엔진 크래시날때
1
1585
1
캐릭터를 추가적으로 스폰하고 싶습니다
0
546
1
언리얼에서 WSA 함수 사용이 가능한가요?
0
552
1
캐릭터 Blueprint 받아오기 실패
0
581
2
UE5 generated.h 파일 생성이 안돼요
0
1432
1
애니메이션 블루프린트 오류
0
848
1
생성자 ConstructorHelpers질문 있습니다.
0
522
1
24분쯤에 UE시리즈
0
371
1
Weak_ptr질문
0
256
0
13분 질문
0
332
1
UE_LOG에 빨간색 밑줄이 쳐집니다.
0
366
0
Mesh와 MESH
0
355
1
template UCLASS 관련 질문 드립니다.
0
1211
1
생포인터 사용
0
302
1
TWeakObjectPtr
0
530
1
LOG출력 컴파일은 되는데 플레이시 Error가 발생하며 튕깁니다.
0
503
1
postinitializecomponents
0
248
1
[스탯매니저] 공격하는 캐릭터 정보인지, 공격당하는 캐릭터 정보인지 헷갈려요.
0
332
1
ue4 -> ue5 코드 변경
1
1966
4
애니메이션 기초 강의 질문입니다.
0
256
1
OnAttacked(float DamageAmount) 함수 질문
0
239
1
소켓 실습 일부 오버랩으로 검이 주워지지 않습니다
0
394
2
인텔리젼스? 비츄얼어시스트? 질문입니다
1
281
2





