Unityに簡単に広告表示:unity-easywebview

Filed under Unity
Tagged as , , , ,

Unityで作ったiOSゲームにバナーを表示させたいとき、UIWebViewを表示できるとほとんどのことは処理出来ます。
ところが、標準機能で用意されていません。

既にあるライブラリ

そこで探してみると、一番有名な感じなのが、Unityの高橋啓治郎さんが作られたunity-webview-integrationです。

次に有名なのが、GREEの坂本一樹さんが作られたunity-webview。

これは前出のunity-webview-integrationを参考に作られたようです(情報ソース)

欲しかったライブラリ

私が欲しかったのは、指定位置に指定URLを表示するだけのもの。
しかも、今回はiOSで動作すればよく、Webの中身は外部リンクが動作すれば満足でした。
そういう用途には既存ライブラリの2つはちょっとヘビーな感じでした。
もちろん「大は小を兼ねる」という考え方も理解できるのですが、Unityのプラグインの構造を勉強するためにも上記ライブラリを参考に作りなおしてみました。

unity-easywebview

で、作ってみたのが、unity-easywebviewです。

ポイントは、二つ以上のUIWebViewを表示でき必要に応じて削除、追加をできるようにしたところです。
あと、位置の設定は普通にleft,top,width,heightの設定でできるようにしたところですね。
同梱しているサンプルを動かした様子はこんな感じです↓
unity-easywebview sample
ADとある二つの枠がUIWebViewで外部のHTMLを表示しています。その間にあるボタンは上側のUIWebViewを一旦破棄して再読み込みします。

インストール方法

インストール方法は他のUnityネイティブプラグインと同様で、上記リポジトリにあるPlugins以下のファイルを、/Assets/Plugins以下にコピーします。
unity-easywebview
上図のようになっていることを確認したら次のようなコードを追加することで表示できます。

1
EasyWebview.RemoveWebRectByName("http://url/to/ad.html", 0, 0, 320, 50, "AD-for-Title");

最後に追加しているのはこのWebViewへの名前で、この名前をキーとして、削除できるようにしています。

1
EasyWebview.RemoveWebRectByName("AD-for-Title");

ということで、Unity4以上でしか動作確認していませんが、MITライセンスですのでご自由にどうぞ。


[AD]

↓高橋啓治郎さんが書かれたUnity入門書。Unity始めるなら必読!

Unity入門 ~高機能ゲームエンジンによるマルチプラットフォーム開発~

著者/訳者:高橋 啓治郎

出版社:ソフトバンククリエイティブ( 2011-10-01 )

定価:¥ 2,916

大型本 ( 332 ページ )

ISBN-10 : 4797365331

ISBN-13 : 9784797365337


↓Gitについての面白そうな書籍

アリスとボブのGit入門レッスン

著者/訳者:川野辺 正博

出版社:秀和システム( 2012-09-18 )

定価:¥ 2,376

単行本 ( 288 ページ )

ISBN-10 : 4798035009

ISBN-13 : 9784798035000


6 Comments

  1. yousuke haruguchi より:

    こんにちは。最近unityをいじっているものです。
    unity-easywebviewを試してみたところ簡単に表示しました。スゴい便利なライブラリです。
    こちらのライブラリで、リソースにhtmlファイルを置いてそれを参照することはできるのでしょうか?
    宜しくお願いします。

  2. yamada より:

    >yousuke haruguchi さん
    動作したとのご報告ありがとうございます!
    リソース内のhtmlファイルも表示できるはずです。
    が、その持たせ方については、別途ブログを書きますね。

  3. アプリ内のHTMLを表示できるようにした新しいバージョンを公開しました!

    http://labs.torques.jp/2013/05/04/3244/
    Unityに簡単に広告表示:unity-easywebview « TORQUES LABS

  4. secimo より:

    こんにちは。
    いくつかのページを移動させる中で、unity-easywebviewを、活用しようと考えていますが、unity-easywebviewページ内に
    function OnGUI() 指示でApplication.LoadLevel(“Hogepage”)
    を設置し、他のページに移動すると「webview」の表示部分が残ってしまいます。
    回避する方法はございますでしょうか?
    よろしくお願いいたします。

  5. yamada より:

    >secimoさん
    static function RemoveWebRectByName(viewname : String);
    というメソッドを用意していますので、それを呼び出すことで、削除できるかと思いますが、いかがでしょうか?

  6. Secimo より:

    function OnGUI() 内にEasyWebview.RemoveWebRectByName(“Hogename”);
    の設置で解決できました。
    ありがとうございます。

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)