Unity如何快速接入iOS和GooglePlay的成就排行榜等GameCenter功能

一般在游戏开发中,经常有成就排行榜的需求,按照我们的理解,通常是要自己导入谷歌的sdk,或者苹果的sdk,然后封装后通过桥接来调用。

不用这么复杂,本鱼蛋(egostudio 防爬)告诉大家一个方法,其实Unity已经帮我们封装好了,直接调用接口即可。

目前支持的功能有:

  • 用户个人资料
  • 好友列表
  • 成就
  • 统计信息/排行榜

 我们可以通过以下方式进行调用,Unity会自动帮我们根据平台进行调用,大大减少了我们的开发效率。目前所有相关的功能都在Social类中。

using UnityEngine;
using UnityEngine.SocialPlatforms;public class SocialExample : MonoBehaviour {void Start () {// 验证并注册 ProcessAuthentication 回调// 需要进行此调用才能继续进行 Social API 中的其他调用Social.localUser.Authenticate (ProcessAuthentication);}// 当验证完成时将调用此函数// 请注意,如果操作成功,Social.localUser 将包含来自服务器的数据。void ProcessAuthentication (bool success) {if (success) {Debug.Log ("Authenticated, checking achievements");// 请求加载的成就,并注册回调来处理它们Social.LoadAchievements (ProcessLoadedAchievements);}elseDebug.Log ("Failed to authenticate");}// LoadAchievement 调用完成时将调用此函数void ProcessLoadedAchievements (IAchievement[] achievements) {if (achievements.Length == 0)Debug.Log ("Error: no achievements found");elseDebug.Log ("Got " + achievements.Length + " achievements");// 也可以按照以下方式调用函数Social.ReportProgress ("Achievement01", 100.0, result => {if (result)Debug.Log ("Successfully reported achievement progress");elseDebug.Log ("Failed to report achievement");});}
}

可以通过此链接查看Unity官方详细的文档:

Social API - Unity 手册

高级功能

当然,一些高级功能还是需要自己接入的,幸运的是,一些平台也会提供一键导入的sdk使用,如GooglePlay就提供了适用于 Unity 的 Google Play 游戏插件。

适用于 Unity 的 Google Play 游戏插件使用入门  |  Android 游戏开发  |  Android Developers

安装插件

  1. 使用以下任一方式获取插件:

    • 将 GitHub 代码库克隆到文件系统中。

    • 下载 ZIP 文件形式的 GitHub 代码库,然后进行解压缩。

  2. 在 current-build 目录中找到 unitypackage 文件。此文件即是插件。例如,文件名应与以下内容类似:

      current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
    
  3. 在 Unity 中打开游戏项目。

  4. 依次点击 Assets > Import Package > Custom Package 菜单项,将 unitypackage 文件导入到项目资源中。

  5. 确保当前的 build 平台已设置为 Android

    1. 在主菜单中,依次点击 File > Build Settings...

    2. 选择 Android,然后点击 Switch Platform

    3. Window > Google Play Games 下应该会显示新的菜单项。如果未显示,请点击 Assets > Refresh 来刷新资源,然后再次尝试设置 build 平台。

请注意:

接好之后,对应平台的后台还是得配置哦,该开的服务,该添加的FrameWork也得添加哦。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/7051.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

el-table 表头设置渐变色

<el-table :data"tableData" stripe><el-table-column prop"name" label"测试" align"left"></el-table-column><el-table-column prop"code" label"测试1" align"left"></…

Sui Move与标准Move的有哪些区别和根本性创新

Sui网络将Sui Move作为其本地编程语言&#xff0c;使用Sui Move编写的apps利用Sui的共识机制&#xff0c;实现了令人印象深刻的交易性能。 然而&#xff0c;熟悉Move编程语言的开发者在探索Sui文档时可能会感到困惑&#xff0c;因为该文档着重介绍了对象和一些指令&#xff0c…

kafka消费者api和分区分配和offset消费

kafka消费者 消费者的消费方式为主动从broker拉取消息&#xff0c;由于消费者的消费速度不同&#xff0c;由broker决定消息发送速度难以适应所有消费者的能力 拉取数据的问题在于&#xff0c;消费者可能会获得空数据 消费者组工作流程 Consumer Group&#xff08;CG&#x…

刷题记:无重复字符的最长子串

● 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”&#xff0c;所以其长度为 3。 输入: s “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”&#xff0c;所…

git 提示 不能合并

今天A分支合并B分支&#xff0c;提示“不能合并” 最终发现&#xff0c;是另一个分支的版本落后导致&#xff0c;但是git并未提示出来 有遇到这种问题可以先检查下版本

如何有效跟踪你的计费时间?

对于自由职业者、小型企业和远程团队来说&#xff0c;时间跟踪是必需的。了解自己在单个项目或任务上投入了多少时间&#xff0c;可以帮助他们有效管理资源和优化工作流程。 然而&#xff0c;在向客户收费时&#xff0c;时间跟踪多了一层复杂性&#xff1a;不仅需要跟踪所花费…

Java实现商品ID获取京东商品历史价格数据方法

要通过京东的API获取商品历史价格&#xff0c;您可以使用京东开放平台提供的接口来实现。以下是一种使用Java编程语言实现的示例&#xff0c;展示如何通过京东开放平台API获取商品历史价格&#xff1a; 首先&#xff0c;确保您已注册成为京东开放平台的开发者&#xff0c;并创…

Linux工具——vim

安装vim yum -y install vim 如果安装失败&#xff0c;提示Could not resolve host:mirrorlist.centos.org: Unkown error的问题&#xff0c;需要替换yum源&#xff0c;可以参考这个文章 配置vim root的vim配置文件在 /etc/vimrc 普通用户的vim配置文件在用户对应家目录下&a…

ElacticSearch入门

ElacticSearch 什么是Elasticsearch&#xff1f; Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎&#xff0c;基于RESTful web接口。Elasticsearch是用Java语言开发的&#xff0c;并作为Apache许可条款下的开放源码发布&#xff0c…

RabbitMQ的确认机制

RabbitMQ的确认机制 生产者确认 public class ProductionMessageConfirm {public static void Send(){ConnectionFactory factory new ConnectionFactory();factory.HostName "localhost";//RabbitMQ服务在本地运行factory.UserName "guest";//用户名…

react实现页面动态表单设计器(自定义推拽表单)

react实现页面动态表单设计器&#xff08;自定义推拽表单&#xff09; 实现效果安装插件使用组件介绍基本设置&#xff0c;可设置控件标签&#xff0c;是否必填&#xff0c;校验规则校验规则有如下几种多选&#xff0c;下拉&#xff0c;单选可动态设置每个选择的label以及值 实…

一百三十三、Hive——Hive外部表加载含有JSON格式字段的CSV文件数据

一、目标 在Hive的ODS层建外部表&#xff0c;然后加载HDFS中的CSV文件数据 注意&#xff1a;CSV文件中含有未解析的JSON格式的字段数据&#xff0c;并且JSON字段中还有逗号 二、第一次建外部表&#xff0c;直接以&#xff0c;分隔行字段&#xff0c;结果JSON数据只显示一部分…

vue3相对路径图片编译后无法显示

<img src"../assets/image/ai_content_12x.png" /> 是这么写的&#xff0c;图片用的相对路径&#xff0c;在本地不编译的话是没有问题正常。 但是编译后你就会发现在域名后一旦有路径&#xff0c;整个vue的 img js css 的加载路径都会报错。 需要在vue.config.…

【1++的C++初阶】之list

&#x1f44d;作者主页&#xff1a;进击的1 &#x1f929; 专栏链接&#xff1a;【1的C初阶】 文章目录 一&#xff0c;什么是list二&#xff0c;构造与析构2.1 结点结构2.2 链表结构2.3 迭代器结构 三&#xff0c;部分重要接口的作用及其实现3.1 迭代器相关的接口3.2 list相关…

【微信小程序】实现折叠功能,折叠不同的列表

要实现微信小程序中的折叠功能&#xff0c;可以使用wx:if或hidden属性来控制列表的显示与隐藏。同时&#xff0c;可以使用icon组件来添加指示箭头。 首先&#xff0c;在wxml文件中创建两个List列表&#xff0c;使用一个变量来控制列表的显示与隐藏&#xff1a; <view>&…

【VCS】(5)Fast RTL-level Verification

Fast RTL-level Verification General Coding GuidlinesLab --- simprofile$display() 输出彩色内容 前面的内容都是在说怎样进行仿真和验证&#xff0c;即如何使用 VCS 。 但是&#xff0c;仿真和验证是不是也有所讲究&#xff1f; 有没有一些标准来衡量设计代码和验证代码的质…

62. 不同路径

题目链接&#xff1a;力扣 解法一&#xff1a;动态规划 定义状态&#xff1a;对于m*n的网络&#xff0c;从最后一行到右下角&#xff0c;以及从最后一列到右下角&#xff0c;都只有一条不同路径&#xff1a;一直向右或一直向下&#xff0c;所以可以定义状态&#xff1a;dp[i][…

OpenCV系列__chapter2

这里写目录标题 1 图像加减乘除位运算1.1 加法 img cv2.add(img1, img2)1.2 减法 img cv2.subtract(img1, img2)1.3 乘法 img cv2.multiply(img1, img2)1.4 除法 img cv2.divide(img1, img2)1.5 位运算 2 图像增强2.1 线性变换2.2 非线性变换 3 图像几何变换3.1 裁剪、放大…

Java设计模式之单例模式(Singleton)模式

单例模式&#xff08;Singleton&#xff09;确保一个类只有一个实例&#xff0c;且提供一个全局访问点。 什么是单例模式 单例模式是一种非常常用的设计模式&#xff0c;它可以确保一个类只有一个实例&#xff0c;并且提供一个全局访问点。在单例模式中&#xff0c;应用程序中…

java(springboot)对接elasticsearch8+

1、pom引用 注&#xff1a;jackson包es只用到了databind&#xff0c;之所以全部引用是因为actuator用到了其他&#xff0c;只升级一个会 导致版本冲突 <!-- https://mvnrepository.com/artifact/co.elastic.clients/elasticsearch-java --> <dependency><grou…