/// <summary> /// 岩からステラへの方向に降ります。 /// </summary> /// <param name="top">床までの高さ</param> void GetOffOutside(float top) { float dir = StellaMove.chrController.bounds.center.x - lastRockObject.transform.position.x; float offset = StellaMove.chrController.bounds.extents.x + StellaMove.CollisionMargin + rockCollider.bounds.extents.x; float t = StellaMove.GetFallTime(top + StellaMove.MiniJumpMargin * 2f); float jumpt = StellaMove.GetFallTime(StellaMove.MiniJumpMargin); StellaMove.myVelocity.Set(offset * Mathf.Sign(dir) / t, jumpt * StellaMove.GravityAdd, 0f); StellaMove.instance.ChangeAction(StellaMove.ActionType.Air); }
/// <summary> /// ジャンプ実行 /// </summary> void Jump() { float h = Input.GetAxisRaw("Horizontal"); float t = StellaMove.GetFallTime(jumpHeight); StellaMove.myVelocity.y = t * StellaMove.GravityAdd; if (Mathf.Approximately(h, 0f)) { // 入力がない場合、前にstandardJump StellaMove.myVelocity.x = standardJump * StellaMove.forwardVector.x / t; } else { // 入力がある場合は、horizontalJump StellaMove.myVelocity.x = horizontalJump * h / t; } SoundController.Play(SoundController.SeType.MushroomJump); StellaMove.instance.ChangeAction(StellaMove.ActionType.Air); }