private void OnEnable() { if (_inputActions == null) { _inputActions = new FirstPersonInputAction(); } _inputActions.FirstPerson.SetCallbacks(instance: this); _inputActions.FirstPerson.Enable(); }
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); }); }