うえすと開発メモ

Application.CaptureScreenshotでスクリーンショットを保存した後、
AndroidJavaClassAndroidJavaObjectを使って
MediaScannerConnection.scanFile()を呼ぶことでギャラリーに反映させます。

Unityのバージョンは4.6.0で、端末はNexus7(Android4.3)で動作確認しました。
内部ストレージの無い端末ではPlayerSettingsのWriteAccessを
External(SDCard)にする必要があります。


使い方は以下のように好きなタイミングで呼ぶだけ。
using UnityEngine;
using System.Collections;

public class Test : MonoBehaviour
{
    public void OnCaptureButtonPush ()
    {
        CaptureScreenAndroid.CaptureScreen (this);
    }
}

このエントリーをはてなブックマークに追加 Clip to Evernote

Unity4.5.3からResourcesディレクトリ配下のアセットの読込を非同期で行うResources.LoadAsync()メソッドが追加されたので試してみました。


戻り値であるResourceRequestで進捗の取得や優先度の設定が行えます。

このエントリーをはてなブックマークに追加 Clip to Evernote

Unity4.3以降でビルドしたAndroidアプリで上部のStatus Barを隠さない設定で、ソフトキーボードを表示すると以下のように画面全体のサイズが小さくなってしまう現象があります。

この画面が
unity_android_softkey_01
こうなってしまう。
unity_android_softkey_02
Activity全体がリサイズされてしまいます。
AndroidManifest上でwindowSoftInputModeを変更したりしても防げませんでした。

参考:UnityForums Android Manifest Not Working Properly

上記フォーラムでは最後にUnityPlayerActivityをオーバーライドしたActivity内で
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
を呼び出しWindowの設定を変更すれば解決するとなっているのですが、 
前回の「UnityからAndroidのUIスレッドで処理を行う」を使用してUnity側のC#コードから設定してみます。


このコンポーネントを付けたGameObjectを最初のシーンに配置します。
これでキーボードを出しても画面サイズが小さくならなくなりました。
unity_android_softkey_03

このエントリーをはてなブックマークに追加 Clip to Evernote

このページのトップヘ