实现基本跳跃,TODO但后续应该抛弃物理,更合适

This commit is contained in:
sin365 2023-08-10 13:07:55 +08:00
parent 6952473feb
commit 4fe36027f0
7 changed files with 98 additions and 25 deletions

View File

@ -11,8 +11,9 @@ public class ConstClass
public static float FastRunSpeedMultiplier = 3f; public static float FastRunSpeedMultiplier = 3f;
public static float FastModeShadowCreateIntervalTime = 0.25f; public static float FastModeShadowCreateIntervalTime = 0.25f;
public static float JumpSpeedY = 1; public static float JumpSpeedY = 12;
public static float JumpSpeedY_Down = 1; public static float JumpSpeedY_MinStop => JumpSpeedY * 0.9f;
public static float JumpSpeedY_Down = -10;
public const float CellSize = 1f; public const float CellSize = 1f;
} }

View File

@ -55,15 +55,16 @@ namespace Game
{ {
_animator.SetInteger("Speed", 0); _animator.SetInteger("Speed", 0);
} }
public void DeadToIdle() public void DeadToIdle()
{ {
_animator.SetBool("Dead", false); _animator.SetBool("Dead", false);
} }
//public void SetAttack(string anim) public void MustToIdle()
//{ {
// _animator.SetBool(anim, true); _animator.Play("Idle");
//} }
public void SetAttack(string anim) public void SetAttack(string anim)
{ {
@ -90,6 +91,7 @@ namespace Game
_animator.speed = speed; _animator.speed = speed;
} }
#endregion #endregion
} }
} }

View File

@ -19,6 +19,7 @@ namespace Game
public abstract void PlayHit(); public abstract void PlayHit();
public abstract void StartRun(); public abstract void StartRun();
public abstract void BackToIdle(); public abstract void BackToIdle();
public abstract void MustToIdle();
public abstract void DeadToIdle(); public abstract void DeadToIdle();
public abstract void SetAnimatorSpeed(float speed); public abstract void SetAnimatorSpeed(float speed);
} }

View File

@ -46,6 +46,7 @@ namespace Game
protected override void FixedUpdate() protected override void FixedUpdate()
{ {
base.FixedUpdate(); base.FixedUpdate();
AxibugLog.Debug($"mRigidbody.velocity.y=>{mRigidbody.velocity.y}");
FixedUpdate_FastMoveMode(); FixedUpdate_FastMoveMode();
} }
@ -125,7 +126,7 @@ namespace Game
Anime.SetOtherAnime("JumptoFall"); Anime.SetOtherAnime("JumptoFall");
break; break;
case E_JUMP_STEP.None: case E_JUMP_STEP.None:
Anime.BackToIdle(); Anime.MustToIdle();
break; break;
} }
} }

View File

@ -117,11 +117,11 @@ namespace Game
protected virtual void Update() protected virtual void Update()
{ {
Update_Move();
Update_Jump();
} }
protected virtual void FixedUpdate() protected virtual void FixedUpdate()
{ {
Update_Move();
Update_Jump();
FixedUpdate_Move(); FixedUpdate_Move();
} }
@ -219,7 +219,7 @@ namespace Game
/// </summary> /// </summary>
protected float Move_BaseSpeed = 3.5f; protected float Move_BaseSpeed = 3.5f;
protected float Move_SpeedMultiplier = 1f; protected float Move_SpeedMultiplier = 1f;
private Vector3 Move_currentVector; protected Vector3 Move_currentVector;
/// <summary> /// <summary>
/// Òƶ¯Î»ÒÆ /// Òƶ¯Î»ÒÆ
@ -249,11 +249,17 @@ namespace Game
if (mJumpStep != value) if (mJumpStep != value)
{ {
mJumpStep = value; mJumpStep = value;
AxibugLog.Debug("mJumpStep =>"+ mJumpStep);
switch (value) switch (value)
{ {
case E_JUMP_STEP.JumpUp: case E_JUMP_STEP.JumpUp:
SetToUpVec(); SetToUpVec();
break; break;
case E_JUMP_STEP.JumpFall:
SetToDownVec();
break;
case E_JUMP_STEP.None:
break;
} }
} }
} }
@ -270,24 +276,54 @@ namespace Game
switch (JumpStep) switch (JumpStep)
{ {
case E_JUMP_STEP.JumpUp: case E_JUMP_STEP.JumpUp:
Jump_CurrySpeedY -= Time.deltaTime * ConstClass.JumpSpeedY_Down; //Jump_CurrySpeedY -= Time.deltaTime * ConstClass.JumpSpeedY_Down;
if (Jump_CurrySpeedY <= 0) //if (Jump_CurrySpeedY <= 0)
//{
// Jump_CurrySpeedY = 0;
// ChangeJumpState(E_JUMP_STEP.JumpFall);
//}
if (mRigidbody.velocity.y <= ConstClass.JumpSpeedY_MinStop && Time.time - StartJumpTime > 0.2f)
{ {
Jump_CurrySpeedY = 0;
ChangeJumpState(E_JUMP_STEP.JumpFall); ChangeJumpState(E_JUMP_STEP.JumpFall);
} }
break; break;
//下落过程中
case E_JUMP_STEP.JumpFall:
{
//TODO 判断地面接触
AxibugLog.Debug("TerrainEnterNumber->" + TerrainEnterNumber);
if (TerrainEnterNumber > 0)
{
JumpStep = E_JUMP_STEP.None;
Move_currentVector.y = 0;
ChangeJumpState(E_JUMP_STEP.None);
}
}
break;
} }
Move_currentVector.y = Jump_CurrySpeedY;
//TODO ĹМϾŘĂć˝Ó´Ľ //if(JumpStep != E_JUMP_STEP.None)
AxibugLog.Debug("TerrainEnterNumber->" + TerrainEnterNumber); // Move_currentVector.y = Jump_CurrySpeedY;
} }
float StartJumpTime = 0;
// //
void SetToUpVec() void SetToUpVec()
{ {
Jump_CurrySpeedY = ConstClass.JumpSpeedY; mRigidbody.AddForce(Vector3.up * ConstClass.JumpSpeedY, ForceMode.VelocityChange);
AxibugLog.Debug("SetToUpVec");
StartJumpTime = Time.time;
//Jump_CurrySpeedY = ConstClass.JumpSpeedY;
}
void SetToDownVec()
{
mRigidbody.AddForce(Vector3.up * ConstClass.JumpSpeedY_Down, ForceMode.VelocityChange);
AxibugLog.Debug("SetToDownVec");
//Jump_CurrySpeedY = ConstClass.JumpSpeedY;
} }
#endregion #endregion
@ -306,17 +342,31 @@ namespace Game
#region #region
int TerrainEnterNumber; int TerrainEnterNumber;
public void OnTriggerEnter(Collider other)
private void OnCollisionEnter(Collision other)
{ {
if (other.gameObject.layer == LayerMask.NameToLayer("Terrain")) if (other.gameObject.layer == LayerMask.NameToLayer("Terrain"))
TerrainEnterNumber++; TerrainEnterNumber++;
} }
private void OnTriggerExit(Collider other) private void OnCollisionExit(Collision other)
{ {
if (other.gameObject.layer == LayerMask.NameToLayer("Terrain")) if (other.gameObject.layer == LayerMask.NameToLayer("Terrain"))
TerrainEnterNumber--; TerrainEnterNumber--;
} }
//public void OnTriggerEnter(Collider other)
//{
// if (other.gameObject.layer == LayerMask.NameToLayer("Terrain"))
// TerrainEnterNumber++;
//}
//private void OnTriggerExit(Collider other)
//{
// if (other.gameObject.layer == LayerMask.NameToLayer("Terrain"))
// TerrainEnterNumber--;
//}
#endregion #endregion
} }
} }

View File

@ -60,6 +60,7 @@
<Compile Include="Assets\Scripts\Editor\UIMgr\Editor\UIExporter\EditorCommonAPI.cs" /> <Compile Include="Assets\Scripts\Editor\UIMgr\Editor\UIExporter\EditorCommonAPI.cs" />
<Compile Include="Assets\Scripts\Editor\UIMgr\Editor\UIControl\UIElementMenu.cs" /> <Compile Include="Assets\Scripts\Editor\UIMgr\Editor\UIControl\UIElementMenu.cs" />
<Compile Include="Assets\Scripts\Editor\ProjectTools\ProjectTool.cs" /> <Compile Include="Assets\Scripts\Editor\ProjectTools\ProjectTool.cs" />
<Compile Include="Assets\Scripts\Editor\MapSpawn\MapSpawnTool.cs" />
<Compile Include="Assets\Scripts\Editor\ProjectTools\FindMissingWindow.cs" /> <Compile Include="Assets\Scripts\Editor\ProjectTools\FindMissingWindow.cs" />
<Compile Include="Assets\Scripts\Editor\ProjectTools\MyFindMissingWindow.cs" /> <Compile Include="Assets\Scripts\Editor\ProjectTools\MyFindMissingWindow.cs" />
<Compile Include="Assets\Scripts\Editor\ImageFontMaker.cs" /> <Compile Include="Assets\Scripts\Editor\ImageFontMaker.cs" />
@ -69,6 +70,7 @@
<Compile Include="Assets\Scripts\Editor\ProjectTools\NoReferenceWindow.cs" /> <Compile Include="Assets\Scripts\Editor\ProjectTools\NoReferenceWindow.cs" />
<Compile Include="Assets\Scripts\Editor\CustomCom\ShapeImageEditor.cs" /> <Compile Include="Assets\Scripts\Editor\CustomCom\ShapeImageEditor.cs" />
<Compile Include="Assets\Scripts\Editor\ResourceComponentInspector.cs" /> <Compile Include="Assets\Scripts\Editor\ResourceComponentInspector.cs" />
<Compile Include="Assets\Scripts\Editor\MapSpawn\MapSpawnShowGizmos.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="Assets\Scripts\Editor\Game.Editor.asmdef" /> <None Include="Assets\Scripts\Editor\Game.Editor.asmdef" />

View File

@ -63,7 +63,9 @@
<Compile Include="Assets\Scripts\Main\Definition\DataStruct\Role\RoleType.cs" /> <Compile Include="Assets\Scripts\Main\Definition\DataStruct\Role\RoleType.cs" />
<Compile Include="Assets\Scripts\Main\Event\BattleEvent\AttackHitEventArgs.cs" /> <Compile Include="Assets\Scripts\Main\Event\BattleEvent\AttackHitEventArgs.cs" />
<Compile Include="Assets\Scripts\Main\UI\UIMgr\Tips\Tips.cs" /> <Compile Include="Assets\Scripts\Main\UI\UIMgr\Tips\Tips.cs" />
<Compile Include="Assets\Scripts\Main\CustomsComponent\NoMonoBehaviour\INoMonoBehaviour.cs" />
<Compile Include="Assets\Scripts\Main\Procedure\ProcedureInitRole.cs" /> <Compile Include="Assets\Scripts\Main\Procedure\ProcedureInitRole.cs" />
<Compile Include="Assets\Scripts\Main\UI\Map\ScenesTipsUI.cs" />
<Compile Include="Assets\Scripts\Main\AnimeScript\anime_OnceAttack.cs" /> <Compile Include="Assets\Scripts\Main\AnimeScript\anime_OnceAttack.cs" />
<Compile Include="Assets\Scripts\Main\Luban\LubanLib\ByteBuf.cs" /> <Compile Include="Assets\Scripts\Main\Luban\LubanLib\ByteBuf.cs" />
<Compile Include="Assets\Scripts\Main\Battle\AttackBox.cs" /> <Compile Include="Assets\Scripts\Main\Battle\AttackBox.cs" />
@ -77,6 +79,7 @@
<Compile Include="Assets\Scripts\Main\Definition\Enums\NodeType.cs" /> <Compile Include="Assets\Scripts\Main\Definition\Enums\NodeType.cs" />
<Compile Include="Assets\Scripts\Main\Definition\DataStruct\Role\RoleData.cs" /> <Compile Include="Assets\Scripts\Main\Definition\DataStruct\Role\RoleData.cs" />
<Compile Include="Assets\Scripts\Main\EffectObj\RoleFastShadow.cs" /> <Compile Include="Assets\Scripts\Main\EffectObj\RoleFastShadow.cs" />
<Compile Include="Assets\Scripts\Main\UI\Battle\HPDamageShowUnit.cs" />
<Compile Include="Assets\Scripts\Main\UI\UIMgr\Tips\TipHintUnit.cs" /> <Compile Include="Assets\Scripts\Main\UI\UIMgr\Tips\TipHintUnit.cs" />
<Compile Include="Assets\Scripts\Main\CustomsComponent\MainPlayerComponent.cs" /> <Compile Include="Assets\Scripts\Main\CustomsComponent\MainPlayerComponent.cs" />
<Compile Include="Assets\Scripts\Main\Role\MainRole.cs" /> <Compile Include="Assets\Scripts\Main\Role\MainRole.cs" />
@ -84,16 +87,25 @@
<Compile Include="Assets\Scripts\Main\Definition\DataStruct\Input\InputMotionData.cs" /> <Compile Include="Assets\Scripts\Main\Definition\DataStruct\Input\InputMotionData.cs" />
<Compile Include="Assets\Scripts\Main\UI\Native\NativeUpdateUI.cs" /> <Compile Include="Assets\Scripts\Main\UI\Native\NativeUpdateUI.cs" />
<Compile Include="Assets\Scripts\Main\Event\RoleEvent\RoleDeadEventArgs.cs" /> <Compile Include="Assets\Scripts\Main\Event\RoleEvent\RoleDeadEventArgs.cs" />
<Compile Include="Assets\Scripts\Main\Definition\ScriptableObject\MapMonsterCfg.cs" />
<Compile Include="Assets\Scripts\Main\ObjPool\PrefabPoolForPath.cs" />
<Compile Include="Assets\Scripts\Main\UI\UIMgr\UIBase.cs" /> <Compile Include="Assets\Scripts\Main\UI\UIMgr\UIBase.cs" />
<Compile Include="Assets\Scripts\Main\Definition\ScriptableObject\BulletGroupCfg.cs" />
<Compile Include="Assets\Scripts\Main\Base\AppEntry.Custom.cs" /> <Compile Include="Assets\Scripts\Main\Base\AppEntry.Custom.cs" />
<Compile Include="Assets\Scripts\Main\Definition\Enums\ErrorTipsType.cs" /> <Compile Include="Assets\Scripts\Main\Definition\Enums\ErrorTipsType.cs" />
<Compile Include="Assets\Scripts\Main\UI\UIMgr\UnitPool.cs" /> <Compile Include="Assets\Scripts\Main\UI\UIMgr\UnitPool.cs" />
<Compile Include="Assets\Scripts\Main\Map\SpawnPoint\MapSpawnShow.cs" />
<Compile Include="Assets\Scripts\Main\Procedure\ProcedureCheckVersion.cs" /> <Compile Include="Assets\Scripts\Main\Procedure\ProcedureCheckVersion.cs" />
<Compile Include="Assets\Scripts\Main\CustomsComponent\NoMonoComponent.cs" />
<Compile Include="Assets\Scripts\Main\UI\MainUI\PlayMotionHistoryUI.cs" />
<Compile Include="Assets\Scripts\Main\Event\MainPlayerInput\MainPlayerJumpStateEventArgs.cs" />
<Compile Include="Assets\Scripts\Main\AnimeScript\anime_JumpState.cs" />
<Compile Include="Assets\Scripts\Main\UI\Touch\TouchButtonEffectUI.cs" /> <Compile Include="Assets\Scripts\Main\UI\Touch\TouchButtonEffectUI.cs" />
<Compile Include="Assets\Scripts\Main\Luban\LubanLib\ByteBufExtensions.cs" /> <Compile Include="Assets\Scripts\Main\Luban\LubanLib\ByteBufExtensions.cs" />
<Compile Include="Assets\Scripts\Main\UI\UIMgr\Inform.cs" /> <Compile Include="Assets\Scripts\Main\UI\UIMgr\Inform.cs" />
<Compile Include="Assets\Scripts\Main\Event\MainPlayerInput\MainPlayerOnceAttackEventArgs.cs" /> <Compile Include="Assets\Scripts\Main\Event\MainPlayerInput\MainPlayerOnceAttackEventArgs.cs" />
<Compile Include="Assets\Scripts\Main\UI\UIMgr\UIAutoClose.cs" /> <Compile Include="Assets\Scripts\Main\UI\UIMgr\UIAutoClose.cs" />
<Compile Include="Assets\Scripts\Main\UI\MainUI\InGameMainMenuUI.cs" />
<Compile Include="Assets\Scripts\Main\Definition\DataStruct\BuildInfo.cs" /> <Compile Include="Assets\Scripts\Main\Definition\DataStruct\BuildInfo.cs" />
<Compile Include="Assets\Scripts\Main\CustomCom\ShapeImage.cs" /> <Compile Include="Assets\Scripts\Main\CustomCom\ShapeImage.cs" />
<Compile Include="Assets\Scripts\Main\Role\RoleBase.cs" /> <Compile Include="Assets\Scripts\Main\Role\RoleBase.cs" />
@ -104,8 +116,11 @@
<Compile Include="Assets\Scripts\Main\UI\UIMgr\Tips\TipWaitUnit.cs" /> <Compile Include="Assets\Scripts\Main\UI\UIMgr\Tips\TipWaitUnit.cs" />
<Compile Include="Assets\Scripts\Main\LubanTables\item\EQuality.cs" /> <Compile Include="Assets\Scripts\Main\LubanTables\item\EQuality.cs" />
<Compile Include="Assets\Scripts\Main\Definition\DataStruct\Input\SnapshotData.cs" /> <Compile Include="Assets\Scripts\Main\Definition\DataStruct\Input\SnapshotData.cs" />
<Compile Include="Assets\Scripts\Main\CustomsComponent\NoMonoBehaviour\BulletMgrNoMono.cs" />
<Compile Include="Assets\Scripts\Main\Procedure\ProcedureScenesLoad.cs" /> <Compile Include="Assets\Scripts\Main\Procedure\ProcedureScenesLoad.cs" />
<Compile Include="Assets\Scripts\Main\Event\BattleEvent\HPMPChangeEventArgs.cs" />
<Compile Include="Assets\Scripts\Main\Event\RoleEvent\RoleDeadAnimeEndEventArgs.cs" /> <Compile Include="Assets\Scripts\Main\Event\RoleEvent\RoleDeadAnimeEndEventArgs.cs" />
<Compile Include="Assets\Scripts\Main\UI\MainUI\MainUI.cs" />
<Compile Include="Assets\Scripts\Main\LubanTables\Tables.cs" /> <Compile Include="Assets\Scripts\Main\LubanTables\Tables.cs" />
<Compile Include="Assets\Scripts\Main\CustomsComponent\MapComponent.cs" /> <Compile Include="Assets\Scripts\Main\CustomsComponent\MapComponent.cs" />
<Compile Include="Assets\Scripts\Main\LubanTables\Config\ConstCfg.cs" /> <Compile Include="Assets\Scripts\Main\LubanTables\Config\ConstCfg.cs" />
@ -115,12 +130,13 @@
<Compile Include="Assets\Scripts\Main\Procedure\ProcedureUpdateVersion.cs" /> <Compile Include="Assets\Scripts\Main\Procedure\ProcedureUpdateVersion.cs" />
<Compile Include="Assets\Scripts\Main\Event\MainPlayerInput\MainPlayerPushNewMotionEventArgs.cs" /> <Compile Include="Assets\Scripts\Main\Event\MainPlayerInput\MainPlayerPushNewMotionEventArgs.cs" />
<Compile Include="Assets\Scripts\Main\Camera\CameraShake.cs" /> <Compile Include="Assets\Scripts\Main\Camera\CameraShake.cs" />
<Compile Include="Assets\Scripts\Main\CustomsComponent\EffectMgrComponent.cs" /> <Compile Include="Assets\Scripts\Main\CustomsComponent\NoMonoBehaviour\EffectNoMono.cs" />
<Compile Include="Assets\Scripts\Main\CustomsComponent\BattleMgrComponent.cs" /> <Compile Include="Assets\Scripts\Main\CustomsComponent\NoMonoBehaviour\BattleNoMono.cs" />
<Compile Include="Assets\Scripts\Main\LocalStorage\LocalStorage.cs" /> <Compile Include="Assets\Scripts\Main\LocalStorage\LocalStorage.cs" />
<Compile Include="Assets\Scripts\Main\CustomsComponent\LubanComponent.cs" /> <Compile Include="Assets\Scripts\Main\CustomsComponent\NoMonoBehaviour\LubanNoMono.cs" />
<Compile Include="Assets\Scripts\Main\CustomsComponent\NoMonoBehaviour\NoMono.cs" />
<Compile Include="Assets\Scripts\Main\UI\UIMgr\Tips\TipsUI.cs" /> <Compile Include="Assets\Scripts\Main\UI\UIMgr\Tips\TipsUI.cs" />
<Compile Include="Assets\Scripts\Main\CustomsComponent\RoleMgrComponent.cs" /> <Compile Include="Assets\Scripts\Main\CustomsComponent\NoMonoBehaviour\RoleMgrNoMono.cs" />
<Compile Include="Assets\Scripts\Main\Luban\LubanLib\StringUtil.cs" /> <Compile Include="Assets\Scripts\Main\Luban\LubanLib\StringUtil.cs" />
<Compile Include="Assets\Scripts\Main\Definition\Enums\BattleResultFlag.cs" /> <Compile Include="Assets\Scripts\Main\Definition\Enums\BattleResultFlag.cs" />
<Compile Include="Assets\Scripts\Main\UI\UIYYControl\UIEfxGradient.cs" /> <Compile Include="Assets\Scripts\Main\UI\UIYYControl\UIEfxGradient.cs" />
@ -143,14 +159,14 @@
<Compile Include="Assets\Scripts\Main\Procedure\ProcedureSplash.cs" /> <Compile Include="Assets\Scripts\Main\Procedure\ProcedureSplash.cs" />
<Compile Include="Assets\Scripts\Main\Definition\DataStruct\Role\S_ROLE_DATA_BASE.cs" /> <Compile Include="Assets\Scripts\Main\Definition\DataStruct\Role\S_ROLE_DATA_BASE.cs" />
<Compile Include="Assets\Scripts\Main\UI\UIYYControl\UIPolygon.cs" /> <Compile Include="Assets\Scripts\Main\UI\UIYYControl\UIPolygon.cs" />
<Compile Include="Assets\Scripts\Main\AnimeScript\anime_CamerShake.cs" />
<Compile Include="Assets\Scripts\Main\Base\AppEntry.cs" /> <Compile Include="Assets\Scripts\Main\Base\AppEntry.cs" />
<Compile Include="Assets\Scripts\Main\BuiltinData\BuiltinDataComponent.cs" /> <Compile Include="Assets\Scripts\Main\BuiltinData\BuiltinDataComponent.cs" />
<Compile Include="Assets\Scripts\Main\UI\UIMgr\Tips\TipChoiceUnit.cs" /> <Compile Include="Assets\Scripts\Main\UI\UIMgr\Tips\TipChoiceUnit.cs" />
<Compile Include="Assets\Scripts\Main\CustomsComponent\ResourcesComponent.cs" /> <Compile Include="Assets\Scripts\Main\CustomsComponent\ResourcesComponent.cs" />
<Compile Include="Assets\Scripts\Main\CustomsComponent\InputComponent.cs" /> <Compile Include="Assets\Scripts\Main\CustomsComponent\NoMonoBehaviour\InputNoMono.cs" />
<Compile Include="Assets\Scripts\Main\UI\UIMgr\UIAutoAdjustWidth.cs" /> <Compile Include="Assets\Scripts\Main\UI\UIMgr\UIAutoAdjustWidth.cs" />
<Compile Include="Assets\Scripts\Main\Procedure\ProcedureInitSystem.cs" /> <Compile Include="Assets\Scripts\Main\Procedure\ProcedureInitSystem.cs" />
<Compile Include="Assets\Scripts\Main\UI\MainUI\MainUI.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="Assets\Scripts\Main\Game.asmdef" /> <None Include="Assets\Scripts\Main\Game.asmdef" />