/* * /// <summary> * /// ターゲット文字列を取得する * /// </summary> * static public string TargetCharas(){ * TextAsset csvFile = Resources.Load("File/target_charas") as TextAsset; * StringReader reader = new StringReader(csvFile.text); * * string readString = ""; * int height = 0; * while(reader.Peek() > -1) { * * string line = reader.ReadLine(); * * readString += line; * } * * return readString; * } */ /// <summary> /// キー情報を取得する /// </summary> static public Dictionary <string, KanaKeyMapInfo> ReadKeyMapInfo() { TextAsset csvFile = Resources.Load("File/kana_key_map") as TextAsset; /* Resouces/CSV下のCSV読み込み */ StringReader reader = new StringReader(csvFile.text); Dictionary <string, KanaKeyMapInfo> kanaKeyMapInfo = new Dictionary <string, KanaKeyMapInfo>(); int height = 0; while (reader.Peek() > -1) { string line = reader.ReadLine(); height++; // 行数加算 if (height == 1) { continue; //1行目はコメントのため飛ばす } KanaKeyMapInfo info = new KanaKeyMapInfo(); string[] str = line.Split('\t'); info.kana = str[0]; info.typeKey = str[1]; info.leftShift = int.Parse(str[2]); info.rightShift = int.Parse(str[3]); info.reverseShift = int.Parse(str[4]); kanaKeyMapInfo[info.kana] = info; } return(kanaKeyMapInfo); }
/// <summary> /// キーボードの表示の更新 /// </summary> void ChangeSelectKeyborde(string kana) { //現在のキーボードの表示を修正する if (_selectedKey != null) { _selectedKey.ResetKey(); } //該当するキー KanaKeyMapInfo info = _model.KanaKeyMapInfoData[kana]; _keyButtons[info.typeKey].SelectKey(kana); //現在のキーボードの参照更新 _selectedKey = _keyButtons[info.typeKey]; //シフトの表示 _rightShiftButton.ResetKey(); _leftShiftButton.ResetKey(); if (info.rightShift == 1) { _rightShiftButton.SelectKey(); } else if (info.leftShift == 1) { _leftShiftButton.SelectKey(); } }
/// <summary> /// 今回入力する文字列のガイドを出す /// </summary> private string guildString(string targetChara) { string guide = ""; KanaKeyMapInfo info = _model.KanaKeyMapInfoData[targetChara]; guide = info.typeKey; //右シフト?左シフト? if (info.leftShift == 1) { //左シフト guide += " + 左シフト"; } else if (info.rightShift == 1) { guide += " + 右シフト"; } return(guide); }
/// <summary> /// 入力された文字が、ターゲットどおりになっているか判定する /// </summary> bool CheckTargetCharactor(string targetChara, IList <string> inputdatas) { bool rtn = false; bool shiftOn = false; //targetCharaから判定文字を選択する KanaKeyMapInfo info = _model.KanaKeyMapInfoData[targetChara]; //シフト判定 if (info.leftShift == 1 || info.rightShift == 1) { shiftOn = true; } //親指シフト判定 Debug.Log("ターゲット文字:" + targetChara); //文字判定 string strInput = Util.GetKeybordCharactor(inputdatas); if (shiftOn == true) { //2文字以上 if ((strInput.Contains(" " + info.typeKey)) || (strInput.Contains(info.typeKey + " "))) { rtn = true; } } else { //1文字 if (info.typeKey == strInput) { rtn = true; } } return(rtn); }