読者です 読者をやめる 読者になる 読者になる

いんでぃーづ

個人でゲーム開発してる上で吸収したモノたち紹介。UnityからGIMPまでなんでも。デザインとかゲーム論まで語っちゃうよ的なアレ。

MENU
{スポンサーリンク}

記事一覧・プログラム、スクリプト

記事一覧 Unity C#

Unityプログラムtips

Invoke , Coroutine , SendMessage で文字列を使わない方法 - いんでぃーづ

Unity : コライダのOnCollisionEnter, OnTriggerEnter が呼ばれない、反応しない - いんでぃーづ

Unity : レイヤーマスク値のつくりかた - いんでぃーづ

Unity : C#のファイルが大きくなりすぎるのを防ぐには - いんでぃーづ

UnityでJSONを扱う [C#] - いんでぃーづ

Unity : MonoBehaviour各関数の呼び出しタイミング - いんでぃーづ

Unity : ロード済みシーンの切り替えを一定時間待つ - いんでぃーづ

UnityのHTTP通信クラスがいろいろできて便利 - いんでぃーづ

C#のEnumのtips - いんでぃーづ

デバッグ

デバッグに便利な UnityEngine.Assertions - いんでぃーづ

Unity : 意図的にWarningを残したい - いんでぃーづ

Unity : ログ機能を便利に使う - いんでぃーづ

Unity Editor

Unityのインスペクターをハックしよう:初級編 - いんでぃーづ

Unity : Property Drawer の OnGUIの書き方 - いんでぃーづ

Unity : PropertyDrawerで変更した変数の保存 - いんでぃーづ

AndroidプラグインからUnityの関数を呼び出す - UnitySendMessage

Android Unity Tips C#

以前の記事でAndroidプラグインの関数を呼び出す方法を書きました。

逆にAndroidからUnityのメソッドを呼び出したい場合、もう一手間必要となります。

続きを読む

Unityで使用できる3Dモデルファイル

Tips Unity

Unityではいろいろな形式の3Dモデルファイルに対応していて、そのほとんどが ドラッグ&ドロップ のみでインポートできます。

  • ソフトウェアに依存するファイル形式
    • .mb .ma
    • .blend
    • .3ds .max
    • .c4d
  • ソフトウェアに依存しないファイル形式
    • .fbx
    • .obj
  • 番外:MMD
続きを読む

記事一覧・Unity使い方

記事一覧

ライトマップ

これやっとけばライトマップは焼ける!Unity設定7項目 - いんでぃーづ

Unity5の Lighting ウインドウの見かた ~基本編~ - いんでぃーづ

Unity5の Lighting ウインドウの見かた ~GI編~ - いんでぃーづ

uGUI

uGUIのサイズを変えたときに赤いバッテンが出る理由 : Unity - いんでぃーづ

uGUIのレイアウトを理解する 〜 Rect Transform編(1) - いんでぃーづ

uGUIのレイアウトを理解する 〜 Rect Transform編(2) - いんでぃーづ

uGUIのレイアウトを理解する 〜 Rect Transform編(3) - いんでぃーづ

uGUIのレイアウトを理解する 〜 多種解像度対応 : Canvas Scaler - いんでぃーづ

Unity : uGUIのImageなどのタップイベントを検出 - いんでぃーづ

コンポーネント

Unity : Clothコンポーネントでユニティーちゃんのスカートをひらひらさせる - いんでぃーづ

Unity : Image と RawImage は何が違うのか - いんでぃーづ

NavMeshObstacleを避けて移動してくれない場合 - いんでぃーづ

Unity : レイヤーマスク値のつくりかた - いんでぃーづ

Unityで使用できる3Dモデルファイル - いんでぃーづ

アニメーション

Unity上で3Dアニメーションを編集する - Animationウインドウ - いんでぃーづ

Unity : アニメーションとGameObjectの位置を同期させたい時に気をつけること - いんでぃーづ

Unity : アセットのAnimationClipを編集する - いんでぃーづ

Unity : AnimationClipに合わせて処理をしたいなら - いんでぃーづ

各種ウインドウ

Unity : 3Dシーン内のCanvasが邪魔 - いんでぃーづ

Unity : 不要なアセットを削除して、プロジェクトをスリムに保とう - いんでぃーづ

Unity : インスペクタで独自UIを使う - PropertyDrawer の下準備 - いんでぃーづ

Unity : Property Drawer の OnGUIの書き方 - いんでぃーづ

Unity : PropertyDrawerで変更した変数の保存 - いんでぃーづ

Unity : プロジェクトに埋もれたアセットを一瞬で探し出す方法 - いんでぃーづ

シェーダー

Unity : マテリアル、メッシュ、シェーダの関係まとめ - いんでぃーづ

Unity : 二種類の StandardShader の違い - いんでぃーづ

Unity : ゲーム画面にAdmobを表示する一番かんたんな方法

iOS Tips Unity Android

Admob表示させるだけなら、アセットなんて買わなくたってできます

なにせ本元GoogleさんからUnity用のプラグインが出ているのである。

github.com

なお、すでにAdmobのアカウントは取得済みで、広告も作成済みとします。

Unityプラグインを導入してみる

まずは上記サイトから、GoogleMobileAds.unitypackage をダウンロードしましょう。

Unityを開いた状態で、ダウンロードしたファイルをダブルクリックすると、自動でプロジェクトへのインポートが行われます。

ソースの先頭に以下の一行を加えたら、準備完了です。

using GoogleMobileAds.Api;

バナー広告を表示する

バナー広告というのは画面に常に出ているタイプの小さな広告です。
以下のようなコードで表示できます。

BannerView ShowBannerView = new BannerView("AdmobのユニットID", AdSize.Banner, AdPosition.Bottom);

AdRequest.Builder builder = new AdRequest.Builder();
AdRequest request = builder.Build();

// 表示する
ShowBannerView.LoadAd(request);

インタースティシャル広告を表示する

インタースティシャル広告とは、全画面に表示される 収益性の高い広告 です。

こちらは表示させる前に初期化が必要です。

// 広告を初期化する
InterstitialAd interstitial = new InterstitialAd(Globals.ADMOB_INTERSTITIAL_UNIT_ID); 
AdRequest.Builder builder = new AdRequest.Builder();
AdRequest request = builder.Build();

// 広告が表示可能になったときのコールバック
interstitial.OnAdLoaded += (handler, EventArgs) =>
        {
              // 広告を表示する
              interstitial.Show();
        };

// 広告が閉じられたときのコールバック
interstitial.OnAdClosed += (handler, EventArgs) =>
        {
              // 後処理
              interstitial.Destroy();
        };

// 広告がエラーになったときのコールバック
interstitial.OnAdFailedToLoad += (handler, EventArgs) =>
        {
              // エラー処理
              Debug.Log("err!");
              interstitial.Destroy();
        };

// インタースティシャル広告のロード
interstitial.LoadAd(request);

テストデバイスを追加する

バイスごとに固有のIDを使うと、そのデバイスのみ、収益が発生しないテスト用の広告を表示させることができます。

// テストデバイスのリスト
string[] TestDeviceList = new string[] {
       "xxxxxxxxxxxxxx", "yyyyyyyyyyyyy"
};

foreach (var deviceId in TestDeviceList)
{
       builder.AddTestDevice(deviceId);
}
AdRequest request = builder.Build();

バイスIDは、デバイス上で本番用の広告を表示させたときに、ログに出力されます。
Androidならadb, iOSならXcode上で確認することができます。

iOSビルド時に必要なこと

AppStoreにアップロードするとき、Info.plist に以下のプロパティを含める必要があります。

NSCalendarsUsageDescription - Advertisement would like to create a calendar event.
NSBluetoothPeripheralUsageDescription - Advertisement would like to use bluetooth.
NSCameraUsageDescription - Advertisement would like to use Camera.

これを入れないとアップロードに失敗するので注意。
こちらのサイトを参考にしました。

最近のUnityだとPlayer Settingsから設定できるみたいです。

f:id:sugar_affordance:20170125200833p:plain

本家サイト

Game Developers: Ads Best Practices  |  AdMob by Google  |  Firebase

Amazon.co.jpアソシエイト