【【【本教程針對(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)并注明出處购啄。