Documentation

Support

Services

Services

Services Core SDK API

Initialize all Unity Gaming Services with Services Core.
Read time 3 minutesLast updated 17 hours ago

The Services Core package provides a solution for initializing all Unity Gaming Services with a single call, and defines common components used by multiple packages. These standardized components aim to unify the overall experience of working with Unity Gaming Services packages.

UnityServices

namespace Unity.Services.Core{    public static class UnityServices{}}
Use this class to initialize all Unity Gaming Services that are currently installed in your project.

InitializeAsync

public static Task InitializeAsync(InitializationOptions options)
This method initializes all Unity Gaming Services that are currently installed in your project. This method returns a
Task
that allows you to monitor the initialization's progression.

Parameter

Type

Description

options
InitializationOptions
This optional parameter acts as a key-value store that can facilitate unique SDK initialization specifications.
Note: This method is only supported at runtime.

State

public static ServicesInitializationState State
This method returns the game’s current
ServicesInitializationState
at runtime:

Value

Description

Uninitialized
Unity Services has not been initialized.
Initializing
Unity Services is in the process of initializing.
Initialized
Unity Services successfully initialized.

InitializationOptions

namespace Unity.Services.Core {    public class InitializationOptions{}}
Initialization options act as a key-value store that can facilitate unique SDK initialization specifications. Pass these options through the
InitializeAsync
method when initializing Unity Gaming Services SDKs.

TryGetOption

public bool TryGetOption(string key, out bool option)public bool TryGetOption(string key, out int option)public bool TryGetOption(string key, out float option)public bool TryGetOption(string key, out string option)
These methods return
true
for a specified key if any exists, and
false
if it doesn’t.

Parameter

Type

Description

key
stringThe key of the option you want to retrieve.
option
variousThe stored option associated with that key, if any exists.

SetOption

public InitializationOptions SetOption(string key, bool value)public InitializationOptions SetOption(string key, int value)public InitializationOptions SetOption(string key, float value)public InitializationOptions SetOption(string key, string value)
These methods store the value for a specified key.

Parameter

Type

Description

key
stringThe key of the option you want to store.
value
variousThe stored option associated with that key, if any exists.

Initialization example

The following example initializes all services at once, using the Environments initialization extension:
using System;using Unity.Services.Core;using Unity.Services.Core.Environments;using UnityEngine; public class InitializeUGS : MonoBehaviour {        public string environment = "production";     async void Start() {        try {            var options = new InitializationOptions()                .SetEnvironmentName(environment);             await UnityServices.InitializeAsync(options);        }        catch (Exception exception) {            // An error occurred during initialization.        }    }}

Initialization debugging

In Services Core versions 1.4.2 and higher, you can enable a verbose mode for debugging purposes. After enabling verbose mode, the Services Core SDK will log information about the common configuration shared among all services in the Editor's console. To enable verbose:
  1. In the Unity Editor, select Edit > Project Settings > Player.
  2. In the Player settings window, click Other Settings.
  3. Under Script Compilation, add the following Scripting Define Symbol:
    ENABLE_UNITY_SERVICES_CORE_VERBOSE_LOGGING
    .
  4. Click Apply.

Exception types

ServicesInitializationException

A base exception type for errors occurring during service initialization.

CircularDependencyException

An exception that occurs when two registered
IInitializablePackage
instances depend on each other. This error is a must-fix as it most likely highlights design issues.

RequestFailedException

A base exception type for failed requests. Each exception returns an
int ErrorCode
to specify the failure reason:

Name

Code

Description

Unknown
0
Unable to determine the error.
TransportError
1
DNS, TLS, and other transport errors that result in no valid HTTP response.
Timeout
2
The request timed out because no response was received in the allotted time.
ServiceUnavailable
3
The service is unavailable. This typically means the service is overloaded.
ApiMissing
4
The API does not exist.
RequestRejected
5
The request was rejected, typically before reaching the API endpoint. See title/details for more information.
TooManyRequests
50
The request was rate-limited. The client is making requests too frequently.
InvalidToken
51
The authentication token is malformed or invalid.
TokenExpired
52
The authentication token is expired.
Forbidden
53
The user does not have permission to perform the requested operation.
NotFound
54
The requested resource cannot be found.
InvalidRequest
55
The request was understood but the API refused to process it because one or more components was invalid.