Cast to rocket class returns null

void ARing::OnHit(AActor* OtherActor, UPrimitiveComponent* OtherComp, FVector NormalImpulse, const FHitResult& Hit)
{
//GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Black, “LOL”);

	AMyRocket* tempRocket = Cast<AMyRocket>(Hit.GetActor());
	if (tempRocket)
	{
		GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Black, "LOL");

		APawnReboot* temp = Cast<APawnReboot>(tempRocket->GetOwner());
		if (temp)
		{
			AMyPlayerState* myPs = Cast<AMyPlayerState>(temp->PlayerState);
			if (myPs)
			{
				myPs->Score++;
				IsPickedUp();
			}
		}
	}


	Destroy();


}

Okay, when my rocket hits this object, the Destroy method is called. This means the onHit method works and my rocket is known as an actor.

However, I try and cast to the object that hit the ring to the Rocket class. And it returns null?

Anyone know why?

Another thing, my pawn object, when it hits this object, the onHit method is not called.

Anyone know why? my Pawn object is covered by a box collision with collision profile set to “Pawn”.