跳到主要内容

配置 PgosSDK 插件

您可以通过编辑器设置或代码来配置PgosSDK的多个参数。

以下是各字段说明:

  • title_id:从网页控制台获取的游戏ID。
  • log_levelPgosSDK日志的最低抑制级别。0表示Info,1表示Warn,2表示Error,3表示No Log。
  • secret_key:从网页控制台生成的客户端Secret Key。(仅限客户端
  • account_provider:0表示FAS,1表示INTL,2表示MSDK,3表示WeGame,4表示PlayFab,5表示Steam,6表示Epic。(仅限客户端
  • chat_msg_cache_max_bytes:聊天消息本地缓存的最大大小(以字节为单位)。(仅限客户端
  • title_region_config_data_cache_max_bytes:游戏区服Config Data本地缓存的最大大小(以字节为单位)。(仅限客户端
  • group_event_msg_filter:配置群组支持的事件消息类型,空(默认)表示支持所有类型。点击事件消息过滤了解详情。(仅限客户端
  • title_region_id: 指定服务器应访问的title region。此配置仅适用于未使用 PGOS DS Hosting 服务的服务器,而使用 PGOS DS Hosting 服务的在线 DS(部署在 PGOS 云环境中)和本地 DS(配置了本地部署者 ID)均无需此配置. (**DEDICATED SERVER ONLY**)
  • ds_hosting_feature_enable: 是否启用 PGOS DS Hosting 功能。如果未使用此功能,禁用它可以加快 SDK 初始化速度。“true”表示启用,“false”表示禁用。 (**DEDICATED SERVER ONLY**)

1. 从编辑器设置进行配置(推荐)

在Unity编辑器中,导航至 Window->PgosSDK->Generate PGOS Setting file->PgosSDK,您可以看到如下设置:

image-20220919161436581

您需要至少设置 Title IDSecret Key 才能使 PGOS 正常工作。

如果您更改默认设置,将会创建或更新 Assets/Resources/PgosSettingData.asset 文件。

2. 通过代码设置

在使用C#时,您可以使用Dictionary来存储配置并将其传递给InitConfig函数,字段名称可以参考上述的字段说明

// For client
var clientConfig = new Dictionary<string, string>();
clientConfig.Add("title_id", "Your Title ID");
clientConfig.Add("secret_key", "Your Server Secret Key");
PgosClientSDK.Get().GetClientSDKAPI().InitConfig(clientConfig);

// For server
var serverConfig = new Dictionary<string, string>();
serverConfig.Add("title_id", "Your Title ID");
PgosServerSDK.Get().GetServerSDKAPI().InitConfig(serverConfig);

3. Android 项目的额外设置

当发布一个 Android 项目时, 需要在 Activity 类中调用 PgosSDKJava 互操作代码初始化.

.java 代码文件可以放在 Assets 及其任意子目录下.
以下简单例子直接保存为文件 Assets/PGOSUnitySampleMainActivity.java:

package com.proxima.pgos.unitysample;
import com.unity3d.player.UnityPlayerActivity;
import android.os.Bundle;
import android.util.Log;

import com.pgos.client.PgosClientNative;

public class PGOSUnitySampleMainActivity extends UnityPlayerActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// 需要在 PgosSDK C# 代码初始化前调用 PgosClientNative.initialize
// 就像这里展示的, 推荐在 `Activity.onCreate` 中调用, 因为这早于所有 C# 代码的执行.
PgosClientNative.initialize(this);
}
}

当你创建了这个 .java 代码文件后, 它在 Inspector 里看起来就像一个插件的设置:

image: inspector for .java

接着, 你需要再 Project Settings -> Player -> Android Settings -> Publishing Settings 中打开 Custom Main Manifest 选项:

image: changes in Project Settings

Unity 应该会自动创建文件 Assets/Plugins/Android/AndroidManifest.xml, 如果没有, 则手工创建一个, 作为例子其主要内容如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application>
<activity android:name="com.proxima.pgos.unitysample.PGOSUnitySampleMainActivity"
android:theme="@style/UnityThemeSelector">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="unityplayer.UnityActivity" android:value="true" />
</activity>
</application>
</manifest>