日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

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

發布時間:2024/6/21 综合教程 29 生活家
生活随笔 收集整理的這篇文章主要介紹了 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 initialization
    void 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語音聊天功能。

總結

以上是生活随笔為你收集整理的unity手游之聊天SDK集成与使用一的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。