Achievements

using Databrain.Stats;

public class StatsAchievement : DataObject {}

The achievements data type lets you easily create unlockable achievements. Simply define the max score an achievement must reach to get unlocked. Use the following API to add points and listen to an unlocked event:

  1. Create a new achievement data object.

  2. Assign the total score and create a new OnAchievementUnlocked event.

Stats add-on comes with a dedicated StatsEvents type which contains either the unlcoked achievement, a new value or a new progression.

  1. OPTIONAL: If you have installed the Logic add-on, you can also add a custom logic which gets called on achievement unlocked.

API

Add achievement points

AddPoints(int _points);

public class AddAchievementPoints : MonoBehaviour    
{
    public DataLibrary data;
    
    [DataObjectDropdown("data")]
    public StatsAchievement achievement;
    
    public int points;

    // Directly add points to the achievement.
    // Do not worry about initial or runtime data. The points are automatically added
    // to the runtime data object
    public void AddPoints()
    {
        achievement.AddPoints(points);
    }
}

The points are automatically added to the runtime data object of the achievement data object.

OnAchievementUnlocked

Listen to the StatsEvents OnAchievementUnlocked

public class UIAchievement : MonoBehaviour
{
    public DataLibrary data;

    [DataObjectDropdown("data")]
    public StatsEvents OnAchievementUnlocked;
        
    public void Start()
    {
        data.OnDataInitialized += DataReady;
    }

    void DataReady()
    {
        // Register to the event
        OnAchievementUnlocked.RegisterListener(NewAchievement);
    } 
    
    // New achievement has been unlocked
    void NewAchievement(StatsEventData _data)
    {
        var _newAchievement = _data.newAchievement;
        Debug.Log("Achievement unlocked: " + _newAchievement.title);
    }

}

CurrentScore

Get the current score of the achievement

IsUnlocked

Get whether achievement is unlocked or not.

Last updated