? ? 1 通過控件裝載u3d視圖來控制顯示和隱藏視圖在u3d 5.6之前的版本是行的通的 u3d 5.6的版本(u3d的視圖渲染機(jī)制改變,視圖會(huì)強(qiáng)制性的展示);
? ? 2 現(xiàn)在項(xiàng)目的布局是android這邊有層原生控件轰驳,u3d的視圖會(huì)強(qiáng)制性的渲染在視圖上方u3d 5.6的解決辦法目前是把u3d的布局偏移一個(gè)屏幕的距離(也可以選擇把 u3d的視圖大小設(shè)置為寬和高都為0 ? ? ? ? ? ? ?來達(dá)到隱藏的效果惠桃,不過還原大小的時(shí)候會(huì)有個(gè)視圖渲染加載過程默認(rèn)會(huì)顯示主題);
? ? 3 首先是交互 是對(duì)應(yīng)u3d包名下面對(duì)應(yīng)的一個(gè)類 對(duì)應(yīng)的方法名字里面(參數(shù)一般為json用來數(shù)據(jù)交互) 值得注意的是方法要全是靜態(tài)的,并且有參數(shù)的咬荷, 里面對(duì)應(yīng)有unityContext,unityActivity是對(duì)應(yīng)安卓 ? ? ? ? 的上下文和activity, ? ? 并且請(qǐng)不要換上AppCompatActivity因?yàn)閡3d導(dǎo)出的工程版本 ? ? ? ? ?偏低所以不支持這個(gè)。
? ? 4 然后就是對(duì)應(yīng)的u3d新加方法的話需要導(dǎo)一次包在讓安卓這邊接入轻掩,取巧的方法就是替換libs下面的對(duì)應(yīng)生成的jar包,并且替換assets下面緩存的文件
? ? 5 Unity工程假如添加jar包的話打包出來的因?yàn)槭莈clise工程所以項(xiàng)目結(jié)構(gòu)層級(jí)是和gradle工程是不一樣的幸乒。如果出現(xiàn)第三方的工程引用需要自己手動(dòng)導(dǎo)入到gradle工程里面
? ? 6 Unity 5.6后面的版本是可以導(dǎo)出gradle工程但是層級(jí)關(guān)系會(huì)有問題比如項(xiàng)目的gradle和工程的gradle在一個(gè)gradle下面
? ? 7 在Unity頁面打開新的activity會(huì)使Unity頁面進(jìn)入onStop()方法,所以接口的數(shù)據(jù)傳輸進(jìn)入暫停。
? ? 8 發(fā)給U3d的消息 UnityPlayer.UnitySendMessage("這個(gè)是和u3d定義好的名字","這個(gè)是方法名","這個(gè)是要傳的數(shù)據(jù)")?
? ? 9 在app下面的build.gradle中加入sourceSet{ main{ jniLibs.srcDirs=[libs] } }里面會(huì)出現(xiàn)版本不支持
? ? 10 接入過來的Unity工程 把入口的acivity改為UnityActivity?
? ? 1 不管是網(wǎng)易云或者是聲網(wǎng)的sdk 都存在u3d背景音樂出不來的情況 網(wǎng)易云的話是是進(jìn)入會(huì)議室就直接不停的拿聲音管理的這個(gè)服務(wù) 以至于根本沒有聲音 但是偶爾的一次測試發(fā)現(xiàn) 黑屏以后就可以聽 ? ? ? ? 到背景音樂了
? ? 2 聲網(wǎng)的sdk初始化的時(shí)候joinChannel(String channelkey,String channelName,String optionalInfo,int optionalUid) 當(dāng)optionalUid設(shè)置為0時(shí)會(huì)返回一個(gè)對(duì)應(yīng)的32位整數(shù)唇牧,尷尬的是Ios這邊是生成64位 ? ? 的整數(shù)罕扎,所以后臺(tái)在介入的話會(huì)出現(xiàn)數(shù)據(jù)匹配不上 這邊的解決方法就是自己把返回的Uid 在轉(zhuǎn)成64位整數(shù)