Admob特化版 Android
http://garlicg.blog92.fc2.com/blog-entry-31.htmlこのソースは複数なのでAdmobだけに限定する。
このサイトはせっかく綺麗にまとまってるが、インポート文がなぜかないので修正した。
AndroidのOSバージョン
2.3.1が無難
- Ads.java
package com.shinriyo.zombeat; import com.google.ads.*; import android.app.Activity; import android.view.LayoutInflater; import com.google.ads.AdRequest.ErrorCode; import android.widget.LinearLayout; /** * 広告クラス */ public class Ads { private Activity mActivity; public Ads(Activity act) { mActivity = act; } /** * Admobを設定します。 */ public void setAdmob(){ // xmlからAdmobViewを生成する LayoutInflater inflater = mActivity.getLayoutInflater(); AdView av = (AdView)inflater.inflate(R.layout.ads_admob, null); // AdmobはAdListenerをセットできる av.setAdListener(new AdListener() { @Override public void onReceiveAd(Ad arg0) { } @Override public void onPresentScreen(Ad arg0) { } @Override public void onLeaveApplication(Ad arg0) { } @Override //public void onFailedToReceiveAd(Ad ad, AdRequest.ErrorCode error) { public void onFailedToReceiveAd(Ad arg0, ErrorCode arg1) { // 受信に失敗した場合はローカル広告を表示する //setMyAds(); } @Override public void onDismissScreen(Ad arg0) { } }); // 広告レイアウトにAdmobをセットする ((LinearLayout)mActivity.findViewById(R.id.ads_parent)).addView(av); av.loadAd(new AdRequest()); } }
package com.shinriyo.zombeat;は独自に直してね。メインのアクティビティと同じパッケージにすると都合がいい。
Rクラスがインポートなしでやってくれるし。
- HogeActivity.java
package com.shinriyo.zombeat; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; import com.unity3d.player.UnityPlayerActivity; public class HogeActivity extends UnityPlayerActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //広告用のView追加 View view = this.getLayoutInflater().inflate(R.layout.lay_adtest, null); addContentView(view,new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT)); // 直接指定 new Ads(this).setAdmob(); } }
なぜか「lay_adtest」とすべき所が「lay_ads」になってた。
XMLを修正してもいいかも?
今度まとめよう。
プレハブを使う Unity
- こんなやり方もあったのか
Instantiate(Resources.Load("プレハブ名"));
C#が賢い件 Unity
if (a = b) { // Do something }