unity手游之聊天SDK集成与使用一

手游中都有聊天功能,比如公会,私聊,世界聊天,那么找一个好用,功能强大的SDK的可以节省很多精力,帮助我们提高开发速度与游戏质量。

写本篇博文是为了方便使用这个SDK做聊天模块的程序,避免许多坑,我在研究过程中,咨询了SDK开发者许多问题,所以我会详细的把使用过程及坑记录下来。

集成插件

我使用的是亲加通讯云提供的即时通讯SDK,附上地址,如下。

这里是文档说明,请查看即时通讯云-增强版,里面有unity的文档:

http://www.gotye.com.cn/docs.html?product=im&apiType=start
这里有UNITY版本的SDK插件:
http://www.gotye.com.cn/download.html

大概使用流程就是新建一个unity项目,在编辑器模式下切换成android平台进行编辑器调试。

导入unity sdk插件包gotyeapi.unitypackage。

如果提示Plugins/Windows/32bit/gotyeapi.dll等 插件等冲突,可以删掉Plugins/Windows/32bit文件夹下的插件,因为我是64位操作系统,所以Plugins/Windows/64bit文件夹下的插件有就行了。

导出android项目

发android包必须先导出android项目:

然后把unity项目插件里的Plugins/Android/libs/armeabi 文件夹和 Plugins/Android/libs/armeabi-v7a文件夹 拷贝到导出的android项目里libs文件夹里进行替换,因为Export的android项目缺少libs。

用Ellipse打开android项目:

File->Import->Anroid->Existing Android Code Into Workspace: Next

选择Android文件夹路径,导入后保证libs不缺少,正常应该如下图:

然后打开src->com.gotye.unityTest->UnityPlayerNativeActivity.java文件,在里面初始化sdk GotypeAPI:

在@Override protected void onCreate (Bundle savedInstanceState)函数内最后一行加上:

GotyeAPI.getInstance().init(getApplicationContext(), "19ff98c3-f93d-477f-81ba-be68859433a8", GotyeAPI.SCENE_UNITY3D);

别忘了加命名空间:import com.gotye.api.*;

app key改成你在官网上申请的appkey。

然后打开android项目根目录的AndroidManifest.xml文件,修改appkey成你在官网申请的appkey,并保存。

android:value="19ff98c3-f93d-477f-81ba-be68859433a8"

ellipse发apk包

File->Export->Anroid->Export Android Application -> Next,

选择要导出的项目,继续Next,

这里没有keystore的可以,先创建一个,testkey.keystore随便写,保存在根目录,填写paasword,重复填写密码后,Next,

这样,选择导出的包的地址,就可以打包apk了,再通过DDMS可以调试apk,查看log。
API使用

using UnityEngine;
using System.Collections;
using gotye;public class InitAPI : GotyeMonoBehaviour {public GotyeAPI api;void Awake(){InvokeRepeating ("mainLoop", 0.0f, 0.050f);}// Use this for initializationvoid Start(){api = GotyeAPI.GetInstance ();if (Application.platform != RuntimePlatform.Android){api.Init("19ff98c3-f93d-477f-81ba-be68859433a8", "com.gotyeapi");}//语音识别有关,可选
        api.InitIflySpeechRecognition();        }void mainLoop(){api.MainLoop();}
}

值得注意的是必须有mainLoop(),没有这个则服务器不会相应回调任何客户端的回调。

编辑器模式下需要api.Init(appkey, "com.gotyeapi") ,第二个参数不能改变,第一个参数改成自己的appkey。
下面是登陆的回调脚本:

using UnityEngine;
using System.Collections;
using gotye;public class Login : GotyeMonoBehaviour, LoginListener {public GotyeAPI api;void Start(){api = GotyeAPI.GetInstance ();api.AddListener (this);}public void onLogin(GotyeStatusCode code,GotyeUser user){Debug.Log ("onLogin--" + code + "," + user.Name);api.ReqFriendList ();api.BeginReceiveOfflineMessage ();}public void onLogout(GotyeStatusCode code){        }public void onReconnecting(GotyeStatusCode code, GotyeUser currentUser){        }
}

同样,你应该为每个监听写一个脚本,类似Login监听,这样才能收到服务器的响应。
这样用:
api.Logout();
//注意Login函数的第二个参数,必须为null,否则服务器回调给Login.cs的onLogin回调的code是验证失败的。
api.Login(userName, null);

就可以登陆了,之所以之前调用Logout,是为了没有退出话,先直接退出,再登陆。

给好友发私聊

监听好友事件:

using UnityEngine;
using System.Collections;
using gotye;
using System.Collections.Generic;public class Friend : GotyeMonoBehaviour, UserListener {public GotyeAPI api;public List<GotyeUser> friendList = new List<GotyeUser>();void Start(){        api = GotyeAPI.GetInstance ();api.AddListener (this);}public void onAddFriend (GotyeStatusCode code,GotyeUser friend){//添加好友成功后,刷新好友列表
        api.ReqFriendList ();}public void onGetFriendList(GotyeStatusCode code,List<GotyeUser> list){friendList = list;}
}

下面的代码可以在登陆成功的回调onLogin里调用:

添加好友:

//账号"zhangsan"必须存在,才能加好友成功,回调给实现UserListener接口的类。
api.ReqAddFriend(new GotyeUser("zhangsan"));

获取好友列表:

api.ReqFriendList ();

给好友发私聊:

//receiver 可以自己用好友账号名new一个     GotyeUser receiver  = new GotyeUser("zhangsan");GotyeMessage msg = GotyeMessage.CreateTextMessage(receiver, content);api.SendMessage(msg);

发送后,zhangsan就会 收到消息:onReceiveMessage。

文本消息发送完毕。

下一篇,我会研究该SDK语音聊天功能。

posted on 2015-11-05 19:52 jayce80 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/rentianlong/p/4940553.html

unity手游之聊天SDK集成与使用一相关推荐

  1. unity手游之聊天SDK集成与使用二

    unity手游之聊天SDK集成与使用二 集成思路 如果是自己的小游戏的话,可以把好友等信息直接保存在亲加服务器上,通过调用api来操作. 我们游戏只使用sdk的通信功能,好友等信息保存在自己的服务器上 ...

  2. 知物由学|游戏开发者如何从容应对Unity手游风险?

    本文由 网易云 发布 "知物由学"是网易云易盾打造的一个品牌栏目,词语出自汉·王充<论衡·实知>.人,能力有高下之分,学习才知道事物的道理,而后才有智慧,不去求问就不会 ...

  3. MMORPG的一份Unity手游性能蓝皮书

    https://mp.weixin.qq.com/s/iEs-1O3wTntaTrrCnOBn-A 这可能是针对MMORPG最全的一份Unity手游性能蓝皮书 2017-07-21 侑虎科技 游戏葡萄 ...

  4. Unity手游iOS内存分析和测试

    内存是Unity手游的硬伤,如果没有做好内存的相关管理和详细的测试,游戏极有可能出现卡顿.闪退等影响用户体验的现象.在此,笔者为我们介绍了一些Unity手游内存分析和测试过程中比较实用的测试场景案例. ...

  5. 如何做Unity手游性能优化的

    Unity性能优化参考: http://gameinstitute.qq.com/article/detail/39757 https://blog.uwa4d.com/archives/allino ...

  6. UWA发布 | 2017 Unity手游体检蓝皮书 — MMORPG篇

    原文链接:https://blog.uwa4d.com/archives/1903.html 正值UWA成立两周年之际,借着China Joy蓄势待发之势,UWA发布2016-2017年Unity手游 ...

  7. 腾讯是如何做Unity手游性能优化的

    他山之石-腾讯是如何做Unity手游性能优化的 本文转载自:http://www.taidous.com/thread-44045-1-1.html?_dsign=ba1258b9 俗话说,用户体验不 ...

  8. Unity手游开发札记——我们是如何使用Lua来开发大型游戏的?(上)

    0. 照旧的碎碎念 转眼间已经三月了,2月份的博客因为过年的懒惰和开年之后的忙碌而没有写--第二个月就打破了去年总结时对于2018年的愿望,真是羞耻呢-- 年后在准备新的测试版本,断断续续做了一些优化 ...

  9. Unity手游之路十自动寻路Navmesh之跳跃,攀爬,斜坡

    转载 Unity手游之路<十>自动寻路Navmesh之跳跃,攀爬,斜坡 分类: unity2013-12-27 00:50 6545人阅读 评论(5) 收藏 举报 unity3dNavme ...

最新文章

  1. txt或者csv数据文件的格式是有要求的,如下shell代码中说明。
  2. Oracle 分区表的新增、修改、删除、合并。普通表转分区表方法
  3. 桌面开发者的界面故事,该醒醒了
  4. 从目录中查找最大和最小的文件(不包括子目录)
  5. java label api_使用python API进行的培训作为Java API中LabelImage模块的输入?
  6. Mybatis-Plus 使用自定义注入器后,查询条件中不再添加逻辑删除字段限定条件
  7. 火牛单片机rtc时钟配置_怎么用STM32F103RTC进行时钟的配置
  8. 功能接口 java8_Java 8功能接口
  9. 华为服务器扩容内存进不去系统,服务器换内存系统出问题吗
  10. letter-spacing和word-spacing之间的区别
  11. 一起谈.NET技术,巨大转变!ASP.NET MVC2调用AJAX新特征
  12. 8个按键控制8个继电器c语言程序,单片机C语言程序的设计实训100例.doc
  13. 软件无线电波测试软件,SDR软件无线电的测量
  14. 服务器lsass状态代码c0000005,lsass.exe是什么进程?Win7系统提示Lsass.exe系统错误的原因及解决方法...
  15. 《Cocos Creator游戏实战》实现微信小游戏的截图,预览和相册保存功能
  16. 最近刷爆朋友圈的“召唤神龙”
  17. 学习笔记(01):3华为工程师 ,带你实战C++(2018版)-09面向对象的思想实战
  18. 用计算机求正有理数算术平方根的步骤,用计算器求算数平方根、用有理数估计算数平方根的大小 (2).ppt...
  19. 自动驾驶测试流程大全
  20. Linux系统安装docker源失败

热门文章

  1. HarmonyOS实现点亮LED
  2. 创业时也要读下这十本经典书
  3. Spark开发实例(编程实践)
  4. python制作搜索工具,深挖电脑里的小九九
  5. DNS服务(域名系统、过程、bind、配置文件、查看本设备dns)
  6. 在Excel表格中插入函数,利用公式进行计算
  7. 几个实用的app和网站
  8. PS-Photoshop2020版安装包以及安装详细教程
  9. python词云去除词_Python生成歌词词云
  10. Aria2离线下载搭建