Skip to content

Get Started

moe-ichihara edited this page May 23, 2019 · 13 revisions

1. Unity による Plugin の設定

1.1 Unity によるプロジェクトの作成

1.1.1 新規にプロジェクトを作成します。

1.1.2 必須項目を入力します。この例では以下のように入力します。

項目 入力値
Project name MaioUnitySample
3D / 2D 2D

1.1.3 [Create]をクリックし、 プロジェクトを作成します。

1.2 Maio Plugin をプロジェクトに追加する

1.2.1 プロジェクトを開いた位状態で maio.unitypackage を開きます。

1.2.2 全てにチェックが入っていることを確認し、[Import]をクリックします。

play-services-basement-9.2.1.aar を更新する場合は、play-services-ads-identifier もお使いください。

1.2.3 Plugins/iOS に Maio.framework、Plugins/Android に maio.aar が含まれていることを確認してください。

各SDKが最新版でない場合、以下より最新版を取得し、上書きしてください。

2. 広告の表示方法

2.1 コードの実装例

  • 初期化を行うコードと、視聴完了時のイベントを登録します。
// Sample01.cs

using UnityEngine;
using System.Collections;

public class Sample01 : MonoBehaviour
{
    #if UNITY_IOS
    public const string MaioMediaId = "DemoPublisherMedia";
    public const string MaioZoneId = "DemoPublisherZone";
    #elif UNITY_ANDROID
    public const string MaioMediaId = "DemoPublisherMediaForAndroid";
    public const string MaioZoneId = "DemoPublisherZoneForAndroid";
    #else
    public const string MaioMediaId = "DemoPublisherMedia";
    public const string MaioZoneId = "DemoPublisherZone";
    #endif

    // Use this for initialization
    void Start ()
    {
        // イベントの登録を行います。
	// これによって、Plugin からのイベント通知を取得することが可能になります。
	Maio.OnFinishedAd += HandleOnFinishedAd;

	// 広告の配信テスト設定を行います。アプリをリリースする際にはコメントアウトしてください。
	Maio.SetAdTestMode (true);
	// maio SDKの初期化を開始します。
	// MaioMediaId は、Maio管理画面より割り当てられたメディアIDに差し替えてください。
	Maio.Start (MaioMediaId);

        // ... 略 ...

    }

    // ... 略 ...

}
  • 再生ボタンの実装と、動画再生後のリワードを付与する処理を宣言します。
    // ... 略 ...

    // エディタ上のこのメソッドに紐付けられたボタンがタップされた際に呼び出されます。
    public void OnShowAd()
    {
        if (Maio.CanShow(MaioZoneId))
        {
	    Maio.Show(MaioZoneId);
	}
    }

    // 広告表示完了時に呼び出すイベントを設定します。
    // これによって、Plugin からのイベント通知を取得することが可能になります。
    // 本メソッドは、ユーザが動画を見終わった直後に呼び出されます。  
    // ”skipped”が”false”であれば最後まで動画が再生された事を示しますので、  
    // その際にユーザに報酬を付与する事が可能になります。  
    public void HandleOnFinishedAd(string zoneId,
        int playtime,
        bool skipped,
        string rewardParam)
    {
    }

    // ... 略 ...
  • シーンが遷移する際に紐付けられたイベントを解放します。
    // ... 略 ...

    // このゲームオブジェクトが破壊される際に呼び出されます。
    public void OnDestroy()
    {
        // ゲームオブジェクトが破壊される際に、イベントを解放します。
	Maio.OnFinishedAd -= HandleOnFinishedAd;
    }

    // ... 略 ...

3. 各種イベントを受け取る

イベントを設定することで、 Plugin からのイベント通知を取得することが可能になります。 イベントの設定方法に関しては、「2.1 コードの実装例」をご参照ください。

補足

Other Linker Flagsの設定

Other Linker Flagsに-ObjCを追加します。

  1. UnityからXcodeプロジェクトをBuildします。
  2. 生成したXcodeプロジェクトを開き、[ProjectSettings] > [TARGETS:Unity-iPhone] > [Build Settings] > [Other Linker Flags]の項目に-ObjCを追加します。

Linked Framewoks and Librariesの設定(iOS SDK 1.3.0 以降)

iOS SDK 1.3.0以降、zlibが必要となります。

Linked Framewoks and Librariesにlibz.tbdを追加します。

  1. UnityからXcodeプロジェクトをBuildします。
  2. 生成したXcodeプロジェクトを開き、[ProjectSettings] > [TARGETS:Unity-iPhone] > [General] > [Linked Framewoks and Libraries]の項目で「+」をクリックし、libzで検索します。
  3. libz.tbd を選択し、Addします。

イベントハンドラからUnity APIを利用する際の注意点

maio Untiy Pluginのイベントは、Unityのメインスレッドで実行されている保証がありません。 UIの操作など、メインスレッドを要求する動作を行う場合、明示的にメインスレッドにディスパッチする事をお勧めします。

サンプルコードでは、メインスレッドを要求する処理をQueue<Action>に積みMonoBehaviour#Updateにて取り出すことで実現しています。