UE5

[UE5] 가고일 물리반응 끄기, trigger에 붙여서 같이 내려가도록 구현

Mini_96 2023. 9. 18. 00:55

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인지 왜 검사를 해줘야하나??