Unlocking Achievements
All unlocking is performed through the 'AchievementSubSystem'. In Blueprint it's super easy to access this. Accessing the SubSystem through C++ will take a few extra steps to set up..
- Blueprint
- C++
UGameInstance* GameInstance = UGameplayStatics::GetGameInstance(GetWorld());
UAchievementSubSystem* AchievemSubsystem = GameInstance->GetSubsystem<UAchievementSubSystem>();
//Unlock
AchievemSubsystem->Unlock(FName("TestAchievement"));
//Add Progress
AchievemSubsystem->AddAchievementProgress(FName("TestProgressAchievement"), 1);
//Set Progress
AchievemSubsystem->SetAchievementProgress(FName("TestProgressAchievement"), 50);
Note on C++
You must add the AchievementSystem as a public dependency in your ProjectName.Build.cs file. To gain access to the subsystem.
PublicDependencyModuleNames.AddRange(new string[] {"AchievementSystem"});
C++ Examples: https://gist.github.com/SamCarey99/fa085cb4ba5095c9e17b3a77b96c8c81