void Awake() { rigidbody = GetComponent <Rigidbody2D>(); defaultGrabvityScale = rigidbody.gravityScale; inputProvider = GetComponent <PlayerInputProvider>(); cameraMover = GameObject.Find("Main Camera").GetComponent <CameraMover>(); }
protected override void OnInitialize() { inputProvider = GetComponent <PlayerInputProvider>(); rb = GetComponent <Rigidbody2D>(); inputProvider.MoveDirection .TakeUntilDestroy(this) //.Where(_ => GameManager.Instance.CurrentSceneState.Value == SceneState.Game) .Subscribe(x => { var value = Vector3.zero; if (!IsAlive.Value) { return; } if (IsGround.Value) { value = x.normalized * runForce; } else // 飛んでる時 { value = x.normalized * runForce * jumpMoveForce; } inputDirection = value; }); inputProvider.JumpButton .TakeUntilDestroy(this) //.Where(_ => GameManager.Instance.CurrentSceneState.Value == SceneState.Game) .Where(x => x && IsAlive.Value && IsGround.Value) //.ThrottleFirst(TimeSpan.FromSeconds(1)) .Subscribe(_ => { Jump(); }); this.FixedUpdateAsObservable() .TakeUntilDestroy(this) .Subscribe(_ => { Move(); isGround.Value = CheckGrounded(); }); }