主要概念
Understand key concepts to use Unity Gaming Services effectively.
阅读时间3 分钟最后更新于 1 个月前
在开始之前,请花几分钟了解 Unity Gaming Services(Unity 游戏服务)的一些主要概念。
服务器端游戏系统
对于实时游戏,特别是多人游戏,在一个固定位置管理玩家数据非常重要。这种情况下不再通过每个玩家的设备来管理相应玩家的数据,而是通过一个与所有玩家设备进行通信的中央服务器来处理重要的游戏决策。这有助于减少作弊手段,这些手段可能会让玩家获得不公平优势,或获取他们原本需要购买或赚取的资源。同样,为了确保实时活动和竞技功能对所有玩家公平,您的游戏应该在云端管理数据和决策。 Unity Gaming Services(Unity 游戏服务)可让您:- 使用 Cloud Save 服务将玩家数据安全地保存在云端。
- 使用 Economy 和 Cloud Code 服务在云中运行经济逻辑和游戏逻辑。
异步代码
与任何在线服务一样,Unity Gaming Services(Unity 游戏服务)全部基于异步操作。这意味着客户端对服务的请求不会为等待响应而停止游戏。当服务请求在后台发生时,游戏过程、UI 和动画可以继续执行。 为此,Unity Gaming Services(Unity 游戏服务)依赖于基于任务的异步模式 (TAP),这使得用 C# 编写异步代码比较容易。如果您已经熟悉在 Unity 中编写代码,那么您可能了解可用于异步逻辑的协程。虽然协程对于控制前台发生的事情仍然有用,但异步任务更适合管理后台发生的事情,例如 Web 请求。 在整个 UGS 文档中,您会遇到asyncawaitasyncTaskawaitasync如需了解更多信息,请参阅 Microsoft 的异步编程概念指南。async Task RefreshPlayerWallet(){ // Use an animation to show the player something is happening. waitIndicator.gameObject.SetActive(true); // Download this player's currency statuses from UGS; // this asynchronous task won't interrupt the animation. var newWalletData = await EconomyManager.RefreshWalletData(); // Once you have the downloaded data, update your UI. walletView.Refresh(newWalletData); waitIndicator.gameObject.SetActive(false);}
SDK API 与 REST API
有两种方法以编程方式访问 Unity Gaming Services(Unity 游戏服务):- SDK(客户端)API
- REST (Web) API