Unity蘋(píng)果(iOS)內(nèi)購(gòu)接入(Unity內(nèi)置IAP)

【【【本教程針對(duì)Unity5.4版本!翩剪!其它版本需要自己做一些修改】】】

前言:所有這一切的前提是你需要有一個(gè)蘋(píng)果開(kāi)發(fā)者賬號(hào)乳怎,一年99美元,沒(méi)有的話(huà)需要到蘋(píng)果開(kāi)發(fā)者中心購(gòu)買(mǎi)肢专。除了本篇教程外舞肆,也可以按照Unity官方文檔進(jìn)行開(kāi)發(fā)。文章轉(zhuǎn)自游戲蠻牛原帖地址

首先第一步我們需要登錄到蘋(píng)果開(kāi)發(fā)者中心進(jìn)行我們的APP注冊(cè)博杖,點(diǎn)擊右上角的Account

輸入你的賬號(hào)密碼后就會(huì)進(jìn)入下面這個(gè)界面椿胯,然后點(diǎn)擊左邊的齒輪Certificates, Identifiers & Profiles

然后進(jìn)入到下面這個(gè)界面,在左邊的Identifiers下面剃根,點(diǎn)擊第一個(gè)App ids

進(jìn)入之后就會(huì)顯示你注冊(cè)過(guò)的app哩盲,當(dāng)然如果沒(méi)有注冊(cè)過(guò)這里是空的,點(diǎn)擊右上的“+”添加你的APP狈醉,會(huì)打開(kāi)下面這個(gè)界面廉油,為了截圖我往下拉了一點(diǎn)

注意:首先第一個(gè)紅框是你APP的名字,自己決定吧苗傅。第二個(gè)紅框可以稍微正式點(diǎn)抒线,一般我們都會(huì)寫(xiě)com.公司名.app名字,這樣的組合比較有點(diǎn)樣子渣慕,這個(gè)ID后面要用到

然后下面的按默認(rèn)的也可以嘶炭,看實(shí)際情況調(diào)整抱慌。弄完之后點(diǎn)最下面的Continue繼續(xù)后面的操作我就不截圖了,注冊(cè)完回到App ids頁(yè)面就可以看到你的剛剛注冊(cè)的app信息

然后我們打開(kāi)Itunes connect眨猎,登錄你的開(kāi)發(fā)者賬號(hào)進(jìn)入下面的界面

點(diǎn)擊紅框的地方進(jìn)去填寫(xiě)銀行的信息抑进。這里有一篇帖子寫(xiě)的很詳細(xì)!轉(zhuǎn)載一下睡陪,感謝睡不著的葉子提供的設(shè)置教程http://www.reibang.com/p/d9d742e82188

游戲帖子說(shuō)的很詳細(xì)后面設(shè)置APP內(nèi)購(gòu)項(xiàng)目的東西我這里就不重復(fù)說(shuō)一次了寺渗,有兩個(gè)地方需要再說(shuō)一下,第一:銀行信息必須得填好兰迫!否則沒(méi)辦法進(jìn)行沙盒測(cè)試到真機(jī)上會(huì)一直無(wú)法初始化成功信殊。第二個(gè)是當(dāng)你創(chuàng)建完你的內(nèi)購(gòu)產(chǎn)品時(shí)記得添加進(jìn)你的app里頭,一會(huì)截圖詳細(xì)說(shuō)明一下汁果。我們先在itunes connect 里頭創(chuàng)建你的app鸡号,點(diǎn)擊上面那張圖里頭我的app,進(jìn)入app管理界面

點(diǎn)擊左上角的“+”號(hào)然后點(diǎn)擊新建APP须鼎,紅框圈起來(lái)的部分就是你剛剛在開(kāi)發(fā)者中心注冊(cè)時(shí)你寫(xiě)的App ids,點(diǎn)擊一下就會(huì)出現(xiàn)你剛剛注冊(cè)的id府蔗,把剩下的資料填填就可以創(chuàng)建了

然后就會(huì)進(jìn)到這

涉及到公司問(wèn)題所以資料就打上馬賽克了晋控,然后這里開(kāi)始就設(shè)置你的內(nèi)購(gòu)產(chǎn)品了,根據(jù)上面的發(fā)的帖子鏈接走就可以了姓赤。設(shè)置完成之后呢點(diǎn)擊這里的1.0準(zhǔn)備提交進(jìn)入到app信息設(shè)置的界面赡译,然后往下拉,找到下面這圖的地方

點(diǎn)擊籃筐里頭的加號(hào)不铆,打開(kāi)一個(gè)小界面蝌焚,就是下面這樣的

這里就會(huì)出現(xiàn)你剛剛設(shè)置好的內(nèi)購(gòu)產(chǎn)品,然后勾選誓斥,點(diǎn)擊完成只洒。這步很重要,不然沒(méi)法獲得產(chǎn)品信息劳坑,設(shè)置完后點(diǎn)左上角存儲(chǔ)毕谴,產(chǎn)品的信息就算完成了

然后這些界面先別關(guān),還有需要用到的信息距芬。接著我們打開(kāi)Unity涝开,打開(kāi)我們的工程,點(diǎn)擊windows-->Services,就出現(xiàn)下面的菜單往下拉一點(diǎn)就可以看到In-App purchasing

然后我們把他從off的狀態(tài)點(diǎn)擊變成on的狀態(tài)框仔,導(dǎo)入平臺(tái)所需的文件

點(diǎn)擊紅色框的按鈕舀武,這里我已經(jīng)導(dǎo)入了,所以是Update离斩,沒(méi)導(dǎo)入是Import银舱,點(diǎn)擊之后稍等片刻瘪匿,等他導(dǎo)入完成就好了。然后我們看到官方文檔教你如何初始化

usingUnityEngine;usingSystem.Collections;usingUnityEngine.Purchasing;publicclassPurchaseManager:MonoBehaviour, IStoreListener{publicBuyManager buyManager;privateIStoreController controller;voidStart(){? ? ? ? varmodule= StandardPurchasingModule.Instance();? ? ? ? ConfigurationBuilder builder = ConfigurationBuilder.Instance(module);? ? ? ? builder.AddProduct("你設(shè)置的產(chǎn)品ID", ProductType.NonConsumable);? ? ? ? UnityPurchasing.Initialize(this, builder);? ? }/// /// Called when Unity IAP is ready to make purchases./// publicvoidOnInitialized(IStoreController controller, IExtensionProvider extensions){this.controller = controller;? ? }/// /// Called when Unity IAP encounters an unrecoverable initialization error.////// Note that this will not be called if Internet is unavailable; Unity IAP/// will attempt initialization until it becomes available./// publicvoidOnInitializeFailed(InitializationFailureReason error){? ? }/// /// Called when a purchase completes.////// May be called at any time after OnInitialized()./// publicPurchaseProcessingResultProcessPurchase(PurchaseEventArgs e){returnPurchaseProcessingResult.Complete;? ? }/// /// Called when a purchase fails./// publicvoidOnPurchaseFailed(Product item, PurchaseFailureReason r){? ? }}

這一段是我自己的加了一點(diǎn)東西進(jìn)去的代碼纵朋,其實(shí)都是文檔提供的柿顶,稍作了修改,注意“你設(shè)置的產(chǎn)品ID”指的是在Itunes connect里頭你設(shè)置內(nèi)購(gòu)產(chǎn)品時(shí)的產(chǎn)品ID,就是這個(gè)

拷貝到代碼里頭去操软,然后我們回到游戲場(chǎng)景中嘁锯,去到你要進(jìn)行內(nèi)購(gòu)那個(gè)游戲界面,添加一個(gè)內(nèi)購(gòu)按鈕聂薪,點(diǎn)擊Windows-->unity IAP -->Create IAP Button就會(huì)在場(chǎng)景中出現(xiàn)一個(gè)按鈕家乘,點(diǎn)擊按鈕查看下Inspector可以看到這些

我們可以看到這就是普通的UGUI里頭的Button,多了上面這些內(nèi)容藏澳,然后我們點(diǎn)擊IAP Catalog..出現(xiàn)下面這個(gè)界面

進(jìn)到這個(gè)界面我們配置一下里頭需要的信息仁锯,ID還是一樣填我們?cè)趇tunes connect中的ID,如果不一樣我不知道會(huì)怎樣翔悠,我還沒(méi)試過(guò)业崖,我是怕出錯(cuò)誤什么的,所以直接設(shè)成一樣的然后點(diǎn)“x”關(guān)閉窗口蓄愁,回到Inspector双炕,點(diǎn)擊剛剛的IAP Catalog上面的下拉菜單,你就會(huì)發(fā)現(xiàn)你剛剛設(shè)置的ID了撮抓,選中他就可以了妇斤。然后我們繼續(xù)敲代碼

打開(kāi)剛剛我們創(chuàng)建的代碼,繼續(xù)添加一段代碼丹拯,給按鈕作為點(diǎn)擊事件

publicvoidOnPurchaseClicked(stringproductId){? ? ? controller.InitiatePurchase(productId);? }

就是這段站超,所以我們完整的代碼就是醬嬸的

usingUnityEngine;usingSystem.Collections;usingUnityEngine.Purchasing;publicclassPurchaseManager:MonoBehaviour, IStoreListener{publicBuyManager buyManager;privateIStoreController controller;voidStart(){? ? ? ? varmodule= StandardPurchasingModule.Instance();? ? ? ? ConfigurationBuilder builder = ConfigurationBuilder.Instance(module);? ? ? ? builder.AddProduct("com.Minesweeper.Init15", ProductType.NonConsumable);? ? ? ? builder.AddProduct("com.Minesweeper.Init25", ProductType.NonConsumable);? ? ? ? UnityPurchasing.Initialize(this, builder);? ? }/// /// Called when Unity IAP is ready to make purchases./// publicvoidOnInitialized(IStoreController controller, IExtensionProvider extensions){this.controller = controller;? ? }/// /// Called when Unity IAP encounters an unrecoverable initialization error.////// Note that this will not be called if Internet is unavailable; Unity IAP/// will attempt initialization until it becomes available./// publicvoidOnInitializeFailed(InitializationFailureReason error){? ? }/// /// Called when a purchase completes.////// May be called at any time after OnInitialized()./// publicPurchaseProcessingResultProcessPurchase(PurchaseEventArgs e){returnPurchaseProcessingResult.Complete;? ? }/// /// Called when a purchase fails./// publicvoidOnPurchaseFailed(Product item, PurchaseFailureReason r){? ? }publicvoidOnPurchaseClicked(stringproductId){? ? ? ? controller.InitiatePurchase(productId);? ? }}

然后保存回到場(chǎng)景中點(diǎn)擊IAP按鈕,拖動(dòng)擁有這段代碼的GameObject到Button上選擇剛才的方法作為點(diǎn)擊事件乖酬,然后會(huì)有下圖

畫(huà)紅線(xiàn)的地方寫(xiě)上咱們?cè)O(shè)置好的產(chǎn)品ID死相,然后我們可以看到這個(gè)按鈕還附帶了購(gòu)買(mǎi)成功和購(gòu)買(mǎi)失敗的回調(diào)函數(shù),跟添加Button點(diǎn)擊事件一樣剑刑,寫(xiě)好函數(shù)拖進(jìn)去就可以了媳纬。最后一個(gè)地方就是,導(dǎo)包時(shí)施掏,記得將bundle identifier設(shè)置成和你的app id一樣钮惠,上圖

在這里可以看ID

就是我畫(huà)紅框的地方,拷貝到unity里頭七芭,就可以進(jìn)行真機(jī)測(cè)試了素挽。真機(jī)測(cè)試需要注意幾點(diǎn):首先要登出你手機(jī)的app store賬號(hào),然后再進(jìn)入游戲點(diǎn)擊剛剛設(shè)置的IAP按鍵狸驳,就出彈出讓你登錄一個(gè)賬號(hào)進(jìn)行購(gòu)買(mǎi)预明。這時(shí)你只需要登錄剛剛我們?cè)趇tunes connect中設(shè)置好的沙盒測(cè)試賬號(hào)缩赛,然后就會(huì)出現(xiàn)下面這個(gè)畫(huà)面

會(huì)提示說(shuō)環(huán)境是沙盒環(huán)境,然后點(diǎn)擊Buy就可以了撰糠,這時(shí)我們的內(nèi)購(gòu)接入就大功告成了酥馍!第一次寫(xiě)那么長(zhǎng)的文章有點(diǎn)hold不住,如果有什么遺漏的可以留言阅酪,我會(huì)常來(lái)看看旨袒,我會(huì)的地方都會(huì)告訴大家,而且大家也可以看unity的官方文檔术辐,其實(shí)寫(xiě)的很詳細(xì)砚尽,很小部分需要自己琢磨一下,反正我覺(jué)得辉词,unity這個(gè)集成的相當(dāng)好必孤,操作起來(lái)簡(jiǎn)單很多。不用怕繁瑣瑞躺,遇到錯(cuò)誤就各種搜索找解決方法敷搪,最后還是可以弄出來(lái)的!

作者:Kakarottog

鏈接:http://www.reibang.com/p/4045ebf81a1c

來(lái)源:簡(jiǎn)書(shū)

簡(jiǎn)書(shū)著作權(quán)歸作者所有幢哨,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處购啄。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市嘱么,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌顽悼,老刑警劉巖曼振,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蔚龙,居然都是意外死亡冰评,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)木羹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)甲雅,“玉大人,你說(shuō)我怎么就攤上這事坑填∨兹耍” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵脐瑰,是天一觀的道長(zhǎng)妖枚。 經(jīng)常有香客問(wèn)我,道長(zhǎng)苍在,這世上最難降的妖魔是什么绝页? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任荠商,我火速辦了婚禮,結(jié)果婚禮上续誉,老公的妹妹穿的比我還像新娘莱没。我一直安慰自己,他們只是感情好酷鸦,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布饰躲。 她就那樣靜靜地躺著,像睡著了一般井佑。 火紅的嫁衣襯著肌膚如雪属铁。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,165評(píng)論 1 299
  • 那天躬翁,我揣著相機(jī)與錄音焦蘑,去河邊找鬼。 笑死盒发,一個(gè)胖子當(dāng)著我的面吹牛例嘱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播宁舰,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼拼卵,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了蛮艰?” 一聲冷哼從身側(cè)響起腋腮,我...
    開(kāi)封第一講書(shū)人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎壤蚜,沒(méi)想到半個(gè)月后即寡,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡袜刷,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年聪富,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片著蟹。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡墩蔓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出萧豆,到底是詐尸還是另有隱情奸披,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布涮雷,位于F島的核電站源内,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜膜钓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一嗽交、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧颂斜,春花似錦夫壁、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至司蔬,卻和暖如春邑茄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背俊啼。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工肺缕, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人授帕。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓同木,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親跛十。 傳聞我的和親對(duì)象是個(gè)殘疾皇子彤路,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容