MENU

InputFieldコンポーネントについて

卒研でunity使うことになってるので仕方なく
unityをいじっているのですが・・・
inputFieldコンポーネントを使う可能性があるのでメモ書き程度に

inputFieldにはなんかたくさんのめそっどとかありますね
もともとJava専なのでC#のデリゲードとか、get setとかよくわからないの使わなくちゃコード読めない・・・泣



さてonValidateInputですが

void Start () {
		Debug.Log("text");


		inputField.onValueChange.AddListener(OnValueChange);
		inputField.onEndEdit.AddListener(OnSubmit);

		inputField.onValidateInput = (string text, int charIndex, char addedChar)=>{
			// アルファベット小文字が入力されたら大文字にする
			char ret = addedChar;
			/*if(addedChar >= 'a' && addedChar <= 'z')
			{
				ret = (char)(addedChar + ('A' - 'a'));
			}
*/
			Debug.Log(text);
			Debug.Log(charIndex);
			Debug.Log(addedChar);
			return ret;
		};
	}
	
	// Update is called once per frame
	void Update () {
	
	}

	public void OnValueChange(string value)
	{
		Debug.Log("Input Field value is " + value);
	}

	public void OnSubmit(string value)
	{
		Debug.Log("Submit value is " + value);
	}

こうかくと↓になるんですけど

f:id:saigonitoride:20170903214157g:plain

なにこれ・・・・全角いれると反映されない・・・

onValueChangeはイベントらしですね
あともう一個のほうも
とりあえずaddlistenerでやりたいメソッドをぶち込んどいて

で肝心の意味不明なコレ
inputField.onValidateInput

なんかプロパティっていうらしい
ラムダ式で匿名メソッドいれてるし・・
charを返すデリゲードって書いてあったけど
デリゲード自体実装を持ってるわけじゃないし
意味わからん・・・・・・