其他 Unity API

重要

Visual Studio App Center 计划于 2025 年 3 月 31 日停用。 虽然可以继续使用 Visual Studio App Center,直到它完全停用,但你可以考虑迁移到几个建议的替代方法。

详细了解支持时间线和替代方法。

调整日志级别

可以在控制台中控制从 App Center 显示的日志消息数。 使用 LogLevel-API 在调试时启用其他日志记录。 默认情况下,对于App Store环境,它设置为 ASSERTWARN否则设置为 。

若要获取尽可能多的日志消息,请在 App Center 设置或代码中启用 LogLevel.Verbose

AppCenter.LogLevel = LogLevel.Verbose;

确定安装

安装应用后,App Center SDK 会为每个设备创建 UUID。 更新应用时,设备的此标识符保持不变。 仅当重新安装应用时,才会生成新标识符。 以下 API 可用于调试目的。

System.Guid? installId = await AppCenter.GetInstallIdAsync();

标识用户

App Center SDK 支持设置用于扩充故障报告 的用户 ID 。 若要使用此功能,请:

  1. 按照 App Center SDK 入门指南中所述配置 App Center SDK
  2. userID使用以下代码在 SDK 中设置 :
AppCenter.SetUserId("your-user-id");

设置用户 ID 后,可以使用 App Center 的搜索功能搜索该 ID 的特定故障报告。 有关详细信息,请参阅 App Center 的 搜索文档

注意

用户 ID 的值限制为 256 个字符。 它将随故障报告一起显示,但不用于聚合或受影响用户的计数。 如果多次设置用户 ID,将仅使用最后一个用户 ID。 需要在每次启动应用程序之前自行设置用户 ID,因为两次启动之间 SDK 不会存储此值。

在运行时禁用所有服务

如果要一次禁用所有 App Center 服务,请使用 Enabled 属性。 禁用后,SDK 不会将任何信息转发到 App Center。

AppCenter.SetEnabledAsync(false);

若要再次启用所有服务,请使用同一 API,但将 作为参数传递 true

AppCenter.SetEnabledAsync(true);

无需等待此调用, (其他 API 调用(如 IsEnabledAsync) 一致)。

在应用程序启动时,状态将保留在设备的存储中。

更改运行时中的服务状态

可以使用以下代码在运行时启用或禁用服务:

Analytics.SetEnabledAsync(true);

禁止网络请求

在 App Center SDK 中,默认允许网络请求。 如果要发送用户关注的 App Center SDK 收集的数据,可以禁止自动发送数据。

AppCenter.IsNetworkRequestsAllowed = false;

在这种情况下,App Center SDK 将继续收集数据,但仅当允许网络请求时才会发送数据。

AppCenter.IsNetworkRequestsAllowed = true;

注意

此值在启动之间保留。

可以随时检查是否允许在 App Center SDK 中发送数据。

AppCenter.IsNetworkRequestsAllowed;

注意

在 Android 平台上启动之前AppCenter,将忽略之前保存在 中的SharedPreferences值。 如果在 AppCenter 启动之前未更改该值,它将返回使用 AppCenter.IsNetworkRequestsAllowed = allowedtrue 设置的最后一个值。

检查是否已启用 App Center

还可以检查是否启用 App Center。

bool enabled = await AppCenter.IsEnabledAsync();

在运行时检查 App Center SDK 版本

可以获取当前使用的 App Center SDK 版本。

AppCenter.SdkVersion;

延迟 App Center 的启动

在某些情况下,你可能希望将 App Center 的启动延迟到 AppCenterBehavior 启动之后。 例如,如果要在启动任何 App Center 服务之前请求用户同意。
为此,请将 AppCenterBehaviorAdvanced 添加到游戏对象,并检查“从 iOS/Android 应用启动本机 SDK”复选框。 这会在 StartAppCenterBehavior 的 方法处启动 SDK,并允许你添加自定义对话框或其他逻辑。

提示

如果在生成时生成设置,另一种方法是转到“播放器设置”“其他设置”“>>脚本”“定义符号”并粘贴 APPCENTER_DONT_USE_NATIVE_STARTER

Unity SDK 中的异步 API

异步 API 返回对象 AppCenterTask 而不是直接返回结果,并立即返回,而不是等待操作完成。

有三种方法可以与这些方法交互。

方法 1:ContinueWith

若要在 的活动完成后执行操作 AppCenterTask,请使用 ContinueWith 方法添加回调。

例如:

AppCenter.IsEnabledAsync().ContinueWith(task =>
{
    // Do something with task.Result
});

在该方法具有实际返回值的情况下,它将返回 AppCenterTask<{Return Type}> (,如上面的示例) 。 在这些情况下,回调中的任务参数将具有 Result 可访问的属性。

方法 2:内置语言功能

如果要编写有权访问 .NET 4.6 或更高版本的代码, AppCenterTask 则可以 await在异步上下文中获取 。

例如:

bool isEnabled = await AppCenter.IsEnabledAsync();

方法 3:协同例程

AppCenterTask也适合在协同例程中使用。

例如:

void SomeMethod()
{
    StartCoroutine(IsEnabledCoroutine());
}

IEnumerator IsEnabledCoroutine()
{
    var isEnabled = AppCenter.IsEnabledAsync();
    yield return isEnabled;

    // do something with the isEnabled
}