文档

支持

Services

Services

Services Core SDK API

Initialize all Unity Gaming Services with Services Core.
阅读时间4 分钟最后更新于 1 个月前

Services Core 包提供了通过一次调用来初始化所有 Unity Gaming Services(Unity 游戏服务)的解决方案,并定义了供多个包使用的通用组件。这些标准化组件旨在统一 Unity Gaming Services(Unity 游戏服务)包的整体使用体验。

UnityServices

namespace Unity.Services.Core{    public static class UnityServices{}}
此类用于初始化项目中当前安装的所有 Unity Gaming Services(Unity 游戏服务)。

InitializeAsync

public static Task InitializeAsync(InitializationOptions options)
此方法用于初始化项目中当前安装的所有 Unity Gaming Services(Unity 游戏服务)。此方法返回一个
Task
,允许查看初始化的进度。

参数

类型

描述

options
InitializationOptions
此可选参数充当键值存储,有助于实现独特的 SDK 初始化规范。
注意:此方法仅在运行时受支持。

State

public static ServicesInitializationState State
此方法返回运行时的游戏当前
ServicesInitializationState

描述

Uninitialized
Unity Services 尚未初始化。
Initializing
Unity Services 正在初始化中。
Initialized
Unity Services 已成功初始化。

InitializationOptions

namespace Unity.Services.Core {    public class InitializationOptions{}}
初始化选项充当键值存储,有助于实现独特的 SDK 初始化规范。初始化 Unity Gaming Services SDK 时通过
InitializeAsync
方法传递这些选项。

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)
如果存在指定的键,这些方法返回
true
,否则返回
false

参数

类型

描述

key
字符串要获取的选项的键。
option
多种类型与该键(如果存在)关联的存储选项。

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)
这些方法存储指定键的值。

参数

类型

描述

key
字符串要存储的选项的键。
value
多种类型与该键(如果存在)关联的存储选项。

初始化示例

以下示例使用 Environments 初始化扩展来一次性初始化所有服务:
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.        }    }}

初始化调试

在 Services Core 1.4.2 及更高版本中,您可以启用详细模式以进行调试。启用详细模式后,Services Core SDK 将在编辑器控制台中记录所有服务之间共享的通用配置信息。要启用详细模式,请执行以下操作:
  1. 在 Unity 编辑器中,选择 Edit(编辑)> Project Settings(项目设置)> Player(运行设置)
  2. 在 Player settings(运行设置)窗口中,单击 Other Settings(其他设置)
  3. Script Compilation(脚本编译) 下,添加以下脚本定义符号:
    ENABLE_UNITY_SERVICES_CORE_VERBOSE_LOGGING
  4. 单击 Apply(应用)

异常类型

ServicesInitializationException

服务初始化期间发生的错误的基本异常类型。

CircularDependencyException

两个注册的
IInitializablePackage
实例相互依赖时发生的异常。此错误很可能凸显了设计问题,因此必须修复。

RequestFailedException

请求失败时的基本异常类型。每个异常都会返回一个
int ErrorCode
来具体说明失败的原因:

Name

代码

描述

Unknown
0
无法确定错误。
TransportError
1
DNS、TLS 和其他传输错误,导致没有有效的 HTTP 响应。
Timeout
2
由于在规定时间内未收到响应,因此请求超时。
ServiceUnavailable
3
服务不可用。这通常意味着服务超载。
ApiMissing
4
该 API 不存在。
RequestRejected
5
通常在到达 API 终端之前拒绝了请求。请查看标题和详细信息以了解更多信息。
TooManyRequests
50
该请求有速率限制。客户端发出请求过于频繁。
InvalidToken
51
身份验证令牌格式错误或无效。
TokenExpired
52
身份验证令牌已到期。
Forbidden
53
用户没有权限执行请求的操作。
NotFound
54
找不到请求的资源。
InvalidRequest
55
请求已被理解,但由于一个或多个组件无效,API 拒绝处理该请求。