配置 PgosSDK 插件
您可以通过编辑器设置或代码来配置PgosSDK
的多个参数。
以下是各字段说明:
- title_id:从网页控制台获取的游戏ID。
- log_level:
PgosSDK
日志的最低抑制级别。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,您可以看到如下设置:
您需要至少设置
Title ID
和Secret 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
类中调用 PgosSDK
的 Java
互操作代码初始化.
此
.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 里看起来就像一个插件的设置:
接着, 你需要再 Project Settings -> Player -> Android Settings -> Publishing Settings
中打开 Custom Main Manifest
选项:
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>