示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
        }