示例#1
0
        /// <summary>
        /// 入力許可を設定
        /// </summary>
        /// <param name="keyId">キーID</param>
        /// <param name="enable">入力許可の有無</param>
        public void SetKeyEnable(int keyId, bool enable)
        {
            if (!DataId.EqualsUpper(keyId, KeyIdOffset.UI))
            {
                Log.Error("キーIDの種類が異なります(ID:{0:X8})", keyId);
                return;
            }

            int index = DataId.GetIndex(keyId);

            if (index <= 0)
            {
                Log.Error("キーIDのインデックスが不正(ID:{0:X8})", keyId);
                return;
            }

            IKeyMap keyMap;

            if (!_keyConfig.TryGetKeyMap(index, out keyMap))
            {
                return;
            }

            keyMap.SetKeyEnable(keyId, enable);
        }
示例#2
0
文件: KeyMap.cs 项目: Yurukan/Unity
        /// <summary>
        /// キーIDから配列インデックスに変換する
        /// </summary>
        /// <param name="keyId">キーID</param>
        /// <param name="index">変換したインデックス</param>
        /// <returns>処理結果</returns>
        bool TryConvertIndex(int keyId, out int index)
        {
            if (!DataId.EqualsUpper(keyId, _data[0].id))
            {
                Log.Error("IDの種類が異なります(KID:{0:X8}, Offset:{1:X8})",
                    keyId, _data[0].id);
                index = -1;
                return false;
            }

            if (DataId.GetData(keyId) != DataId.GetIndex(Id))
            {
                Log.Error("マップIDが異なります(KID:{0:X8}, MID:{1:X8})", keyId, Id);
                index = -1;
                return false;
            }

            index = DataId.GetIndex(keyId);
            if (index <= 0 || index >= _data.Length)
            {
                Log.Error("インデックスが不正(KID:{0:X8}, Num:{1})",
                    keyId, _data.Length - 1);
                index = -1;
                return false;
            }

            return true;
        }
示例#3
0
 /// <summary>
 /// キーフィールドを追加し、キーコードを設定するハンドラを取得する
 /// </summary>
 /// <param name="field">キーフィールド</param>
 /// <param name="handler">キーコードを設定するハンドラ</param>
 public void AddKeyField(IKeyFieldAccesser field, out IAlterKeyHandler handler)
 {
     if (DataId.EqualsUpper(field.KeyId, KeyIdOffset.UI))
     {
         _uiGroup.AddKeyField(field, out handler);
     }
     else if (DataId.EqualsUpper(field.KeyId, KeyIdOffset.P1))
     {
         _plGroup.AddKeyField(field, out handler);
     }
     else
     {
         Log.Error("キーフィールドのIDが不正(ID:{0:X8})", field.KeyId);
         handler = null;
     }
 }
示例#4
0
        /// <summary>
        /// キー設定を反映させる
        /// </summary>
        /// <param name="keys">キー設定</param>
        public void ApplyKey(Dictionary <int, KeyCode> keys)
        {
            int index;

            foreach (var pair in keys)
            {
                if (!DataId.EqualsUpper(pair.Key, _idOffset))
                {
                    Log.Error("キーIDの種類が異なります(ID:{0:X8})", pair.Key);
                    return;
                }

                index = DataId.GetData(pair.Key);
                if (index <= 0)
                {
                    Log.Warning("キーIDのインデックスが不正(ID:{0:X8})", pair.Key);
                    continue;
                }

                _keyMaps[index].AlterKeyCode(pair.Key, pair.Value);
            }
        }
示例#5
0
        void ShowKeyId()
        {
            int offset = _spOffset.intValue;
            int keyId  = 0;

            if (DataId.EqualsUpper(offset, KeyIdOffset.UI))
            {
                EUIKeyId keyIdEnum = (EUIKeyId)_spKeyId.intValue;
                keyIdEnum = (EUIKeyId)EditorGUILayout.EnumPopup(
                    _spKeyId.displayName, keyIdEnum);
                keyId = (int)keyIdEnum;
            }
            else if (DataId.EqualsUpper(offset, KeyIdOffset.P1))
            {
                EPKeyId keyIdEnum = (EPKeyId)_spKeyId.intValue;
                keyIdEnum = (EPKeyId)EditorGUILayout.EnumPopup(
                    _spKeyId.displayName, keyIdEnum);
                keyId = (int)keyIdEnum;
            }

            _spKeyId.intValue = keyId;
        }