コード例 #1
0
    private void OnEnable()
    {
        if (_inputActions == null)
        {
            _inputActions = new FirstPersonInputAction();
        }

        _inputActions.FirstPerson.SetCallbacks(instance: this);
        _inputActions.FirstPerson.Enable();
    }
コード例 #2
0
    void Awake()
    {
        _actions = new FirstPersonInputAction();
        deactivateCursor();

        _move = this.UpdateAsObservable()
                .Select(_ => _actions.FirstPerson.Move.ReadValue <Vector2>());

        _look = this.UpdateAsObservable()
                .Select(_ => getSmoothLook(new Vector2(0, 0)));
    }
        protected void Awake()
        {
            _controls = new FirstPersonInputAction();

            // Hide the mouse cursor and lock it in the game window.
            Cursor.lockState = CursorLockMode.Locked;
            Cursor.visible   = false;

            // Move:
            _move = this.UpdateAsObservable()
                    .Select(_ => _controls.Character.Move.ReadValue <Vector2>());

            // Jump:
            _jump = new Subject <Unit>().AddTo(this);
            _controls.Character.Jump.performed += context => _jump.OnNext(Unit.Default);

            //ToggleMenu
            _toggleMenu = new Subject <Unit>().AddTo(this);
            _controls.Character.ToggleMenu.performed += context => _toggleMenu.OnNext(Unit.Default);
            // Run:
            _run = this.UpdateAsObservable()
                   .Select(_ => _controls.Character.Run.ReadValueAsObject() != null)
                   .ToReadOnlyReactiveProperty();

            // Look:
            var smoothLookValue = new Vector2(0, 0);

            _look = this.UpdateAsObservable()
                    .Select(_ =>
            {
                var rawLookValue = _controls.Character.Look.ReadValue <Vector2>();

                smoothLookValue = new Vector2(
                    Mathf.Lerp(smoothLookValue.x, rawLookValue.x, lookSmoothingFactor * Time.deltaTime),
                    Mathf.Lerp(smoothLookValue.y, rawLookValue.y, lookSmoothingFactor * Time.deltaTime)
                    );

                return(smoothLookValue);
            });
        }