logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Interface ICustomAchievementPlatformDefinition

    Marks a UnityAchievementPlatformDefinition subtype as project-supplied rather than one of Serenity's shipped storefronts.

    Namespace: Serenity.Achievements.Infrastructure.Platforms
    Assembly: Serenity.UnityAchievements.Infrastructure.dll
    Syntax
    public interface ICustomAchievementPlatformDefinition
    Remarks

    Purely declarative: every definition already builds its own gateway, so a custom one is dispatched by the same call the shipped ones are and needs no precedence rule. The marker exists so tooling — the settings inspector, the validator, the future Achievements Studio — can say "this one is yours" instead of reporting an unknown asset type, and so a project can find its own definitions without knowing their concrete types.

    A custom definition overrides the same two members every shipped one does: Kind, which says which identifier field on an achievement it reads, and CreateGateway(AchievementPlatformGatewayContext), which receives the achievements this project declares alongside the log service — that collection is what lets a gateway map its storefront's own identifiers back to Serenity ids when reading an account.

    In this article
    © 2026 Serenity. All Rights Reserved