リワード動画を実装したら、
アプリ起動するだけで/Library/Cachesにデータがダウンロードされ
アプリ終了後も残り続ける模様。

ストレージが逼迫したらOSが勝手に削除するディレクトリではあるものの、
iOSの「ストレージを管理」で見たときに「書類とデータ」にカウントされ、
無駄に容量を食うアプリという印象を与えてしまう。

起動時や終了時にApplication.temporaryCachePath内をクリアするのが良さそう。


public static void DeleteCaches()
    {
        string path = Application.temporaryCachePath;
        System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(path);
        foreach (System.IO.FileInfo file in di.GetFiles())
        {
            if (file.IsReadOnly == false) {
                try
                {
                    file.Delete ();
                }
                catch (IOException)
                {
                }
            }
        }
        foreach (System.IO.DirectoryInfo dir in di.GetDirectories())
        {
            //iOSが生成するSnapshotsは消せない模様
            if (dir.Name != "Snapshots") {
                try
                {
                    dir.Delete(true);
                }
                catch (IOException)
                {
                }
            }
        }
    }

追記:
AndroidだとApplication.persistentDataPath内にも色々溜め込んでいる。
自前で作成した初期化やコールバック受け取り用のクラスを
AdfurikunMovieRewardUtilityと同じGameObjectにアタッチしてはいけない。

引数の型が異なるMovieRewardCallbackが2つのクラスにあって
SendMessageで両クラスに通知されるので下記エラーが発生する。

MissingMethodException: The best match for method MovieRewardCallback has some invalid parameter.


Androidで動いてたけどiOSではクラッシュする。
以前実装した時も同じようにハマってMovieRewardCallbackが呼ばれないなぁとか思った記憶がある。

追記: SDK ver.2.10からこの作業は不要になりました。

MovieRewardを実装した際のメモ。

XCode側でSDKを手動設定するのは面倒なので
下記を参考にさせて頂いた。

注意点:
アドフリくんから提供されるzip内の各社frameworkのうち、
下記2つはフォルダが1階層深くなってる。
 Tapjoy.embeddedframework
 VungleSDK.embeddedframework
上記のフォルダを取り除いてAssets/Plugins/iOS直下に入れること。
そうしないと、'Tapjoy/Tapjoy.h' file not found などのエラーが出る。

上記やっても、ADFmyMovieReward.h file not found が出たので
下記のやり方に変更した。

・各社のフォルダはそのままの構成で/Assets/Plugins/iOSに入れる。
 /Assets/Plugins/iOS/AdColony_3.1.1
 /Assets/Plugins/iOS/applovin-ios-sdk-3.4.3
 /Assets/Plugins/iOS/Maio_1.2.8
 /Assets/Plugins/iOS/SmaAD_1.1.3
 /Assets/Plugins/iOS/Tapjoy_11.9.1
 /Assets/Plugins/iOS/unityAds_2.0.4
 /Assets/Plugins/iOS/Vungle_4.1.0

・上記フォルダ内にある「〜.framework」フォルダのみを/Assets直下に移動する。
 /Assets/AdColony.framework
 /Assets/Maio.framework
 /Assets/Tapjoy.framework
 /Assets/UnityAds.framework
 /Assets/VungleSDK.framework

・アドフリくんの.frameworkフォルダも/Assets直下におく。
 /Assets/ADFMovieReward.framework

・ /Assets/Editor/AdfurikunMovieRewardPostProcess.cs の176行目あたりに下記を追記。
proj.AddBuildProperty(target, "FRAMEWORK_SEARCH_PATHS", "$(SRCROOT)/Frameworks");
proj.AddBuildProperty(target, "HEADER_SEARCH_PATHS", "$(SRCROOT)/Libraries/Plugins/iOS");
元々、Creative Cloud の「年間プラン 月々払い」で契約していて
最近更新したばかりだったので年間プランが切れるのは約1年後。
月々払いなので来月も5378円引かれる予定。

という状況で、Amazonのセールにて3年分のオンラインコードを約50%オフで買ったので
すぐにオンラインコードを適用してみた。

1年後まで定価で払った後にオンラインコード分が延長されるような形だったら嫌だなと思ったけど
実際はそんな心配いらなかった。
月々払いの代わりにオンラインコードで3年分払った形になり、
プラン更新予定日は来月から数えて3年後、次回請求日も同じく3年後。

無駄に定価で払い続ける必要がなくなった。


ちなみに年間プランを中途解約したい人は、解約金がかなり高い(残存期間の半額)そうなので、
残存期間が長い場合はコンプリートプランで解約するのではなくフォトプランにプラン変更してから解約したほうが良いみたい。
スマホ用Unityアプリで映像再生するプラグインは、
Mobile Movie Texture」と「Easy Movie Texture」の2種類ありますが
両方試した結果Easy Movie Textureのほうが良い感じでした。
Mobile Movie Textureは少し重く、一部端末で再生不具合がありました。

Windows10にUnity5.3.5をインストールしようとしたところ
"Installing Playback Engines"の状態でインストールが終わらない現象がありました。

タスクマネージャーで「Windows モジュール インストーラ」というタスクを終了させると
正常に進むようになりました。

http://answers.unity3d.com/questions/1095497/unity-522-installation-gets-stuck.html

LINEスタンプ

| コメント(0) | トラックバック(0)
妻が描いたLINEのスタンプ、公開されました。皆さんぜひ使ってくださいな。


Unity5.2はペン(デジタイザー、スタイラス)による操作に対応していないようです。

AssetStoreに対応プラグインが一つあったがUnity5で動かない模様。

Panasonic ToughPadやMicrosoft Surface Proなどペンを使った端末で動かしたい場合、

ワコムのWintabというタブレット用APIを使うプラグインを用意する必要があります。

以下、簡単に手順を書いておきます。

 

1)ワコムのドライバーに含まれるWintab32.dllを入手。

下記をインストールすると /Windows/Systems32 と /Windows/SysWOW64 内に入ります。

http://us.wacom.com/en/feeldriver/

 

2)Wintab32.dllを使うための .NET ラッパー「WintabDN」のソースを入手。

http://www.wacomeng.com/windows/code/WintabDN.zip

 

3)Visual Studio Expressをインストールして、WintabDNプロジェクトをビルド。

※Visual Studio Express 2015は巨大なので2013で充分。

※プロジェクトのプロパティで対象フレームワークを「.NET Framework 3.5」、出力の種類を「クラスライブラリ」に。

※.NET4用のコードでエラーが出る個所は、.NET3.5用に修正する。

 

4)ビルドしてできたWintabDN.dllをUnityプロジェクトの/Assets/Plugins/に入れる。

 

5)下記のコードをほぼそのまま使わせていただく。

http://forum.unity3d.com/threads/wacom-tablet-input-script-in-c.317154/

※一部、コメントアウトやアンコメントする必要あり。

※MyWTPacketEventHandlerにペン座標と筆圧が届きます。

※アプリ終了時のハング対策としてmonoスレッドを閉じるコードの追記が必要。

 

6)ペン座標をUGUIのEventSystemに渡すためにStandaloneInputModule.csを参考にして

StylusInputModule.csを作る。

https://bitbucket.org/Unity-Technologies/ui/src/0155c39e05ca5d7dcc97d9974256ef83bc122586/UnityEngine.UI/EventSystem/InputModules/?at=5.2

http://tips.hecomi.com/entry/2014/09/25/233823


追記:

アプリを起動して初めてタッチするときに30%くらいの確率でエラーダイアログが出る現象が起きた。

ログを見るとDllNotFoundExceptionが起きてる。

回避策としては、下記のような感じでcontextをopenした直後にGetDataPacket()を実行すること。

m_logContext = OpenTestSystemContext(ctxWidth_I, ctxHeight_I, ctrlSysCursor_I);

WintabPacket pkt = m_wtData.GetDataPacket((uint)m_logContext.HCtx, 1);

理由はわからないけどこれでエラーが起きなくなった。


BootCampでWindowsを起動中に

MacintoshHDにアクセスしたいのにエクスプローラでドライブが認識されない。

原因はMacintoshHDが論理パーティションになっているためでした。

ターミナルから「diskutil cs revert disk[指定ディスク番号]」とするだけで

論理ボリュームグループを解除してWindowsから認識されるようになりました。

 

参考ページ:

http://www.macotakara.jp/blog/mac_os_x/entry-25055.html

Q-BLOCKのスマホアプリから3Dプリントできるようになりました。
かんたんに投稿作品をDMM.makeの3Dプリントサービスで注文でき、
立体フィギュアとして手元に届きます!

加えて、自分でイチから作った作品はVRML形式の3Dデータファイルとして
書き出せるようになりました。
※他人の作品や、他人の作品を改変して作ったものはファイル書き出し不可です。

Q-BLOCK | ちょゲつく オフィシャルサイト

アーカイブ