Unity4.3にすると、Inspector上でIMEが切り替わらなく日本語入力できなかったり、
IMEの切り替えはできても変換途中で勝手にIMEが戻って確定されてしまうようになりました。
その回避方法を見つけたので共有します。
※自動的に変更するスクリプトも公開しました。
【Unity】IMEの状態を自動的に変更するIMEAutoChanger【エディタ拡張】
詳しくは↑こちらを参照してください。
まずは、以下のスクリプトをEditorフォルダに入れてください。
using UnityEngine; using UnityEditor; using System.Collections; public class EditorIME : EditorWindow { [MenuItem("IME/Open")] static public void OpenWindow() { EditorWindow.GetWindow<EditorIME>(false, "Editor IME", true); } private string _text=""; void OnGUI() { GUILayout.BeginHorizontal(); GUILayout.Label( "Mode" ); string[] selString = System.Enum.GetNames( typeof(IMECompositionMode) ); Input.imeCompositionMode = (IMECompositionMode)GUILayout.SelectionGrid( (int)Input.imeCompositionMode,selString,selString.Length ); GUILayout.EndHorizontal(); _text = EditorGUILayout.TextArea( _text,GUILayout.Height(80f) ); } }
すると、メニューにIME/Openというのが出てくるのでクリック。
このようなウィンドウが出てくるので、ModeをOnにすればIMEの切り替えや日本語入力がインスペクタ上でも可能になります。
その下のTextAreaで試し入力してもらえれば、Modeによる挙動の違いが確認できます。
※ModeをOnにすると、どこでもIME切り替えできるようになってしまうため、必要がないときはAutoに戻しておいたほうが良さそうです。
この件ですが、
どうやらInput.imeCompositionModeがデフォルトでAutoになっており、Autoだとテキスト入力枠に入ると自動でIME切り替えできるようになっているはずが、
バグで強制的にオフになるようになっているようです。
入力するたびにModeをOnにしなければなりませんが、バージョン下げるのも大変なので、修正されるまではこれで我慢するしかなさそうです。
Unityのアセット販売中!
ステートマシンの状態遷移やパラメータはエディタで編集でき、
ゲームロジックに依存するステートの挙動はスクリプトで記述可能なエディタ拡張。
RPGツクールVXやWOLF RPGエディターのオートタイルに準拠したエディタ拡張。