使用指针前,需要判断指针不能为空,否则容易崩溃
TriggerVolume != nullptr
指针:
指针!=nullptr
private:
AActor* Owner;
UPROPERTY(EditAnyWhere)
ATriggerVolume* TriggerVolume;
AActor* DefaultPawn;
float DoorOpenDuration = 0.5f;
float LastDoorOpenTime = 0;
void UOpenDoor1::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
{
Super::TickComponent(DeltaTime, TickType, ThisTickFunction);
if (TriggerVolume != nullptr && TriggerVolume->IsOverlappingActor(DefaultPawn))
{
OpenDoor();
LastDoorOpenTime = GetWorld()->GetTimeSeconds();
}
if (GetWorld()->GetTimeSeconds() - LastDoorOpenTime > DoorOpenDuration)
{
CloseDoor();
}
}