예제 #1
0
파일: KeyMap.cs 프로젝트: Yurukan/Unity
        /// <summary>
        /// キー情報の内容をチェックする
        /// </summary>
        /// <param name="keyData">キー情報</param>
        /// <returns></returns>
        bool ValidateKeyData(KeyData keyData)
        {
            if (keyData.id <= 0)
            {
                Log.Error("キーIDが設定されていません(ID:{0:X8})", keyData.id);
                return false;
            }

            return true;
        }
예제 #2
0
        static KeyData()
        {
            KeyData data;

            data.id      = -1;
            data.code    = KeyCode.None;
            data.defCode = KeyCode.None;
            data.use     = false;

            empty = data;
        }
예제 #3
0
파일: KeyMap.cs 프로젝트: Yurukan/Unity
        /// <summary>
        /// 指定したIDのキー情報を取得する
        /// </summary>
        /// <param name="keyId">キーID</param>
        /// <param name="keyData">取得するキー情報</param>
        public void GetKeyData(int keyId, out KeyData keyData)
        {
            int index;

            if (!TryConvertIndex(keyId, out index))
            {
                keyData = KeyData.empty;
                return;
            }

            keyData = _data[index];
        }
예제 #4
0
파일: KeyMap.cs 프로젝트: Yurukan/Unity
        /// <summary>
        /// 指定したキー情報をマップに設定する
        /// </summary>
        /// <param name="keyId">キーID</param>
        /// <param name="keyData">設定するキー情報</param>
        public void SetKeyData(int keyId, KeyData keyData)
        {
            int index;

            if (!TryConvertIndex(keyId, out index))
                return;

            if (!ValidateKeyData(keyData))
                return;
            
            _data[index] = keyData;
        }
예제 #5
0
파일: KeyConfig.cs 프로젝트: Yurukan/Unity
        /// <summary>
        /// キー情報を取得する
        /// </summary>
        /// <param name="mapId">キーマップの番号</param>
        /// <param name="keyId">マップ内のキーID</param>
        /// <param name="keyData">取得するキー情報</param>
        /// <returns>キー情報が存在するならtrue、それ以外はfalse</returns>
        public bool TryGetKeyData(int mapId, int keyId, out KeyData keyData)
        {
            IKeyMap keyMap;

            if (!TryGetKeyMap(mapId, out keyMap))
            {
                keyData = KeyData.empty;
                return(false);
            }

            return(keyMap.TryGetKeyData(keyId, out keyData));
        }
예제 #6
0
파일: KeyConfig.cs 프로젝트: Yurukan/Unity
        /// <summary>
        /// キー情報を取得する
        /// </summary>
        /// <param name="mapId">キーマップの番号</param>
        /// <param name="keyId">マップ内のキーID</param>
        /// <param name="keyData">取得するキー情報</param>
        public void GetKeyData(int mapId, int keyId, out KeyData keyData)
        {
            IKeyMap keyMap;

            if (!TryGetKeyMap(mapId, out keyMap))
            {
                keyData = KeyData.empty;
                return;
            }

            keyMap.GetKeyData(keyId, out keyData);
        }
예제 #7
0
파일: KeyMap.cs 프로젝트: Yurukan/Unity
        /// <summary>
        /// 配列のインデックス指定されたキー情報を取得する
        /// </summary>
        /// <param name="index">キー情報配列のインデックス(>=1)</param>
        /// <param name="keyData">取得するキー情報</param>
        /// <returns>true:キー情報が存在する。false:それ以外</returns>
        public bool TryGetKeyDataAtIndex(int index, out KeyData keyData)
        {
            if (index <= 0 || index >= _data.Length)
            {
                Log.Warning("キー情報のインデックス範囲外です(MID:{0:X8})", Id);
                keyData = KeyData.empty;
                return false;
            }

			keyData = _data[index];

            return true;
        }
예제 #8
0
파일: KeyMap.cs 프로젝트: Yurukan/Unity
        /// <summary>
        /// デフォルトのキーコードに変更する
        /// </summary>
        /// <param name="index">キー情報のインデックス</param>
        public void AlterDefaultKeyAtIndex(int index)
        {
            if (index <= 0 || index >= _data.Length)
            {
                Log.Warning("キー情報のインデックス範囲外です(MID:{0:X8})", Id);
                return;
            }

            KeyData keyData = _data[index];
            keyData.code = keyData.defCode;
            keyData.use  = (keyData.code != KeyCode.None);
            _data[index] = keyData;
        }
예제 #9
0
파일: KeyMap.cs 프로젝트: Yurukan/Unity
        /// <summary>
        /// 指定したIDのキー情報を取得する
        /// </summary>
        /// <param name="keyId">キーID</param>
        /// <param name="keyData">取得するキー情報</param>
        /// <returns>true:キー情報が存在する。false:それ以外</returns>
        public bool TryGetKeyData(int keyId, out KeyData keyData)
        {
            int index;

            if (!TryConvertIndex(keyId, out index))
            {
                keyData = KeyData.empty;
                return false;
            }
            
            keyData = _data[index];

            return true;
        }
예제 #10
0
파일: KeyMap.cs 프로젝트: Yurukan/Unity
        /// <summary>
        /// キーを使用するかを設定する
        /// </summary>
        /// <param name="keyId">設定するキーのID</param>
        /// <param name="isUse">使用フラグ</param>
        public void SetKeyEnable(int keyId, bool isUse)
        {
            int index;

            if (!TryConvertIndex(keyId, out index))
                return;

            KeyData keyData = _data[index];

            if (!ValidateKeyData(keyData))
                return;
            
            keyData.use = isUse;
            _data[index] = keyData;
        }
예제 #11
0
파일: KeyMap.cs 프로젝트: Yurukan/Unity
        /// <summary>
        /// 指定したキーIDのキーコードを変更する
        /// </summary>
        /// <param name="keyId">キーID</param>
        /// <param name="code">変更するキーコード</param>
        public void AlterKeyCode(int keyId, KeyCode code)
        {
            int index;

            if (!TryConvertIndex(keyId, out index))
                return;

            KeyData keyData = _data[index];

            if (!ValidateKeyData(keyData))
                return;

            keyData.code = code;
            keyData.use  = (keyData.code != KeyCode.None);
            _data[index] = keyData;
        }