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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Untiy 接入 移动MM 详解

發布時間:2023/12/18 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Untiy 接入 移动MM 详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?第一次接到師傅的任務(小龍),準備著手寫untiy接入第三方SDK的文章(android?方向),第一次寫故而寫的不好的地方不要吐槽。如有興趣可加63438968untiy?開發群)進行探討。

??本文主要已?unity?android工程為基礎進行解析分析。其次因目前各地sdk平臺與unity程序有不兼容問題,故而導致了在發布后會缺少文件。本文也提供了一個解決方案供大家參考。


eclipse???

1.1?在接到接入哪家平臺之后,首先做的第一件事,是登錄到這個平臺官網,下載最新的SDK,按照開發文檔內容進行查找,找到哪段代碼是對應的什么方法。并新建工程,寫成自己的方法。以下已移動MM2.3.0)?為例做介紹。?

移動MM官網?http://dev.10086.cn/iap/?action=down&areaid=1354082900?

開發文檔在工程內

1.2?下載完成之后,打開移動MM?的demo。放在android手機上,先進行了解,并將demo中的?對應的代碼找出來。

1.3?確定之后就可以寫自己的工程了。接入工程有幾個地方需要注意,首先是jay包?,jay包即是第三方平臺的jay包如圖所示:

?

其中?armeabi?mmBilling.2.3.0.jar是移動MM平臺必須放入的(在下載的SDK內會找到),android-support-v4.jay是android工程自動生成的。

Unit-classes.jar(在unity引擎內可以找到,如果找不到就直接搜索classes.jar即可)是?unity的jay包?

備注:導入方式除了正常的拖拽到libs內?,也可以在Properties-Java?Build?Path-Libraries-點擊“Add?JARs…”按鈕,在彈出窗口中,選中jar文件,但此方法是按照絕對路徑,故如果工程換位置的話,會導致查找不到jar。故而不建議采取此方法。如圖

?

1.4?添加完成jar之后就需要?在配置文件AndroidManifest.xml中添加必要的聲明文件。如圖:(如果需要可在demo中查找到)

?

?

備注:以上是前期準備工作,具體的APPID、APPKEY、PAYCODE,以及硬件計費軟件計費等參數。可登錄到官網注冊并且開發應用即可獲取相應的參數。

1.5?準備好了就可以進行開發了。以下內容指示做舉例?并不一一將代碼展現出來。

1.5.1?第一?,需要將主activity?繼承?UnityPlayerActivity?

備注:UnityPlayerActivity?是繼承自activity的?

1.5.2??準備接入。已初始化為例:

private??String?mAPPID?=?"000000000000";

private??String?mAPPKEY?=?"0000000000000000";

public?void?Init(String??APPID,String?APPKEY){

mAPPID=APPID;

mAPPKEY=APPKEY;

Log.i("ZD",?"appid"+mAPPID+"appkey"+mAPPKEY);

?

runOnUiThread(new?Runnable()?{

?

@Override

public?void?run()?{

IAPHandler?iapHandler?=?new?IAPHandler(myActivity);

mPaycode?=?readPaycode();

mProductNum?=?readProductNUM();

mListener?=?new?IAPListener(myActivity,?iapHandler);

purchase?=?Purchase.getInstance();

try?{

purchase.setAppInfo(mAPPID,?mAPPKEY);

?

}?catch?(Exception?e1)?{

e1.printStackTrace();

}

try?{

purchase.init(myActivity,?mListener);

?

}?catch?(Exception?e)?{

e.printStackTrace();

return;

}

}

});

}

備注:?

mAPPID?,mAPPKEY?需要在unity內傳參過來。

unity?sdk平臺代碼,會使用主線程,并修改UI,但大部分在修改主UI的時候會出現致命錯誤,故而需要添加在子線程中。添加子線程現在總結了三種方法,供大家參考。

其一:runOnUiThread(new?Runnable()?{

?

@Override

public?void?run()?{

//?TODO?Auto-generated?method?stub

?

}

});

?

其二:private?Handler?myHandler=new?Handler()

{

public?void?handleMessage(Message?msg)?{

switch?(msg.what)?{

case?0:

?

break;

?

default:

break;

}

}

};

?

myHandler.sendEmptyMessage(0);

其三:

new?Handler(Looper.getMainLooper()).post(new?Runnable(){

@Override

public?void?run(){

?

}});

?

以上三種方式都可實現在子線程?完成邏輯處理。具體看哪個用的上手就用那個?并不統一。

1.6?在完成所有接入之后?就需要寫回調?方法了。而返回給unity?需要使用到

UnityPlayer.UnitySendMessage(Deductiontomonitor,?DeductionSuccess,?result);備注:???里面三個參數都是string?格式,如需要傳回其他類型可進行轉換即可。

第一個參數?:untiyGameObject物體的名稱?如圖??如我unity工程內需要處理邏輯的物體名稱是GameObject則將Deductiontomonitor改成GameObject即可。

第二個參數:?GameObject?物體內所掛方法名?

第三個參數:?result??是返回的參數,根據需要傳遞不同參數。?

?

1.7?android工程在將方法都寫好之后?,就需要打包jay。步驟如下:

工程右鍵-export?-?JAR?file?-next-Browse(選擇存放的路徑)-finish即可

?

備注:以上是android工程?,具體代碼加群在群共享內。

?

二、Unity??

2.1?新建unity工程,并在工程內新建文件?文件名必須是Pluginsuntiy啟動順序此為第三啟動順序,如果其他文件untiy是在初始化的時候是不訪問的)在Plugins內創建文件Android也就是android插件?。然后添加文件如圖:

?

添加四個文件?:配置文件?、?bin(android?打包的jay)、libs(?第三方平臺的sdk的jay包)??res(資源文件)?其他無用的?就都刪掉,避免出現未知問題。?

?

2.2?將unity?修改成?android工程?

?

畫了四個橫線

第一是發布之后公司的名稱?

第二是發布之后應用的名稱

第三是android工程的包名,必須一致,否則會出問題。如果不知道可打開AndroidManifest內找:

?

第四是?包含兩個參數?一個是ARMv7?ARMv6?其中ARMv6是低端機的意思,目前在?untiy版本3.5.6內還存在,更高版本此選項已無。?對于低端機?如果不選擇ARMv6而發布android應用,在低端機是無法運行的。

?

2.3?以上是?unity的準備工作,做好之后?就可以寫unity掉android的代碼了

同樣只是舉例,具體代碼?請在群共享內下載?

?

備注:?using?是c#的方法,這個方法非常有用?在using?()中新建的對象,會在{}結束的時候自動關閉和釋放,不需要你手動進行。

其一:AndroidJavaClass?jc?=?new?AndroidJavaClass("com.unity3d.player.UnityPlayer")

androidJavaClass英文直意?安卓java類。括號內的

com.unity3d.player.UnityPlayer???代表android工程的路徑com.unity3d.player.UnityPlayer????是總的路徑意思,

如果修改?可以修改成?android?的包名+類名也是可以的?例如

?

則可以將com.unity3d.player.UnityPlayer??修改成?

Com.example.ydmmtext.Demo??

其二:?AndroidJavaObject?jo?=?jc.GetStatic<AndroidJavaObject>("currentActivity")

AndroidJavaObject?androidJava物體的名稱?可以進行指定,如:在初始化的時候進行指向

myactivity=UnityPlayer.currentActivity;

寫的不太好,如有興趣可訪問

http://www.cnblogs.com/U-tansuo/archive/2013/03/13/unity3d_android_2.html?

內有?介紹?

其三?

?jo.Call("Init",APPID,APPKEY);

意思是訪問android工程?內的Init?方法,并傳遞兩個參數?。

Android工程對于代碼

?

這樣就可以使?unity?訪問?android工程。

?

2.4?回調:在很多時候?unity調用android之后?還需要android返回給unity信息,如支付之后,用戶是?支付成功、支付失敗、還是支付取消。都需要返回給unity,并進行相應邏輯處理。

2.4.1?在android工程內

?

而unity對應的代碼是

?

這樣即可實現?android?回調unity?

2.5?寫完?調用和回調方法之后。在給大家分享一個工廠代碼,即方便unity?代碼之間的調用,如圖:

?

如進行調用的話,直接? YDMM.Instance.Init(appId,appkey);??即可

2.6?寫完之后即可進行發布了。但在發布的時候?經常會出現?無法發布APK的問題,這種問題多為?bin?libs?res這三個文件導致,不是多放文件就是少放文件了。導致資源找不到等問題。多注意?多看各個平臺的開發文檔即可。

?

?

三?、?在發布出去APK后?也算是大功告成了。但有的sdk平臺?如移動MM?、多盟、百度移動聯盟、都有兼容問題,即在APK根目錄下該有的文件并未自動生成,而這時候就需要自己手動添加了。?如何找到缺少文件呢,這時可以打開對應的SDK平臺?找到demo?這demo工程內會有eclipse自動生成的APK?。將他的后綴改成zip?即可發現缺少的文件?如圖:

?

改成zip之后打開會發現根目錄多了?一些文件,而unity發布之后的apk并沒有

?

?

這時?就需要手動將缺少的文件?拷貝到自己的apk里頭。

3.2?添加以后?還并未操作完成,因android有自己的簽名系統,平白的給這簽名里頭加東西,會導致手機不認識這個程序,故而在添加完成之后?還需要將添加后的APK?進行?重新簽名,簽名軟件有很多。不做過多介紹。在本群內?會提供一個簽名軟件,供大家使用。

備注:?移動MM?在全部接入完成之后,可以在移動MM平臺進行發布,但在發布的時候會遇到無法上傳的問題,本人在發布的時候也遇到該問題,后來換了個瀏覽器解決了該問題。如有類似問題這樣操作即可。

?

四、??以上是移動MM?的接入。以下是日后?更新內容

4.1 ?如有不會的可在群內進行發問咨詢

?

?

4.2??以上內容包含了?廣告、短信支付、內支付后續會逐步更新完善,另外像廣大群友咨詢如何更好的接入多家SDK平臺。目前這塊不是很熟悉。同時接入8家SKD?,但是是進行一一整合的,很不方便管理。尋求網友出教學,簡化接入方法。以下是聯系方式以及各大平臺sdk的鏈接地址:

?

開發群號:63438968??博客地址:http://www.cnblogs.com/alongu3d/?

設計師群: 185762832?

?

雨松momo?博客地址:http://www.xuanyusong.com/??第18?和19片如果是初學者建議看一下。

?

?

Tapjoy_SDK

https://dashboard.tapjoy.com/sdk

有米廣告

http://www.youmi.net/apps/sdk

Google?Admob

https://developers.google.com/mobile-ads-sdk/docs/dfp/fundamentals#play

艾德思奇

http://mobi.adsage.cn/ac/?adsage_ticket=eyJ0b2tlbiI6IjI3YTkxMjU1OWY5ZjVlYjRmOWU4MTg0OGI3ZDI2NmE4IiwiaG9zdCI6InJzdnIzIn0=

移動游戲基地

版本需要找客服要http://g.10086.cn/spbbs/search.php???

電信愛游戲

版本需要找客服要?

Google?Play?內支付

http://prime31.com/plugins

Domob?多盟?廣告

http://www.domob.cn/developers/SDKdownload.htm

Domob?多盟?積分墻

http://www.domob.cn/developers/SDKdownload.htm

新浪微博?

http://open.weibo.com/wiki/SDK#Android_SDK

微信SDK

http://open.weixin.qq.com/document/gettingstart/android/

聯通VAC

需要找接口人

機鋒支付

http://www.gfan.com/dev/gpay/

360手機網游SDK

http://openapi.360.cn/page/sdk_cms

百度移動聯盟廣告

http://munion.baidu.com/about.html#/sdk/mobSdk

百度移動聯盟積分墻

http://munion.baidu.com/about.html#/sdk/statSdk

移動MM?

http://dev.10086.cn/iap/?action=down&areaid=1354082900

米迪

http://www.miidi.net/static/developers/sdk.htm

SmartMad億動智道

http://ads.smartmad.com/selfservice/app/downloadList.m

91SDK

http://bbs.18183.com/forum-91sdk-1.html?

UCsdk

http://bbs.9game.cn/thread-3183827-1-1.html

?

?

???????????20140324?熊熊家族-樹袋熊宗宗Boss

總結

以上是生活随笔為你收集整理的Untiy 接入 移动MM 详解的全部內容,希望文章能夠幫你解決所遇到的問題。

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