大数跨境
0
0

Agora 教程 | 如何在 Unity 游戏中用 RTM SDK 实现消息聊天

Agora 教程 | 如何在 Unity 游戏中用 RTM SDK 实现消息聊天 RTE开发者社区
2021-01-13
0
导读:在 Unity 游戏中快速实现消息聊天、游戏控制指令功能
我们在近期推出了 Unity 版的声网Agora 实时消息 RTM SDK。利用该 SDK,开发者可以将游戏中的消息聊天、游戏控制指令功能,快速集成到 Unity3D 应用程序与游戏中。与Unity 版声网Agora RTC SDK 配合,可实现更丰富的实时互动游戏场景。
RTM SDK Unity 版及 Demo👇
https://github.com/AgoraIO-Community/Unity-RTM   
我们在之前的内容中提供了 Unity RTM Demo 的实现步骤。很多Unity 开发者应该是第一次接触声网Agora SDK,所以我们基于 Demo 源码来讲一讲 RTM SDK 中几个主要的 API 功能与使用,便于大家快速上手。
码解析
这部分包含了对于RTM SDK新用户最重要的说明。在 RTM 中,最重要的类是: 
  • RtmClient 

  • RtmChannel 

  • RtmCallManager 

使用回调处理程序来检查状态和获取事件是至关重要的。相应的三个处理程序类是: 
  • RtmClientEventHandler 

  • RtmChannelEventHandler 

  • RtmCallEventHandler  

此外需要知道, RtmClient是创建其他类(如Channel和CallManager类)实例的中心类。 
  • Channel: channel = rtmClient.CreateChannel(ChannelName, channelEventHandler);

  • CallManager callManager = rtmClient.GetRtmCallManager(callEventHandler);

在Demo应用中,RtmChatManager使用这三个类和它们的处理程序来完成大部分的RTM任务。你将把事件处理程序的实现分配给委托(Delegate)。请参阅Start()中的代码进行初始化:
        void Start()        {            clientEventHandler = new RtmClientEventHandler();            channelEventHandler = new RtmChannelEventHandler();            callEventHandler = new RtmCallEventHandler();
rtmClient = new RtmClient(appId, clientEventHandler);
clientEventHandler.OnQueryPeersOnlineStatusResult = OnQueryPeersOnlineStatusResultHandler; clientEventHandler.OnLoginSuccess = OnClientLoginSuccessHandler; clientEventHandler.OnLoginFailure = OnClientLoginFailureHandler; clientEventHandler.OnMessageReceivedFromPeer = OnMessageReceivedFromPeerHandler;
channelEventHandler.OnJoinSuccess = OnJoinSuccessHandler; channelEventHandler.OnJoinFailure = OnJoinFailureHandler; channelEventHandler.OnLeave = OnLeaveHandler; channelEventHandler.OnMessageReceived = OnChannelMessageReceivedHandler; // etc...
// image clientEventHandler.OnImageMessageReceivedFromPeer = OnImageMessageReceivedFromPeerHandler; // etc... // invite callEventHandler.OnLocalInvitationAccepted = OnLocalInvitationAcceptedHandler; // etc... callManager = rtmClient.GetRtmCallManager(callEventHandler); // state clientEventHandler.OnConnectionStateChanged = OnConnectionStateChangedHandler; }
当你加入一个频道的时候,你可以像这样来发起呼叫:

channel.join()
虽然方法join()会返回一个成功或失败的代码,但实际上返回的代码只意味着调用的状态,而不是服务器的结果。你将从channelEventHandler.OnJoinSuccess和channelEventHandler.OnJoinFailure获得服务器结果。因此,你在编写代码时需要注意这种行为。 
最后,当你离开应用程序时,需要进行适当的清理。否则,你可能会遇到预期之外的系统异常。当程序结束时,请参考这段代码: 
         void OnApplicationQuit()        {            if (channel != null)            {                channel.Dispose();                channel = null;            }            if (rtmClient != null)            {                rtmClient.Dispose();                rtmClient = null;            }        }
更多的RTM API用法, 请点击「阅读原文」参考 API-Example project。 


了解更多


想了解更多关于实时消息 RTM SDK 的技术细节或落地场景?扫描下方二维码,报名参加我们的Agora Talk——【RTM 助力信令与消息全球实时互通】

扫描下方二维码,即可报名


【声明】内容源于网络
0
0
RTE开发者社区
RTE 开发者社区是聚焦实时互动领域的中立开发者社区。不止于纯粹的技术交流,我们相信开发者具备更加丰盈的个体价值。行业发展变革、开发者职涯发展、技术创业创新资源,我们将陪跑开发者,共享、共建、共成长。
内容 1122
粉丝 0
RTE开发者社区 RTE 开发者社区是聚焦实时互动领域的中立开发者社区。不止于纯粹的技术交流,我们相信开发者具备更加丰盈的个体价值。行业发展变革、开发者职涯发展、技术创业创新资源,我们将陪跑开发者,共享、共建、共成长。
总阅读1.8k
粉丝0
内容1.1k