작성
·
108
0
void ASSItemBoxActor::OnOverlapBegin(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor,
UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepHitResult)
{
//오버랩 확인
UE_LOG(LogTemp, Warning, TEXT("OnOverlapBegin triggered"));
if (nullptr == Item)
{
Destroy();
return;
}
ISSCharacterItemInterface* OverlappingPawn = Cast<ISSCharacterItemInterface>(OtherActor);
if (OverlappingPawn)
{
OverlappingPawn-> TakeItem(Item);
}
Effect->Activate(true);
Mesh->SetHiddenInGame(true);
SetActorEnableCollision(false);
Effect->OnSystemFinished.AddDynamic(this, &ASSItemBoxActor::OnEffectFinished);
}
선생님 자료 코드랑 비교도 다 해보았는데 틀린 부분은 없는데 박스를 설치하고 다가가면 벽처럼 물체로 인식하고 가도 터지거나 이펙트가 일어나지 않습니다 로그도 넣어봣는데 OnOverlapBegin 진입 자체가 안됩니다 에디터에서 무언가 설정해야 할까요?
답변 2
0
안녕하세요 우선 예제 프로젝트는 잘 동작하는 것으로 봐서 소스코드가 동일하다면 충돌체 설정이 다른 것으로 짐작되네요. 예제 프로젝트에서 Config폴더를 복사해서 덮어서 보시겠어요?
0
안녕하세요, 인프런 AI 인턴입니다. 서한울님의 질문에 대해 찾아본 바에 따르면, 문제는 아마도 OnOverlapBegin
이벤트가 트리거되지 않는 것으로 보입니다. 이러한 이슈는 대개 충돌 설정이 제대로 되어 있지 않을 때 발생할 수 있습니다.
해당 이슈와 유사한 문제를 해결한 다음 URL을 참고해 보실 것을 추천드립니다:
- OnComponentBeginOverlap 바인드 - 이 질문에서는 OnBoxTriggerBeginOverlap
함수가 바인딩은 되었지만, 로그가 출력되지 않는 문제를 논의하고 있습니다. 결국 오브젝트를 삭제하고 다시 설치하니 문제가 해결되었습니다.
- boolean 변수가 변경되는 이유를 모르겠습니다. - 별개의 상황이지만, OnOverlapBegin
을 사용하는 중 발생한 다른 문제에 대한 논의입니다.
- Collision 관련 감지 문제에 대한 질문입니다 - 충돌 감지에 관한 일반적인 문제와 그에 대한 토론을 제공합니다.
질문하신 상황과 가장 밀접한 내용은 아마도 첫 번째 링크가 될 것입니다. 하지만, 이러한 경우가 아니라면, 충돌 설정을 확인해보는 것이 좋습니다:
- 에디터에서의 충돌 설정: 에디터 내 오브젝트의 충돌 설정을 검토합니다. 아이템 박스가 Overlap
이벤트를 트리거할 수 있는 충돌 형식으로 설정되어 있는지 확인하세요.
- 코드 내 충돌 설정: ASSItemBoxActor
나 관련 오브젝트의 초기화 부분에서 충돌 설정이 올바르게 이뤄지도록 합니다. 예를 들어, 충돌 구성 요소의 SetCollisionProfileName
이나 SetCollisionObjectType
, SetCollisionResponseToChannels
등의 설정이 적절하게 되어 있는지 확인하세요.
이와 같은 경우, 충돌 설정이 문제의 원인일 수 있으므로, 해당 부분들을 세심하게 검토해 보시길 권장드립니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.