Exemple #1
0
 /// <summary>
 /// 更新高度
 /// </summary>
 void UpdateHeight()
 {
     if (!mIsHover)
     {
         if (mYSpeed < gravity)
         {
             //加速下落的实现a*2,normal*1
             if (mFallDown == eFallDown.normal)
             {
                 mYSpeed += gravity * Time.deltaTime;
             }
             else if (mFallDown == eFallDown.doubleGravity)
             {
                 mYSpeed += gravity * Time.deltaTime * 5f;
             }
             //mYSpeed+=gravity*Time.deltaTime*2f;
             if (mYSpeed < 0f)
             {
                 isCanLand = false;
             }
             else
             {
                 isCanLand = true;
             }
         }
         else if (mYSpeed > gravity)
         {
             mYSpeed = gravity;
         }
         if (mCC)
         {
             localYOffset = -mYSpeed * Time.deltaTime;
             if (mJumpState == eJumpState.FirstJump || mJumpState == eJumpState.DoubleJump)
             {
                 if (mCC.isGrounded && isCanLand)
                 {
                     mA.SetBool("land", true);
                     mJumpState = eJumpState.NoneJump;
                 }
             }
             if (mFallDown == eFallDown.doubleGravity)                 //落地后清除加速下降状态
             {
                 if (mCC.isGrounded)
                 {
                     mFallDown  = eFallDown.normal;
                     mJumpState = eJumpState.NoneJump;
                     mA.SetBool("land", true);
                 }
             }
         }
     }
     else            //滞留空中
     {
         localYOffset = 0f;
     }
 }
Exemple #2
0
 /// <summary>
 /// 下降
 /// </summary>
 void FallDown()
 {
     if (mA)
     {
         if (mA.GetBool("land") == false)
         {
             mFallDown = eFallDown.doubleGravity;
         }
         else
         {
             mA.CrossFade("fall", 0.2f);
             StartCoroutine(mCCFallDown());
         }
     }
 }