일반적으로 의존성 주입은...
- 외부에서 클라이언트에게 특정 작업을 주입하는 것입니다.
- 객체가 필요로 하는 어떤 것들을 외부에서 전달해주는 것입니다.
unreal engine 5 에서는 왜 사용하는가?
- 다른 오브젝트가 필요하지만 직접 찾을 수 없고 직접 찾고 싶지 않을 때
- 수행해야 하는 작업이 있는 오브젝트가 다른 오브젝트를 가져오는 작업까지 수행하도록 만드는 것은 좋지 않기 때문에
ex) 트리거 컴포넌트가 어디에서 무버를 찾을 수 있는지 블루프린트가 알려주는 기능을 만들어야 할때 의존성 주입을 사용할 수 있습니다.
void UTriggerComponent::SetMover(UMover* NewMover)
{
Mover = NewMover;
}
그리고 unreal engine 에서는 Variable Shadowing을 지원하지 않습니다. 따라서..
- Variable Shadowing이란 특정 범위(결정 블록, 메서드 또는 내부 클래스) 내에서 선언된 변수가 외부 범위에서 선언된 변수와 동일한 이름을 가질 때 발생합니다.
- 언리얼에서는 지원하지 않으니까 파라미터 이름과 변수 이름이 달라야 합니다.