본문 바로가기
언리얼엔진 개발/Developing

[UnrealEngine5] 충돌했을 때 반응하는 오브젝트 만들기 C++

by yeni_0224 2023. 7. 21.
728x90
반응형
void ABullet::OnHit(UPrimitiveComponent* HitComponent, AActor* OtherActor, UPrimitiveComponent* OtherComponent, FVector NormalImpulse, const FHitResult& Hit)
{
	if (OtherActor != this && OtherComponent->IsSimulatingPhysics())
	{
		OtherComponent->AddImpulseAtLocation(bulletMeshComp->Velocity * 100.0f, Hit.ImpactPoint);
	}
	
    //닿으면 밀려나고 충돌한 물체는 사라진다
	Destroy();
}

충돌했다 라고 하는건 OnBeginOverlap도 사용할 수 있지만 OnHit도 사용할 수 있다.

OnHit 함수는 생성자에서 CollisionComp에 바인딩 하자

//충돌체가 충돌한 후 이벤트 호출하기
CollisionComp->OnComponentHit.AddDynamic(this, &ABullet::OnHit);

그리고 헤더에 이 함수를 정의해주자

UFUNCTION()
	void OnHit(UPrimitiveComponent* HitComponent, AActor* OtherActor, UPrimitiveComponent* OtherComponent, FVector NormalImpulse, const FHitResult& Hit);

 

언리얼엔진 C++을 처음 접했을 때의 내 코드를 보니 전보다는 성장한 것 같다. (다행)

728x90
반응형