logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Class UnityEpicAchievementPlatformDefinition

    Mirrors this project's achievements to Epic Online Services. Assign it to UnityAchievementSettings.Platforms, and give every achievement the identifier it is published under in the Epic developer portal.

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

    Four identifiers rather than one because EOS addresses a title by all four: the product owns the sandboxes, a sandbox owns the deployments, and the client credentials authorize the process. They are the same values the project's own EOS platform initialization uses; keeping them here lets a licensee's gateway read them from the achievements asset instead of duplicating the login configuration.

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

    Constructors

    UnityEpicAchievementPlatformDefinition()

    Declaration
    public UnityEpicAchievementPlatformDefinition()

    Fields

    ClientId

    Declaration
    public string ClientId
    Field Value
    Type Description
    string

    DeploymentId

    Declaration
    public string DeploymentId
    Field Value
    Type Description
    string

    ProductId

    Declaration
    public string ProductId
    Field Value
    Type Description
    string

    SandboxId

    Declaration
    public string SandboxId
    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