의존성 주입
이제 가고일 석상을 트리거 박스 내에 두면 비밀문이 작동하도록 해야 한다.
이를 위해서는 우리가 만들었던 컴포넌트인 무버와 트리거 사이를 연결해주어야 할 필요가 있다.
이를 위해 필요한 것이 의존성 주입 기법이며, 다른 오브젝트가 필요하지만 직접 찾을 수 없는 경우에 사용된다.
해당 케이스의 경우에는 트리거 컴포넌트가 어디에서 무버를 찾을 수 있는지 블루프린트가 알려주어야 한다.
따라서 트리거 내에 무버를 세팅하는 함수를 BlueprintCallable로 선언한다.
Mover를 사용하기 위해 헤더에 Move.h를 포함해주는 것도 잊으면 안된다.
다음으로 Mover를 세팅하는 함수를 구현해준다.
이때 주의해야 할 것이 인풋 파리미터의 이름과 클래스 변수의 이름이 동일하면 안된다.
만약 동일한 경우에는 언리얼에서 기본적으로 오류로 판단하게 된다.
이제 BP_SecretWall에서 선언한 Set Mover를 불러와 Trigger에 Mover를 배치해주자.
다음으로 비밀문을 온오프 시켜주는 기능을 했던 ShouldMove를 활성화하는 함수를 작성해주자.
함수는 트리거에서도 접근해야하기 때문에 pulic으로 선언해주어야 한다.
그리고 이제 해당 변수는 언리얼에서 접근할 필요가 없기에 위에 적었던 UPROPERTY을 삭제해준다.
이제 트리거로 돌아가 액터 태그에 있는 액터가 있다면 위 함수를 불러와서 true로 설정하고, 아니라면 false로 설정해준다.
이제 플레이를 시켜 가고일 석상을 트리거 박스 내에 놓으면 비밀문이 내려간다.
하지만 문제가 아직 남아있는데, 비밀문이 내려가면서 트리거 박스도 같이 내려감에 따라 가고일 석상이 더 이상 트리거 박스 내에 위치하지 않는 것이다.
가고일 석상이 트리거 박스 범위를 벗어남에 따라 내려가던 비밀문은 멈추게 된다.
이를 개선하는 내용은 다음 강의에 이어진다.
'Unreal > Udemy 강의' 카테고리의 다른 글
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 4-38 (0) | 2024.03.29 |
---|---|
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 4-37 (0) | 2024.03.29 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 4-35 (0) | 2024.03.28 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 4-34 (0) | 2024.03.28 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 4-33 (0) | 2024.03.26 |