コード例 #1
0
ファイル: GameInputView.cs プロジェクト: Waik0/Necrogue
        void SendInput(BaseEventData e, GameInputState state)
        {
            var pe  = (PointerEventData)e;
            var pos = _cameraView.ScreenToWorldPoint(pe.position);

            //前回がUpだったか、押されたタイミング
            if (_model.State == GameInputState.PointerUp ||
                state == GameInputState.PointerDown)
            {
                Debug.Log("Reset");
                _before             = pe.position;
                _model.DownPos      = pe.position;
                _model.WorldDownPos = pos;
            }

            if (state == GameInputState.PointerDown)
            {
                //downの時のみ判定
                var mode = InputMode.MoveCamera;
                if (_mapPlaceUseCase.SelectedTile != null)
                {
                    mode = InputMode.PlaceTile;
                }
                _model.InputMode = mode;
            }

            _model.Delta           = pe.delta;
            _model.WorldDelta      = pos - _cameraView.ScreenToWorldPoint(_before);
            _model.CurrentPos      = pe.position;
            _model.WorldCurrentPos = pos;
            _model.State           = state;

            _inputManager.InputOnGame(_model);
            _before = pe.position;
        }