ytgame
YouTube 游戏大本营 SDK 的顶级命名空间。
这是当前窗口中的全局范围变量。您不得替换此变量。
这是当前窗口中的全局范围变量。您不得替换此变量。
| 命名空间 | |
|---|---|
ads
|
🧪 公开预览版 API:如有变更,恕不另行通知。 |
engagement
|
与玩家互动相关的函数和属性。 |
game
|
与通用游戏行为相关的函数和属性。 |
health
|
与游戏健康度相关的函数和属性。 |
system
|
与 YouTube 系统相关的函数和属性。 |
| 枚举 | |
|---|---|
Sdk
|
YouTube 游戏大本营 SDK 抛出的错误类型。 |
| 类 | |
|---|---|
Sdk
|
YouTube 游戏大本营 SDK 抛出的错误对象。 |
| 变量 | |
|---|---|
IN_
|
游戏是否在游戏大本营环境中运行。 |
SDK_
|
YouTube 游戏大本营 SDK 版本。 |
枚举
Const SdkErrorType
变量
Const IN_PLAYABLES_ENV
IN_PLAYABLES_ENV: boolean
ytgame 检查相结合,以确保 SDK 确实已加载。
- 示例
-
const inPlayablesEnv = typeof ytgame !== "undefined" && ytgame.IN_PLAYABLES_ENV;
// An example of where you may want to fork behavior for saving data. if (ytgame?.IN_PLAYABLES_ENV) { ytgame.game.saveData(dataStr); } else { window.localStorage.setItem("SAVE_DATA", dataStr); }
Const SDK_VERSION
SDK_VERSION: string
- 示例
-
// Prints the SDK version to console. Do not do this in production. console.log(ytgame.SDK_VERSION);
ytgame.SdkError
扩展
Error
| 构造函数 | |
|---|---|
constructor
|
|
| 属性 | |
|---|---|
error
|
错误的类型。 |
message
|
|
name
|
|
stack
|
|
属性
errorType
errorType:
SdkErrorType
ytgame.ads
🧪 公开预览版 API:可能会在不另行通知的情况下发生变化。
与广告相关的函数和属性。
与广告相关的函数和属性。
| 函数 | |
|---|---|
request
|
请求展示插页式广告。 |
request
|
请求展示特定奖励类型的激励广告。 |
函数
requestInterstitialAd
requestInterstitialAd(): Promise<void>
Experimental 请求展示插页式广告。🧪 公开预览版 API:可能会在不另行通知的情况下发生更改。
不保证广告是否已展示。请勿使用此 API 来奖励观看广告的玩家。
- 示例
-
try { await ytgame.ads.requestInterstitialAd(); // Ad request successful, do something else. } catch (error) { // Handle errors, retry logic, etc. // Note that error may be undefined. }
| 返回 | |
|---|---|
Promise<void>
|
一个 promise,在请求成功时解析,在请求不成功时拒绝/抛出。 |
requestRewardedAd
requestRewardedAd(rewardId: string): Promise<boolean>
Experimental 请求展示特定奖励类型的激励广告。🧪 公开预览版 API:可能会在不另行通知的情况下发生更改。
不保证广告是否已展示。
- 示例
-
try { const isRewardEarned = await ytgame.ads.requestRewardedAd("21403813-2e22-4316-a8b2-7d4f52a6f6fb"); // Handle reward being earned or not. } catch (error) { // Handle errors, retry logic, etc. // Note that error may be undefined. }
| 参数 | |
|---|---|
rewardId: string
|
必需。唯一标识可申领的奖励类型的标识符。
您必须为每种奖励使用唯一 ID,并在每次提供该特定奖励时重复使用该 ID。例如:
|
| 返回 | |
|---|---|
Promise<boolean>
|
一个 Promise,如果用户满足获得奖励的条件,则在请求成功时解析为 true;否则解析为 false。如果请求失败,相应 Promise 会拒绝/抛出错误。 |
ytgame.engagement
与玩家互动相关的函数和属性。
| 接口 | |
|---|---|
Score
|
游戏发送给 YouTube 的得分对象。 |
| 函数 | |
|---|---|
send
|
向 YouTube 发送得分。 |
函数
sendScore
sendScore(score: Score): Promise<void>
向 YouTube 发送得分。
得分应表示游戏中的一个进度维度。如果存在多个维度,开发者必须选择一个维度以保持一致。得分将进行排序,最高得分将显示在 YouTube 界面中,因此任何游戏内最高得分界面都应与通过此 API 发送的内容保持一致。
得分应表示游戏中的一个进度维度。如果存在多个维度,开发者必须选择一个维度以保持一致。得分将进行排序,最高得分将显示在 YouTube 界面中,因此任何游戏内最高得分界面都应与通过此 API 发送的内容保持一致。
- 示例
-
async function onScoreAwarded(score: number) { try { await ytgame.engagement.sendScore({ value: score }); // Score sent successfully, do something else. } catch (error) { // Handle errors, retry logic, etc. // Note that error may be undefined. } }
| 参数 | |
|---|---|
score:
Score
|
要发送到 YouTube 的得分。 |
| 返回 | |
|---|---|
Promise<void>
|
一个 Promise,在成功时解析,在失败时拒绝/抛出 ytgame.SdkError。
|
ytgame.engagement.Score
游戏发送给 YouTube 的得分对象。
| 属性 | |
|---|---|
value
|
以整数形式表示的分数值。 |
属性
value
value: number
ytgame.game
与通用游戏行为相关的函数和属性。
| 函数 | |
|---|---|
first
|
通知 YouTube 游戏已开始显示帧。 |
game
|
通知 YouTube 游戏已准备就绪,可供玩家互动。
|
load
|
以序列化字符串的形式从 YouTube 加载游戏数据。 |
save
|
以序列化字符串的形式将游戏数据保存到 YouTube。 |
函数
firstFrameReady
firstFrameReady(): void
通知 YouTube 游戏已开始显示帧。
游戏必须调用此 API。否则,系统不会向用户显示相应游戏。
游戏必须调用此 API。否则,系统不会向用户显示相应游戏。
firstFrameReady() 必须在 gameReady() 之前调用。
- 示例
-
function onGameInitialized() { ytgame.game.firstFrameReady(); }
gameReady
gameReady(): void
通知 YouTube 游戏已准备就绪,玩家可以开始互动。
游戏必须在可互动时调用此 API。当加载屏幕仍在显示时,游戏不得调用此 API。 否则,游戏将无法通过 YouTube 认证流程。
游戏必须在可互动时调用此 API。当加载屏幕仍在显示时,游戏不得调用此 API。 否则,游戏将无法通过 YouTube 认证流程。
- 示例
-
function onGameInteractable() { ytgame.game.gameReady(); }
loadData
loadData(): Promise<string>
以序列化字符串的形式从 YouTube 加载游戏数据。
游戏必须处理字符串与内部格式之间的任何解析。
游戏必须处理字符串与内部格式之间的任何解析。
- 示例
-
async function gameSetup() { try { const data = await ytgame.game.loadData(); // Load succeeded, do something with data. } catch (error) { // Handle errors, retry logic, etc. // Note that error may be undefined. } }
| 返回 | |
|---|---|
Promise<string>
|
一个 Promise,在加载成功时完成,在失败时拒绝并返回 ytgame.SdkError。
|
saveData
saveData(data: string): Promise<void>
以序列化字符串的形式将游戏数据保存到 YouTube 中。
该字符串必须是有效的、格式正确的 UTF-16 字符串,且大小不得超过 3 MiB。游戏必须处理字符串与内部格式之间的任何解析。如有必要,请使用
该字符串必须是有效的、格式正确的 UTF-16 字符串,且大小不得超过 3 MiB。游戏必须处理字符串与内部格式之间的任何解析。如有必要,请使用
String.isWellFormed() 检查字符串是否格式正确。
- 示例
-
async function saveGame() { try { ytgame.game.saveData(JSON.stringify(gameSave)); // Save succeeded. } catch (error) { // Handle errors, retry logic, etc. // Note that error may be undefined. } }
| 参数 | |
|---|---|
data: string
|
|
| 返回 | |
|---|---|
Promise<void>
|
一个 Promise,会在保存成功时解析,并在保存失败时拒绝并返回 ytgame.SdkError。
|
ytgame.health
与游戏健康度相关的函数和属性。
| 函数 | |
|---|---|
log
|
向 YouTube 记录错误。 |
log
|
向 YouTube 记录警告。 |
函数
logError
logError(): void
向 YouTube 记录错误。
注意:此 API 尽力而为,且受速率限制,可能会导致数据丢失。
注意:此 API 尽力而为,且受速率限制,可能会导致数据丢失。
- 示例
-
function onError() { ytgame.health.logError(); }
logWarning
logWarning(): void
向 YouTube 记录警告。
注意:此 API 会尽最大努力,但受速率限制,可能会导致数据丢失。
注意:此 API 会尽最大努力,但受速率限制,可能会导致数据丢失。
- 示例
-
function onWarning() { ytgame.health.logWarning(); }
ytgame.system
与 YouTube 系统相关的函数和属性。
| 函数 | |
|---|---|
get
|
以 BCP-47 语言标记的形式返回用户在 YouTube 设置中设置的语言。
|
is
|
返回 YouTube 设置中是否已启用游戏音频。 |
on
|
设置在 YouTube 触发音频设置更改事件时触发的回调。
|
on
|
设置在 YouTube 触发暂停游戏事件时触发的回调。
|
on
|
设置在 YouTube 触发继续游戏事件时触发的回调。
|
函数
getLanguage
getLanguage(): Promise<string>
以 BCP-47 语言标记的形式返回用户在 YouTube 设置中设置的语言。
请勿使用其他 Functions 来确定用户的语言或语言区域,也不要将用户的语言偏好设置存储在云端存档中。请改用此函数,以确保用户在整个 YouTube 平台获得一致的体验。
请勿使用其他 Functions 来确定用户的语言或语言区域,也不要将用户的语言偏好设置存储在云端存档中。请改用此函数,以确保用户在整个 YouTube 平台获得一致的体验。
- 示例
-
const localeTag = await ytgame.system.getLanguage(); // `localeTag` is now set to something like "en-US" or "es-419".
| 返回 | |
|---|---|
Promise<string>
|
一个 Promise,在成功获取语言时完成,在失败时拒绝并返回 ytgame.SdkError。
|
isAudioEnabled
isAudioEnabled(): boolean
返回 YouTube 设置中是否启用了游戏音频。
游戏应使用此方法来初始化游戏音频状态。
游戏应使用此方法来初始化游戏音频状态。
- 示例
-
function initGameSound() { if (ytgame.system.isAudioEnabled()) { // Enable game audio. } else { // Disable game audio. } }
| 返回 | |
|---|---|
boolean
|
一个布尔值,用于指示音频是否已启用。 |
onAudioEnabledChange
onAudioEnabledChange(callback: ((isAudioEnabled: boolean) => void)): (() => void)
设置一个回调,以便在 YouTube 触发音频设置更改事件时触发该回调。
游戏必须使用此 API 来更新游戏音频状态。
游戏必须使用此 API 来更新游戏音频状态。
- 示例
-
ytgame.system.onAudioEnabledChange((isAudioEnabled) => { if (isAudioEnabled) { // Enable game audio. } else { // Disable game audio. } });
| 参数 | |
|---|---|
callback: ((isAudioEnabled: boolean) => void)
|
要触发的回调函数。 |
| 返回 | |
|---|---|
(() => void)
|
用于取消设置回调的函数,通常未使用。 |
onPause
onPause(callback: (() => void)): (() => void)
设置在 YouTube 触发暂停游戏事件时触发的回调。游戏在被逐出之前有一个短暂的时间窗口来保存任何状态。
onPause 会针对所有类型的暂停调用,包括用户退出游戏时。无法保证游戏会恢复。
onPause 会针对所有类型的暂停调用,包括用户退出游戏时。无法保证游戏会恢复。
- 示例
-
ytgame.system.onPause(() => { pauseGame(); }); function pauseGame() { // Logic to pause game state. }
| 参数 | |
|---|---|
callback: (() => void)
|
要触发的回调函数。 |
| 返回 | |
|---|---|
(() => void)
|
用于取消设置回调的函数,通常未使用。 |
onResume
onResume(callback: (() => void)): (() => void)
设置在 YouTube 触发继续游戏事件时要触发的回调。
游戏暂停后,不保证会继续。
游戏暂停后,不保证会继续。
- 示例
-
ytgame.system.onResume(() => { resumeGame(); }); function resumeGame() { // Logic to resume game state. }
| 参数 | |
|---|---|
callback: (() => void)
|
要触发的回调函数。 |
| 返回 | |
|---|---|
(() => void)
|
用于取消设置回调的函数,通常未使用。 |