Unity4.3のインスペクターで日本語入力する方法

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というのが出てくるのでクリック。

EditorIME

このようなウィンドウが出てくるので、ModeをOnにすればIMEの切り替えや日本語入力がインスペクタ上でも可能になります。
その下のTextAreaで試し入力してもらえれば、Modeによる挙動の違いが確認できます。

※ModeをOnにすると、どこでもIME切り替えできるようになってしまうため、必要がないときはAutoに戻しておいたほうが良さそうです。

この件ですが、
どうやらInput.imeCompositionModeがデフォルトでAutoになっており、Autoだとテキスト入力枠に入ると自動でIME切り替えできるようになっているはずが、
バグで強制的にオフになるようになっているようです。

入力するたびにModeをOnにしなければなりませんが、バージョン下げるのも大変なので、修正されるまではこれで我慢するしかなさそうです。

Unityのアセット販売中!

Arbor 3

ステートマシンの状態遷移やパラメータはエディタで編集でき、
ゲームロジックに依存するステートの挙動はスクリプトで記述可能なエディタ拡張。

詳細はこちら

Nostalgia 2

RPGツクールVXやWOLF RPGエディターのオートタイルに準拠したエディタ拡張。

詳細はこちら

オススメ!


Privacy Preference Center

Your Privacy

This site uses cookies to display contents and advertisements tailored to users, provide social media functions, measure advertisement impressions and clicks. We also gather information on users' site usage status and provide them to social media, advertisement distribution and data analysis partners. Each partner may use this information in combination with other information that the user provided to each partner or other information gathered when the user used the service of each partner.

Analytics, Ads