2016年12月24日

iOS Active View | ActiveView の実装

Version 1.1.0 絶賛公開中!!
すくすく教育シリーズ第一弾

さて、今回は実装編なんですが、結論から言うと、かなり簡単に実装できました。
正直、とってもオススメのアセットだと思います。これで $5 なら、ずいぶん割安な感じです。
念の為、アセットストアへは、ここからどうぞ。

ダウンロードの際に、サンプルプロジェクトも付いてくるんで、それを参考にして貰えば問題ないと思いますが、一つだけ詰まった所の紹介です。

例によって、Xcode でビルドした時に、エラー終了していたんですが、README ファイルに、こんな感じで
Required link framework in Xcode  
-Social.framework
-Accounts.framework
って書いてあったんですよね。
ReamMe2.png
でも、どこで設定するのか、すっかり忘れてしまっていました...
正解は、インポートした libActivityView.a ファイルをクリックして、
ProjectView.png
Inspector ビューで見るだけでした。
InspectorView_LibActivityView.png
ここで、必要な Framework にチェックを入れて...
InspectorView_LibActivityView2.png
こんな感じ!
これで、無事 Xcode でもビルドできました!!

実装に関しては、スクリーンショットの保存からシェアまで、ほぼサンプルのままです。
こんな感じで、スクリーンショットを撮って、
TakeScreenShot.png

この1行コードで、添付予定のスクリーンショット付きで、アクティビティービューを呼び出します。
ActivityViewCall.png
で、これだけで、実装ができちゃいました ♪♪
ActivityView.jpg
で、試しに Twitter を選んでみると....
SNSShare.jpg
こんな感じで、スクリーンショットも込みで、Tweete の準備ができてますね!
いやぁ〜。ホントにオススメです。このアセット!ありがとう!!

初めてみました。よかったらクリックお願いしますね ♪
        にほんブログ村 ゲームブログ×PlayNCBlogへ 
posted by やまけん at 12:34| Comment(0) | Unity | このブログの読者になる | 更新情報をチェックする

2016年12月21日

iOS Active View | SNSへのシェアリング

Version 1.1.0 絶賛公開中!!
すくすく教育シリーズ第一弾

今回は、SNSへのシェアリングに関して!
以前のバージョンでも、苦労して Facebook へのシェア機能を入れてたんですが、他のアプリを見てると、もうちょっとスマートな出し方ができるみたいなんですよね。

どうやら、アクテビティビューと言うみたいなんですが....
ちなみに、大ヒットした、"Crossy Road" では、こんな感じです。
CrossyRoad.jpg

ここで、スクリーンショットをシェアできるアプリの一覧を表示して、ユーザー自ら選んでシェアする形になるんですが、こっちの方が良さそうな感じしますね。
なんで、これに変えていきますね。

さて、これを実装するには、またネイティブコードなんですが、どうも面倒なんですよね〜。やって出来ない事はないんですが、限られた時間の使い方を間違ってる様な気もするので、ここは、Unity のアッセトストアを利用してみたいと思います。

...で、色々見てみた結果、値段も安い、このアセットを試してみる事に。
ActivityView.png
ActivityView っていう、そのまんまの名前ですねw
サンプルのスクリーンショットを見てみると、メニューの感じだと、ロシアの方でしょうかね?

さて、初めての有料アセット購入ですw
では、次回から実装を進めてみますね。

初めてみました。よかったらクリックお願いしますね ♪
        にほんブログ村 ゲームブログ×PlayNCBlogへ 
posted by やまけん at 22:54| Comment(0) | Unity | このブログの読者になる | 更新情報をチェックする

2016年12月20日

MonoDevelop | 画面分割

Version 1.1.0 絶賛公開中!!
すくすく教育シリーズ第一弾

今回は、Unity の標準エディター、MonoDevelop の小ネタです。
Unity5 の MonoDelvelop から、エディット画面の分割ができるようになったと聞いてたんですが、全然試してなかったんですよね。

で、ちょっと調べてみましたけど、とっても簡単でした。
タブの上で、右クリック!
で、下の方のメニューに目を移すと、"Move to Next Notebook" っていうアイテムが!
SplitScreen.png
なんか、名前が分かりにくいんですが、それを選んでみると....
SplitScreen2.png
見事に分割されましたね!!
さらにタブをドラッグして、別のノートに移せます!
FileDrag.png

使ってるモニターによっては、ホントに便利な機能ですね!

初めてみました。よかったらクリックお願いしますね ♪
        にほんブログ村 ゲームブログ×PlayNCBlogへ 
posted by やまけん at 08:48| Comment(0) | Unity | このブログの読者になる | 更新情報をチェックする

2016年12月18日

iOS Build | iOS ビルドの検証時間を短縮する

Version 1.1.0 絶賛公開中!!
すくすく教育シリーズ第一弾

今回はちょっと小ネタです。結構みんな知ってるんじゃないかとも思いますけど、一応。

色々機能が入ってくると、実際にデバイスビルドを作って、Xcode で実行して確認しないといけないケースも増えてくると思います。
で、Unity でビルドを作って、Xcode に読み込んで、さらにコンパイルして、ってなると、結構時間がかかってきます。
それを若干短縮できる方法を。

ここで確認したいのが、"Player Settings..." の "Other Settings"。

PlayerSettings.png

ここに、"Archtecture" っていう項目があるんですが、これ、"Universal" になってます?
もしなってると、2種類のアーキテクャをビルドしてるはずなんで、Unity 側からも、Xcode でも、ほぼ倍に近いコードを処理してる事になるんで、テストの時は、"ARMv7" か "ARM64"、どちらかだけの設定にした方がいいみたいです。

Setting_2.png

今回は、ホントにちょっとした、みんな知ってるだろう小ネタでした。

初めてみました。よかったらクリックお願いしますね ♪
        にほんブログ村 ゲームブログ×PlayNCBlogへ 
posted by やまけん at 08:43| Comment(0) | Unity | このブログの読者になる | 更新情報をチェックする

2016年12月14日

AdMob | Unity Ad | 動画リワード広告の実装

Version 1.1.0 絶賛公開中!!
すくすく教育シリーズ第一弾

では、デバイス側の実装です。

基本的には、ADバナーを表示した、BannerView クラスとほぼ同じ様な実装なんですが、動画リワード広告向けには、RewardBasedVideoAd ていうクラスがあるんで、これを利用していきます。

ま、ちょっと単純ミスをしてて、何度かやり直したんですが、こんな感じの実装で、結構簡単に(単純ミスを除いて)出る様になりました。

using UnityEngine;
using System.Collections;
using GoogleMobileAds.Api;

publicclassYGAdMobRewardAdManager:MonoBehaviour
{
    //IOSAdUnit ID
    publicstringIosUnitId;
    
    //AndroidAdUnit ID
    publicstringAndroidUnitId;
    
    //RewardVideoAd.
    privateRewardBasedVideoAdRewardAd=null;

    protectedstringAdUnitID=null;

    // Start
    voidStart()
    {
        requestRewardAd();
    }
    
    // OnDestroy
    voidOnDestroy()
    {
    }

    publicboolIsActive{privateset;get;}
    
    //requestRewardMovie Ad。
    privatevoidrequestRewardAd()
    {
#ifUNITY_ANDROID
        AdUnitID = AndroidUnitId;
#elifUNITY_IPHONE
        AdUnitID=IosUnitId;
#else
        AdUnitID = "unexpected_platform";
#endif

        this.RewardAd=RewardBasedVideoAd.Instance;

        RewardAd.OnAdLoaded+=OnAdLoaded;
        RewardAd.OnAdFailedToLoad+=OnAdLoadFailed;
        RewardAd.OnAdStarted+=OnAdStarted;
        RewardAd.OnAdClosed+=OnAdClosed;
        RewardAd.OnAdRewarded+=OnAdRewarded;
        RewardAd.OnAdLeavingApplication+=OnAdLeavingApp;
    }

    publicvoidLoadStart()
    {
        AdRequestrequest=newAdRequest.Builder().Build();
        this.RewardAd.LoadAd(request,AdUnitID);

        IsActive=true;

#ifUNITY_EDITOR
        OnAdRewarded(null,null);
        OnAdClosed(null,null);
#endif
    }

    protectedvoidOnAdLoaded(object_sender, System.EventArgs_args)
    {
        Debug.Log("AdLoaded");
        //Justincase.
        if(RewardAd.IsLoaded()==true)
            RewardAd.Show();
    }

    protectedvoidOnAdLoadFailed(object_sender,AdFailedToLoadEventArgs_args)
    {
        Debug.Log("AdLoadFailed");
        IsActive=true;
    }

    protectedvoidOnAdStarted(object_sender, System.EventArgs_args)
    {
        Debug.Log("AdStarted");
        IsActive=true;
    }

    protectedvoidOnAdClosed(object_sender, System.EventArgs_args)
    {
        Debug.Log("AdClosed");
        IsActive=false;
    }

    protectedvoidOnAdRewarded(object_sender,Reward_args)
    {
        Debug.Log("AdRewarded!!!");

        if(_args !=null)
        {
            Debug.Log("AdRewardedRewardType["+_args.Type+"]");
            Debug.Log("AdRewardedRewardAmount["+_args.Amount.ToString()+"]");
        }

        DailyBonusData.Instance.addSpecialBonusNotice("AD_REWARD_1");

        IsActive=true;
    }

    protectedvoidOnAdLeavingApp(object_sender, System.EventArgs_args)
    {
        Debug.Log("AdLeavingApplication");
        IsActive=false;
    }
}

特に、ポイントも何もないんですが、各イベントのハンドラーを、しっかり設定しましょうね。ってくらいですかね。
LoadStart() で、動画の読み込みを開始して、OnAdRewarded() が発生したら、リワードを受け渡し。
途中で何か、問題が発生したら、動画リワード広告を非アクティブ状態にして、GameManager 側で適切に処理。

GameManager 側では、一応、ロード開始時に、iOS ロードィングスピナーを表示して、バナー広告が表示されてれば、それを消す処理が入ってます。

これで、デバイスで実行すると、まずは、自分のコードで動画リワード広告の表示を促して...
RewardAd_Select.jpg

"WATCH" を選択されたら、LoadStart() をコール。すると...
Reward_Ad_Started.jpg
動画広告が表示され始めました!ロード時間は、結構かかってる印象ですね。
で、これが終わると、右上に閉じるボタンが付いた静止画面になります。
Reward_Ad_Done.jpg
で、"x" を押すと、OnAdClosed() イベントが発生しておしまいです。

意外と簡単でした!!

さて、一応単純ミスについて。
ホントに単純で、渡す広告ユニットID を間違ってたんですよね。でも、Google 様の AdMob クラスで、きっちりエラーメッセージを出してくれるので、何か問題があったら、コンソール出力を確認しましょうね。
出力されてたエラーは、こんなんでした。

"Invalid Request. Cannot determine request type. Is your ad unit id correct?"


では、また何かネタができたら!!

初めてみました。よかったらクリックお願いしますね ♪
        にほんブログ村 ゲームブログ×PlayNCBlogへ 
posted by やまけん at 07:41| Comment(0) | Unity | このブログの読者になる | 更新情報をチェックする

2016年12月11日

AdMob | Unity Ad | テストデバイスの設定

Version 1.1.0 絶賛公開中!!
すくすく教育シリーズ第一弾
では、Unity Ad を利用した動画リワード広告を実装していきたいんですが、実際にテストを始める前に、一つ気になる事が。
AdMobのバナー広告でも、自分でクリックすると、アカウントが凍結されるかも?なんて事が書いてあったんで、自分で広告を見て水増し、なんてすると怒られそうなので、そうなる前にテストデバイスを設定しておきましょうかね。

という事で、どこかで見たような気がするんだけど....あっ、ありました。
Unity Ads のアカウントの方ですね。
UnityAdsHome.png
ここの "Test devices" タブですかね?
UnityAdsTestDevice.png
ここなんですが、さて、デバイスの advertising ID を Get しないとダメみたいですねぇ。
ちょっと調べてみたんですが、やっぱり、デバイスでビルドを走らせて調べないとダメみたいです。
今のデバイスは、iOS なんで、
    UnityEngine.iOS.Device.advertisingIdentifier
を使って、Advertisement ID を取得。return は 文字列です。で、それを画面に表示。
で、適当に名前をつけて、登録してみました。

これで、自作自演のクリックを疑われなくなるのかなぁ〜?

初めてみました。よかったらクリックお願いしますね ♪
        にほんブログ村 ゲームブログ×PlayNCBlogへ 
posted by やまけん at 13:40| Comment(0) | Unity | このブログの読者になる | 更新情報をチェックする

2016年12月07日

AdMob | 動画リワード広告 | Unity 広告ネットワーク(2)

Version 1.1.0 絶賛公開中!!
すくすく教育シリーズ第一弾
前回、外側の設定を済ませて、今回ようやくゲーム本体の方です!
では、まずここから、仲介広告ネットワークのアダプターのダウンロードですね。

アダプターを Plugins/iOS フォルダの中に放り込んで、これだけでいけると思い込んでたんですが、Xcode でエラーが出ちゃいましたね。
なんだろ?これかな?
もうおなじみの、このページ の Unity Ads の所。SDK は、まだ入れてなかったかな?ちょっと、今からSDKだけダウンロードして入れてみましょう。
ここに飛ばされたんで、ここからダウンロード。話題のギフハブですね ♪

"Clone or download" -> "Download ZIP" で、コードをダウンロード!
ってコレ、思いっきりネイティブコードの塊ですねぇ。ちょっと想定外。
う〜ん。どうするんだろう?って訳で、実装ガイドは、ここにあるみたいです。
で、ここですね。この実装ガイドにある、この ”Download the latest release binaries from GitHub, specifically the UnityAds.framework.zip
これです!
そう。"UnityAds.framework.zip" !!
こんなの、ないもん。フレームワークなかったら、リンクでエラー出るわ、そりゃ!

という訳で、ダウンロードした、最新版の UnityAds.framework を、Assets/plugins/iOS にコピーして、新規のビルドを作ると....
ちゃんと、エラー無しで、デバイスで実行できました!!

さ、これで回りの環境作りは終わりかな?
ホントにそうだといいんですが....
では、次回からは、動画リワード広告の C# での実装をやっていきますね ♪

初めてみました。よかったらクリックお願いしますね ♪
        にほんブログ村 ゲームブログ×PlayNCBlogへ 
posted by やまけん at 21:36| Comment(0) | Unity | このブログの読者になる | 更新情報をチェックする

2016年12月06日

AdMob | 動画リワード広告 | Unity 広告ネットワーク

Version 1.1.0 絶賛公開中!!
すくすく教育シリーズ第一弾

では続きですね。動画リワード広告に、Unity Ads ネットワークを使っていこう!っていう所からです。
で、それに向けて色々リサーチしてたんですが、なんと!全然気にかけてなかったんですが、"Unity Services" なんていうサービスがあるじゃないですか!?いつできたんだ?こんなの!
広告の対応、データ分析の対応、しかも IAP のサポートまで!?
なんか、今までの苦労はなんだったのかした?じゃ、もう Prime31 も買わなくていいかな?ちょっと、広告対応が終わったら、こっちも見ていきたいと思いますね。

で、Unity Ads ですが、ここからかな?
まずはログイン。いつもの、Unity ログインアカウントで統一されてるみたいです。
UnityLogin.png
で、ログイン後のダッシュボードはこんな感じ。
UnityDeveloperCloudDashboard.png
なんか、色々あるんだなぁ〜...
見てみた結果、"Create New Project" をしないと何も進まないっぽいので、それから攻めてみたいと思います。
CreateProject.png
で、プロジェクトを作成すると、こんなプロジェクトのダッシュボードページが開かれるみたいです。
ProjectDashBoard_2.png

色々楽しそうで、気になる物はいっぱいあるんですけど、今の本題は Unity Ad 何で、左側のメニューから、"Ads" を選んでみますね。
すると、こんな感じの、また違ったダッシュボードが!!
またかよ!
UnityAds.png
ま、負けずに進んでいきますね。
当然の様に、"Add new project" をクリックすると、こんなページが。
AdsNewProject.png
ここで、プロジェクトと、AppID を紐付けるみたいですね。
なので、AppID を入力して、検索。で紐付け完了!
すると、ようやく、本当のダッシュボードっぽいページが登場しました。
ここ、後で思ったんですが、どうやってたどり着くのか、結構難しいんですよねー。
なんで、ここからたどり着けます。
RealDashBoard.png
ここから、AdMob の方で必要な情報が引っ張ってこれる様なので、コピーしてきますね。
AdMob-Network_setting.png
AdMob 側で必要な情報は3つ。GameID, Placement ID, API Key。
GameID と API Key は分かるんだけど、Placement ID って?
あ、アプリ毎の細かい設定についてる名前か!
PlacementID.png
これで、ゲームの外側の設定は終わりかな...?
なんか、すごくなが〜くなっちゃったんで、続きはまた次回で!!

初めてみました。よかったらクリックお願いしますね ♪
        にほんブログ村 ゲームブログ×PlayNCBlogへ 
posted by やまけん at 23:35| Comment(0) | Unity | このブログの読者になる | 更新情報をチェックする

2016年12月05日

AdMob | 動画リワード広告に対応!

Version 1.1.0 絶賛公開中!!
すくすく教育シリーズ第一弾

では、動かなくなって久しい、EarthDefenceFingers です!
目的としては、正常にゲームが起動するように修正するのと、そろばんアプリで実装した、AdMob への対応をすること。
さらに、アプリの内容的に、動画リワード広告に対応出来そうなんで、その対応を追加してみたいと思います。

で、ちょっと調べてみたんですが、動画リワード広告って、AdMob 自体からは提供してないみたいで、自分で広告ネットワークを選んで、AdMob に紐付けてやらないといけないみたいなんですね〜。
てっきり、AdMob が対応してくれてるもんだと思ってたので、とってもがっかりです。う〜ん。めんどくさい。でも、やるっきゃない!

さて、AdMob が対応している広告ネットワークは、ここから見れます。
すっごい主観ですが、パッと見て、Unity と Chartboost かなぁ? よく聞くいい感じのするものは。
本当に、何の根拠もないので、あしからず。

なので、ひとまず、Unity の方から始めてみようかな?と思いますね。

初めてみました。よかったらクリックお願いしますね ♪
        にほんブログ村 ゲームブログ×PlayNCBlogへ 
posted by やまけん at 23:00| Comment(0) | Unity | このブログの読者になる | 更新情報をチェックする

その他、問題 | Soomla 終了?

Version 1.1.0 絶賛公開中!!
すくすく教育シリーズ第一弾

さて、そろばんアプリのアップデートを終えて、もう一つ、放ったらかしになっていた、Earth Defence Fingers の方に取り掛かっていたんですが、ここで残念なお知らせが!

どうやら、今まで大変お世話になっていた、Soomla さんのプラグイン、Unity の AssetStore から、消えてしまってるようなんですよね(涙)

すでに購入済みであれば、アップデートは可能なんですが、新規の購入はできなくなってしまいました...
本当にありがとう!
でも、また代わりのプラグイン、探さなくちゃ(T-T)

まだ、サーバー自体は動いているようですが、近いうちに、そろばんアプリの方も含めて、プラグインを差し替えなきゃいけないかなぁ〜。
ちょっと高いんですが、今の第一候補は、Prime31 ってやつかな?って思ってます。
もう長い事動いてる実績もあるみたいだし、ちゃんとアップデートもされてるし。っていう所から、信頼感を感じてるんですが、どうなんでしょうか?

また、差し替える際には、ここに書き記してみたいと思いますね。

初めてみました。よかったらクリックお願いしますね ♪
        にほんブログ村 ゲームブログ×PlayNCBlogへ 
posted by やまけん at 00:14| Comment(0) | Unity | このブログの読者になる | 更新情報をチェックする