Esempio n. 1
0
 /// <summary>
 /// 方向キープレスイベント通知
 /// </summary>
 /// <param name="key">方向キー</param>
 public void NotifyObserversPressDirectionKey(GameControllerConstant.DirectionKey key)
 {
     foreach (var observer in observers)
     {
         observer.PressDirectionKey(key);
     }
 }
Esempio n. 2
0
        /// <summary>
        /// 方向キーからUnityのKeyCodeに変換
        /// </summary>
        /// <param name="key">対象の方向キー</param>
        /// <param name="key1">UnityEngineのKeyCode</param>
        /// <param name="key2">UnityEngineのKeyCode(複数のケースあり)</param>
        private void ConvertDirectionKeyToUnityKeyCode(GameControllerConstant.DirectionKey key, out KeyCode key1, out KeyCode key2)
        {
            key1 = KeyCode.None;
            key2 = KeyCode.None;
            switch (key)
            {
            case GameControllerConstant.DirectionKey.Up:
                key1 = KeyCode.UpArrow;
                break;

            case GameControllerConstant.DirectionKey.Down:
                key1 = KeyCode.DownArrow;
                break;

            case GameControllerConstant.DirectionKey.Right:
                key1 = KeyCode.RightArrow;
                break;

            case GameControllerConstant.DirectionKey.Left:
                key1 = KeyCode.LeftArrow;
                break;

            case GameControllerConstant.DirectionKey.RightUp:
                key1 = KeyCode.RightArrow;
                key2 = KeyCode.UpArrow;
                break;

            case GameControllerConstant.DirectionKey.RightDown:
                key1 = KeyCode.RightArrow;
                key2 = KeyCode.DownArrow;
                break;

            case GameControllerConstant.DirectionKey.LeftUp:
                key1 = KeyCode.LeftArrow;
                key2 = KeyCode.UpArrow;
                break;

            case GameControllerConstant.DirectionKey.LeftDown:
                key1 = KeyCode.LeftArrow;
                key2 = KeyCode.DownArrow;
                break;

            default:
                break;
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 方向キーが押されたか
        /// </summary>
        /// <param name="key">対象の方向キー</param>
        /// <returns>対象の方向キーが押されている間trueが返される</returns>
        public bool IsPress(GameControllerConstant.DirectionKey key)
        {
            KeyCode keyCode1, keyCode2;

            ConvertDirectionKeyToUnityKeyCode(key, out keyCode1, out keyCode2);
            if (keyCode2 != KeyCode.None)
            {
                // 複数キーを使うケース
                if (UnityEngine.Input.GetKey(keyCode1) && UnityEngine.Input.GetKey(keyCode2))
                {
                    return(true);
                }
                return(false);
            }
            if (UnityEngine.Input.GetKey(keyCode1))
            {
                // 単一キーを使うケース
                return(true);
            }
            return(false);
        }