2017-10-09 8 views
0

CameraVisibilitySphere 구성 요소가 문자와 겹치면 문자 메쉬를 숨기려고하는 this 3 인칭 청사진이 있습니다. 실제로 작동하지만 문자가 움직이는 경우에만 작동합니다.IsOverlappingComponent는 문자가 움직일 때만 작동합니까?

단순히 개체에 가까운 문자를 움직이면 개체와 충돌하여 문자에 가까워 지도록 카메라를 회전하면 메쉬가 사라지지 않습니다. 그러나 캐릭터를 어느 방향으로 움직여도 구가 여전히 캐릭터와 겹치지 않는다면 Overlapping Component는 꼭 그래야하고 메쉬가 사라 졌는지 true를 반환합니다.

문자가 이동하지 않고 메쉬가 표시되지 않고 카메라가 회전하여 가시성 영역이 더 이상 겹치지 않으면 아무 일도 일어나지 않습니다. 캐릭터를 움직이면 메쉬가 다시 나타납니다.

OnComponentBegin/EndOverlap을 사용하여 시도했지만 코드도 작성했지만 아무 것도 변경되지 않았습니다. 동일한 동작을 보여줍니다. 내가 가진 영역을 설정 코드는 이것이다 :

CameraVisibilitySphere = CreateDefaultSubobject<USphereComponent>(TEXT("CameraVisibilitySphere")); 
CameraVisibilitySphere->SetupAttachment(FollowCamera); 
CameraVisibilitySphere->SetSphereRadius(12.0f); 
CameraVisibilitySphere->SetCollisionProfileName(TEXT("Actor")); 
CameraVisibilitySphere->bGenerateOverlapEvents = true; 
CameraVisibilitySphere->OnComponentBeginOverlap.AddDynamic(this, &ABatteryCollectorCharacter::OnCharacterBeginOverlap); 
CameraVisibilitySphere->OnComponentEndOverlap.AddDynamic(this, &ABatteryCollectorCharacter::OnCharacterEndOverlap); 

BTW 캐릭터의 캡슐은 중복 이벤트를 생성하고 카메라와 중복으로 설정됩니다.

이 작업을하려면 어떻게해야합니까? 가장 중요한 것은 중복 이벤트가 동일한 액터의 하위 구성 요소에 호출된다는 것입니까?

저는 언리얼에 익숙하지 않아 환경을 잘 모른다.

답변

0

부모에서 작성된 겹침은 하위 항목에서 상속됩니다. 카메라를 가져 와서 MultiLineTraceByChannel을 시도하고, 히트 결과를 깨고 히트 액터를 캐릭터로 캐스팅 한 다음 캐릭터에서 코드를 실행하여 사용자 정의 이벤트로 액터를 숨길 수 있습니다.