void UNavLinkCustomComponent::SetDisabledArea(TSubclassOf<UNavArea> AreaClass) { DisabledAreaClass = AreaClass; if (IsNavigationRelevant() && !bLinkEnabled && GetWorld() != nullptr ) { UNavigationSystem* NavSys = GetWorld()->GetNavigationSystem(); NavSys->UpdateCustomLink(this); } }
void UNavLinkCustomComponent::SetEnabledArea(TSubclassOf<class UNavArea> AreaClass) { EnabledAreaClass = AreaClass; if (IsNavigationRelevant() && bLinkEnabled) { UNavigationSystem* NavSys = GetWorld()->GetNavigationSystem(); NavSys->UpdateCustomLink(this); } }
void UNavLinkCustomComponent::SetEnabled(bool bNewEnabled) { if (bLinkEnabled != bNewEnabled) { bLinkEnabled = bNewEnabled; UNavigationSystem* NavSys = UNavigationSystem::GetCurrent(GetWorld()); if (NavSys) { NavSys->UpdateCustomLink(this); } if (GetWorld()) { GetWorld()->GetTimerManager().ClearTimer(TimerHandle_BroadcastStateChange); if ((bLinkEnabled && bNotifyWhenEnabled) || (!bLinkEnabled && bNotifyWhenDisabled)) { BroadcastStateChange(); } } } }