1. 전체코드
void UTriggerComponent::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
{
Super::TickComponent(DeltaTime, TickType, ThisTickFunction);
AActor* Actor = GetAcceptableActor();
if (Actor != nullptr) {
//1. 액터의부모받아옴 / 타입 : 씬컴포넌트
//2. 캐스팅<타입>(대상) => primitive이면 그거리턴, 아니면 null 리턴
UPrimitiveComponent* Component=
Cast<UPrimitiveComponent>(Actor->GetRootComponent());
//액터가 프리미티브 타입이면, 물리엔진끄기 => 조각상이 문안에 가만히 있도록
if (Component != nullptr) {
Component->SetSimulatePhysics(false);
}
//트리거(this) 컴포넌트에 부착 => 같이내려가도록
Actor->AttachToComponent(this, FAttachmentTransformRules::KeepWorldTransform);
Mover->SetShouldMove(true);
}
else {
Mover->SetShouldMove(false);
}
}
2. 의문점 : 컴포넌트가 primitive인지 왜 검사를 해줘야하나??
'UE5' 카테고리의 다른 글
[UE5] 비행기만들기, 이동 회전 구현 (0) | 2024.05.13 |
---|---|
[UE5] 머태리얼, 텍스쳐 (0) | 2024.05.13 |
[UE5] 의존성 주입, mover-trigger간 통신하는 방법, 가고일올리면 문 내려가도록 구현 (0) | 2023.09.18 |
[UE5] 특정액터에만 반응하도록 구현 (0) | 2023.09.18 |
[UE5] 오버랩 이벤트 발생시키는 방법 (0) | 2023.09.17 |