IT/UE5

리플렉션 시스템에 등록하는 이유

u149_cinderella 2025. 1. 27. 19:56
UFunction* GetDamageFunc = Monster->GetClass()->FindFunctionByName(TEXT("GetDamage"));
if (GetDamageFunc)
{
	Monster->ProcessEvent(GetDamageFunc,nullptr);
}

위와 같은 방식으로 쓰기는 쓰는데 도대체 왜 쓰는건가

그냥 Monster->GetDamage(); 이렇게 써도 동일한 동작을 할텐데 말이다

 

그래서 gpt에게 물어보았다

객체정보를 동적으로 조회한다는데 확실히 큰거같긴하다 hp가 있냐없냐가 중요할수있으니

다만 이경우 변수 이름을 다르게 설계하면 동작하지 못하니까 Health로 할지 Hp로 할지는 명확히 구분되어야 하므로 이게 엄청난 장점인가 하면 아직은 잘 모르겠다. 결국 프로그래머는 각 객체에 들어있는 변수를 전부 알고있어야 하는건 다르지 않으니까 다만 안정성은 올라갈듯하다

 

 

설명해 무엇하랴 말그대로 블루프린트와 연동된다는건 아주 강력한 기능이다 마찬가지로 에디터에서 수정가능한것도 매우 강력한 기능이라고 생각한다 실제 코드를 몰라도 수정가능할테니 생산성이 향상을 기대하기 쉽겠다

 

 

GameOver

이것만으로도 리플렉션 시스템에 등록할 이유로 충분하다 더이상 자세한 설명을 생략한다