다양한 chacter의 이동을 UNavigationSystem::SimpleMoveToLocation()으로 처리하고 있습니다.
제가 찍은 character가 목표지점에 도달했을 때, 도달했다는 event를 받고 싶은데요.
관련 함수나 기능이 없는 거 같습니다.
도달했다는 event를 받으려면 어떻게 해야 할까요?
-------------------------------------------------------------
Answer>
잠깐 봤는데, 도달시 event를 보내는 기능이 없는 거 같네요.-_-;;;;;;
뭐..
없으면..
만드는 수 밖에 없죠.^^;;;;;;;;
아래와 같은 방법으로 event를 보내는 기능을 만들어 보셨으면 하네요.
1>해당 character의 controller의 tick이나 timer에 주기적으로 검사하는 함수를 호출하도록 합니다.
controller의 class는 'YourController', 검사하는 함수는 Abc()라고 가정하겠습니다.^^;;;;;;;;
2>YourController::Abc()를 아래와 같이 작성합니다.
void YourController::Abc()
{
UPathFollowingComponent *pfc = FindComponentByClass
if( NULL != pfc )
{
if( pfc->HasReached() )
{
//도착해야할 지점에 도달했습니다.^^
//여기서, event를 보냅니다~
}
else
{
//아직 도달하지 못했습니다.^^;;;;;
}
}
}
3>위에서 보낸 event를 받아서, 처리합니다.
만약에, event를 단 1번만 보내게 하고 싶으시다면,
'class UK2Node_DoOnceMulti-nput' 또는 'Do Once' blue print node를 같이 적용해서,
단 1번만 event를 보내게 하시면 됩니다.
(아니면, 님이 별도의 변수를 추가해서, 단 1번만 보내게 작성하는 것도 좋습니다.^^)
위와 같은 절차를 적용한다면, 도달 event 정도는 쉽게 만드실 수 있습니다.^^
Tag:
안기훈, Kee Hoon Ahn, 언리얼, Unreal, UDK, iPhone, iPad, app, 앱, iOS