Android:使用studio將unity打包的andriod項(xiàng)目集成到已有android工程

1.unity版本: 5.4

2.android開發(fā)工具:android-studio

unity打包的項(xiàng)目集成了谷歌的vr sdk;導(dǎo)出的andriod項(xiàng)目里面包含四個(gè)文件夾,

如上圖所示,三面三個(gè)都是lib;

ok接下來我們來看下集成的步驟,很簡(jiǎn)單,比集成sdk還要簡(jiǎn)單

1.將我們已有的android項(xiàng)目打開,然后將三個(gè)依賴庫(kù)導(dǎo)入;(可以不導(dǎo)入gvr_permission..);此處需要注意,將依賴庫(kù)中的jar包名稱修改下;切記,一定要修改.

2.在已有的項(xiàng)目里面寫一個(gè)activity繼承GoogleUnityActivity即可;在onCreat()方法里面復(fù)制如下代碼即可.;此外需要將csc里面的jar包也添加到libs文件夾.(ps:如果此處unity項(xiàng)目沒有集成google vr的話,可以繼承UnityActivity)

在此activity的布局文件中寫一個(gè)線性布局,然后在onCreate()方法里面添加如下代碼;

LinearLayout addViewId= (LinearLayout) findViewById(R.id.addViewId);

getWindow().setFormat(PixelFormat.RGBX_8888);

mUnityPlayer=newUnityPlayer(this);

//? View view=mUnityPlayer.getView();

addViewId.addView(mUnityPlayer);//csc? v? ? scene_type

3.將csc里面libs文件夾里面的.so文件全部拷貝到已有工程項(xiàng)目的libs里面

4.將unity打包出來的asset文件夾下的全部?jī)?nèi)容拷貝到現(xiàn)有android項(xiàng)目的asset文件夾下

5.大功搞成,從其他activity中跳轉(zhuǎn)到此actviity即可;

另外若需要傳遞值給unity,可以調(diào)用

mUnityPlayer.UnitySendMessage("ReceiveMessage","InitUnity", json);前兩個(gè)參數(shù)和unity那邊溝通好,最后傳遞的string類型參數(shù),是一個(gè)json數(shù)據(jù)哦;

//2017年11月7日更新

傳遞數(shù)據(jù)的話,可以是直接UnityPlayer.UnitySendMessage("ReceiveMessage","InitUnityVoice",msg.custom);而不必是使用成員變量,也是前幾天才知道這個(gè)UnitySendMessage方法是一個(gè)靜態(tài)方法。


2017年11月3日,Unity中介入了騰訊語音sdk,將包打給我,集成到現(xiàn)有android項(xiàng)目中.

1先說說遇到的坑吧,Unity那邊給我的android項(xiàng)目是eclipse版本的,大家都知道開發(fā)android現(xiàn)在基本上都換成了studio;所以我們無法直接使用android-studio打開這個(gè)帶有很多庫(kù)的eclipse項(xiàng)目.

2.第二個(gè)就是,在使用的時(shí)候,我本來是想按照上面寫的步驟將語音的庫(kù)導(dǎo)入我的現(xiàn)有的android項(xiàng)目,但是發(fā)現(xiàn)不行,缺少東西.

解決方法

1.我使用File-import project項(xiàng)目的方式,打開eclipse項(xiàng)目,此時(shí)可能會(huì)出現(xiàn)問題,不過我本來也不指望能正常運(yùn)行,我只是想得到其他四個(gè)能在studio環(huán)境下使用的庫(kù),若不如此操作,其他四個(gè)庫(kù)會(huì)缺少gradle文件

2.由于之前我項(xiàng)目已經(jīng)使用了其中三個(gè)庫(kù),今天就說一下如何使用語音的庫(kù).我按照之前的方法,導(dǎo)庫(kù)進(jìn)入,然后使用發(fā)現(xiàn),語音庫(kù)里面的jar包找不到,但是編輯的時(shí)候我確實(shí)是導(dǎo)包并且調(diào)用了其中的方法,運(yùn)行項(xiàng)目的時(shí)候提示我找不到類;一陣懵逼,最后我試著不把語音庫(kù)導(dǎo)入,而是直接將其lib中的.so文件拷貝到我項(xiàng)目的.so文件,將其中的jar包拷貝到lib下,和我項(xiàng)目之前的jar包在一起使用,然后運(yùn)行,發(fā)現(xiàn)是可以正常運(yùn)行了,但是我確實(shí)不知道為什么不能像以前一樣導(dǎo)入使用.

另外,需要注意的是,我們需要在Activity中的onCreate方法中調(diào)用如下代碼

GCloudVoiceEngine.getInstance().init(getApplicationContext(),this);

開始我以為我什么都不用操作,只要導(dǎo)庫(kù)加入jar包就行了,但是沒想到,還要初始化一下語音;這里還是我剛開始集成之后Unity同事告訴我集成之后語音不行,但是我檢查了下集成是沒問題的,后來Unity同事給我語音Unity集成文檔我才發(fā)現(xiàn)了,需要我初始化,我一直以為Unity那邊集成的時(shí)候自己去初始化呢,懵逼,為什么不早點(diǎn)告訴我呢,.....

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容