diff --git a/Assets/Scripts/Main/CustomsComponent/NoMonoBehaviour/RoleMgrNoMono.cs b/Assets/Scripts/Main/CustomsComponent/NoMonoBehaviour/RoleMgrNoMono.cs index a01ba42..f9961f9 100644 --- a/Assets/Scripts/Main/CustomsComponent/NoMonoBehaviour/RoleMgrNoMono.cs +++ b/Assets/Scripts/Main/CustomsComponent/NoMonoBehaviour/RoleMgrNoMono.cs @@ -300,7 +300,8 @@ namespace Game mRigidbody.isKinematic = false; mRigidbody.useGravity = true; - mRigidbody.constraints = RigidbodyConstraints.FreezeRotation; + //禁止碰撞引起旋转 和 Z轴变化 + mRigidbody.constraints = RigidbodyConstraints.FreezeRotation | RigidbodyConstraints.FreezePositionZ; } } diff --git a/Assets/Scripts/Main/Role/MainRole.cs b/Assets/Scripts/Main/Role/MainRole.cs index 7e9b793..e483c13 100644 --- a/Assets/Scripts/Main/Role/MainRole.cs +++ b/Assets/Scripts/Main/Role/MainRole.cs @@ -182,7 +182,7 @@ namespace Game else { //如果超过移动时间 - if(MoveTime > ConstClass.ToFastModeTime + if(GroundMoveTime > ConstClass.ToFastModeTime //&& PlayData.skill.hadskillid.Contains(5)//判断是否有加速技能 ) IsFastSkillMode = true; diff --git a/Assets/Scripts/Main/Role/RoleBase.cs b/Assets/Scripts/Main/Role/RoleBase.cs index dfac915..30c0939 100644 --- a/Assets/Scripts/Main/Role/RoleBase.cs +++ b/Assets/Scripts/Main/Role/RoleBase.cs @@ -139,7 +139,6 @@ namespace Game #region 移动 private bool mIsMove = false; - public float MoveTime = 0; public bool IsMove { @@ -149,12 +148,12 @@ namespace Game mIsMove = value; if (value)//刚开始移动 { - MoveTime = 0; + GroundMoveTime = 0; MeshChangeMoveState(true); } else//刚停止移动 { - MoveTime = 0; + GroundMoveTime = 0; //Move_currentVector = Vector3.zero;//清空移动方向 Move_currentVector.x = 0;//清空移动方向 MeshChangeMoveState(false); @@ -164,6 +163,9 @@ namespace Game } + public float GroundMoveTime = 0; + + /// /// 朝向 /// @@ -174,7 +176,7 @@ namespace Game set{ if (mIsLeft != value) { mIsLeft = value; - MoveTime = 0;//朝向变化时,重置移动时间 + GroundMoveTime = 0;//朝向变化时,重置移动时间 if (value)//开始往右 MeshChangeDir(true); else//开始往左 @@ -226,7 +228,14 @@ namespace Game /// void FixedUpdate_Move() { - if (IsMove) MoveTime += Time.deltaTime; + if (IsMove) + { + //跳跃时,不追加地面移动时间 + if (JumpStep == E_JUMP_STEP.None) + GroundMoveTime += Time.deltaTime; + else + GroundMoveTime = 0; + } Vector3 _playerPos = mRigidbody.position; _playerPos += Move_currentVector * Move_BaseSpeed * Move_SpeedMultiplier * Time.deltaTime;