logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Class UnityXboxAchievementPlatformDefinition

    Mirrors this project's achievements to an Xbox player's achievement list. Assign it to UnityAchievementSettings.Platforms, and give every achievement the identifier it is published under in Partner Center.

    Inheritance
    object
    UnityAchievementPlatformDefinition
    UnityXboxAchievementPlatformDefinition
    Implements
    IFoundationSettings
    Inherited Members
    UnityAchievementPlatformDefinition.Id
    UnityAchievementPlatformDefinition.Guid
    Namespace: Serenity.Achievements.Infrastructure.Platforms
    Assembly: Serenity.UnityAchievements.Infrastructure.dll
    Syntax
    public class UnityXboxAchievementPlatformDefinition : UnityAchievementPlatformDefinition, IFoundationSettings
    Remarks

    Both identifiers also live in the MicrosoftGame.config the build ships, and every Xbox Live call authenticates against those. They are recorded here so a licensee's gateway reads them from the same asset the achievements themselves are configured on, and so tooling can tell a project that ships on Xbox from one that does not without parsing the build config.

    The gateway this builds is a template: see XboxAchievementGateway for the call sequence a licensee implements, and for how to register it.

    Constructors

    UnityXboxAchievementPlatformDefinition()

    Declaration
    public UnityXboxAchievementPlatformDefinition()

    Fields

    ServiceConfigurationId

    Declaration
    public string ServiceConfigurationId
    Field Value
    Type Description
    string

    TitleId

    Declaration
    public string TitleId
    Field Value
    Type Description
    string

    Properties

    Kind

    Which of the storefronts an achievement can declare an identifier for this asset is.

    Declaration
    public override AchievementPlatformKind Kind { get; }
    Property Value
    Type Description
    AchievementPlatformKind
    Overrides
    UnityAchievementPlatformDefinition.Kind
    Remarks

    Answered by the definition rather than by the gateway because the question is asked at authoring time, when no gateway exists: it is what lets a project say "we ship on Steam and PlayStation" from the assets it assigned, so AchievementAuthoringRules can report an achievement that names no identifier for a platform the project actually ships on. A custom definition answers with the shipped kind whose identifier field it borrows.

    Methods

    CreateGateway(AchievementPlatformGatewayContext)

    Builds the gateway that mirrors unlocks to this storefront.

    Declaration
    public override IAchievementPlatformGateway CreateGateway(AchievementPlatformGatewayContext context)
    Parameters
    Type Name Description
    AchievementPlatformGatewayContext context

    What the gateway is built from. Never null.

    Returns
    Type Description
    IAchievementPlatformGateway

    The gateway, or null when this platform cannot be reached in this build.

    Overrides
    UnityAchievementPlatformDefinition.CreateGateway(AchievementPlatformGatewayContext)
    Remarks

    The context carries the achievements this project declares as well as the log service, because a storefront names achievements by its own identifier: without the declared set a gateway can push an unlock outward but can never read the account back. A subtype that needs neither may ignore it.

    Implements

    IFoundationSettings
    In this article
    © 2026 Serenity. All Rights Reserved