[プラグイン制作の目的]
ユニティが提供するアンドロイドキーボードはネイティブコードが提供するものに比べて、とても制限的です。組立型文字の場合 Input.compositionStringが正常的な機能をしていなく、 hideInput フラッグもまた正常作動していません。私はこのような制約をなくし、そこに adjustResize オプションを追加し、活用できるようにしました。
[要求仕様]
Unity 4.6.3 以上
NGUI 3.5.0 以上
Android Mininim API Level : 9 (Android 2.3.1 ‘Gingerbread’)
[AndroidMenifest.xml 生成または修正]
- 既存 AndroidMenifest.xmlがあるなら、下記のコードを追加します。
<activity
android:name=“com.OhYeahDev.softInput.KeyboardActivity“
android:configChanges=“orientation|fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen“
>
</activity>
- 既存 Main Activityがないなら、上記のコードに下記のコードを挿入します
<intent-filter>
<action android:name=“android.intent.action.MAIN“ />
<category android:name=“android.intent.category.LAUNCHER“ />
</intent-filter>
</activity>
- 既存 AndroidMenifest.xmlがないなら、Sample_AndroidManifest.xmlを Assets/Plugins/Android フォルダーにコピーした後、ファイル名の ‘SamePle_’を削除してください。
[アクティビティ活性化]
AndroidKeyboardManager.Install() メソッドをアプリケーション駆動時に必ず呼び出してください。
[キーボード出し及び設定法]
- スクリプトにネームスペースを定義します。
- ユニティが提供する TouchScreenKeyboard 方式で使用してください。
[追加オプション設定]
- fullScreen
- Landscape画面で有効なオプション
- キーボードを全体画面モードにする
Half Screen
- No Suggestions
- キーボード上の ‘Suggestion Words’ Barを除去します。
- 一部のハードウェア機種から、該当オプションが適用されない場合があります。
- Landscape 画面だけで可能
- SoftInputMode
- InputAdjustType.SOFT_INPUT_ADJUST_RESIZE
画面をキーボード上に位置するように上げます。
- InputAdjustType.SOFT_INPUT_ADJUST_PAN
上とは反対に、画面が固定された状態でキーボードを出します。
4. KeepKeyboardOn
- AdditionalOptions.keepKeyboardOn = true;
- Keyboard is not hidden when the “Done” button is clicked
[高級オプション設定]
- 色んな Flagと Maskなどを追加できます。(InputType.cs 参考)
[NGUIと連動]
- Assets/Plugins/Android/AndroidKeyboard/NGUI Ver/UIInput.zip ファイルを圧縮を解凍させ、既存の物に被せます。
- 2015年現在 NGUI 3.8.0, 3.9.0 バージョン用ファイルがあります。
- キーボードを出す前に、オプション設定を完了されてください。(hideInput, softInputMode, Nosuggestion, fullScreen など)
- hideInputの場合、下記のコードに注意してください。
- InputTest_NGUI.apk を設置して NGUI 連動テストが出来ます。
[Example Scenes]
* Test_Landscape, Test_Portrait シーンは UnityEngine.UIを利用してキーボード機能をテストする目的で作りました。
* テスト用度で制作されたので、hideInputの場合にカーソルがなく、Selectionができません
Leave a Reply