在Unity游戲加入廣告大致有以下幾種方式: 導入Android Jar包 導出游戲為Android項目(在Build時選中Google Android Project,這種方法可以參考將Unity3D游戲移植到Android平臺上) 使用Unity的廣告插件(詳見Asset Store,如Goog ...
在Unity游戲加入廣告大致有以下幾種方式:
- 導入Android Jar包
- 導出游戲為Android項目(在Build時選中Google Android Project,這種方法可以參考將Unity3D游戲移植到Android平臺上)
- 使用Unity的廣告插件(詳見Asset Store,如Google Mobile Ads SDK)
其中以第一種最常見,我用的也是這一種。
第一種方式的整個流程大致是這樣:
- 新建一個Android項目,加入調用某種廣告SDK的Java代碼。
- 導出項目到Jar包,放到Unity項目中。
- 在Unity中調用Java寫好的方法。
這個過程可以參考這兩篇文章:unity3d插入android有米廣告和Unity 3D 關於給APK包加廣告的流程。
如果你按照步驟成功加入了廣告,可以跳過下麵的部分。我在這個過程中遇到了幾個問題。
第一個是 CommandInvokationFailure: Failed to re-package resources。
出現這個問題的原因是Android的資源沒有整合好。首先檢查下文件層次結構:
Assetes/
--------Plugins/
----------------Android/
------------------------AndroidManifest.xml
------------------------SDK文件
------------------------導出的Jar包
如果仍然有問題,看看是不是我遇到的 AppCompat 相關的問題。我對Android瞭解的不多,解決的方法也不見得高明:
- 在建立Android項目時,不要創建主題。
- 最低版本選擇4.0以上。
好了,問題解決了。
在Java項目裡面,根據SDK文檔,一般都是寫好了一些方法,可以讓你方便地創建廣告條、插屏廣告之類的。
在Unity中選擇一個GameObject,使用下麵代碼得到Java類的對象:
jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
然後用 AndroidJavaObject 的 Call 方法即可,如:
jo.Call("showSpot");
最後是關於游戲的圖標和名字。
如此加入廣告代碼之後,Unity項目的圖標會被Android項目中的覆蓋。所以,最方便的是在創建Android項目時就確定Icon。
而游戲的名字還是Unity項目中的。
以上都是我在嘗試向Unity中加入廣告時,參考他人博客和自己摸索得出的,如有錯誤請指出。請以廣告SDK文檔為準。