//创建字典 public void CreateDic(string keyCodeName, KeyBoardData data) { //如果存在,则不处理 if (skillKeyCodeDic.ContainsKey(keyCodeName)) { return; } skillKeyCodeDic.Add(keyCodeName, data); }
//创建新按键功能类 void CreateKeyBoardData(uint skillID, KeyCode keyCode, string keyCodeType) { KeyBoardData t = new KeyBoardData(); t.skillID = skillID; t.keyCode = keyCode; t.showKeyCode = keyCode; t.keyCodeType = keyCodeType; CreateDic(t.keyCode.ToString(), t); }
//修改按键(UI表面上的) public void ChangeKey(KeyCode keyCode, KeyBoardData t) { t.showKeyCode = keyCode; string keyCodeName = keyCode.ToString(); //要设置的按键原先有功能类 if (skillKeyCodeDic.ContainsKey(keyCodeName)) { //将该功能的按键设为空值 skillKeyCodeDic[keyCodeName].showKeyCode = KeyCode.None; } }
//保存键位修改配置 public void SaveChangeKey(KeyBoardData t) { string keyCodeName = t.keyCode.ToString(); //如果字典里的原键位上仍是自己,则去掉 if (skillKeyCodeDic[keyCodeName] == t) { skillKeyCodeDic.Remove(keyCodeName); } //将键位改成预先设置的键位 t.keyCode = t.showKeyCode; keyCodeName = t.keyCode.ToString(); CreateDic(keyCodeName, t);//如果字典里没有该键位则创建一个新键位 skillKeyCodeDic[keyCodeName] = t; }