From 2fa67922f08ef39b4d70bad001592aedf22c9018 Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 8 Sep 2021 19:18:57 +0800 Subject: *misc --- Assets/Scripts/Unit/AI.meta | 8 +++ Assets/Scripts/Unit/AI/Actions.meta | 8 +++ Assets/Scripts/Unit/AI/Conditionals.meta | 8 +++ Assets/Scripts/Unit/Collider/CollisionSystem.cs | 2 +- .../Unit/Components/UnitAnimation/PCAnimation.cs | 29 ++++++---- Assets/Scripts/Unit/Components/UnitCollider.cs | 2 +- .../Unit/Components/UnitState/MonsterState.cs | 1 + .../Scripts/Unit/Components/UnitState/PCState.cs | 64 +++++++++++++++++++--- Assets/Scripts/Unit/UnitRootMotion.cs | 5 +- 9 files changed, 105 insertions(+), 22 deletions(-) create mode 100644 Assets/Scripts/Unit/AI.meta create mode 100644 Assets/Scripts/Unit/AI/Actions.meta create mode 100644 Assets/Scripts/Unit/AI/Conditionals.meta (limited to 'Assets/Scripts/Unit') diff --git a/Assets/Scripts/Unit/AI.meta b/Assets/Scripts/Unit/AI.meta new file mode 100644 index 00000000..e64e1ff9 --- /dev/null +++ b/Assets/Scripts/Unit/AI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5167b72d3e56949419ac4e7b10def160 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Unit/AI/Actions.meta b/Assets/Scripts/Unit/AI/Actions.meta new file mode 100644 index 00000000..9b4ad463 --- /dev/null +++ b/Assets/Scripts/Unit/AI/Actions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 971e9d55b8bc0894eb6a110fb962000b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Unit/AI/Conditionals.meta b/Assets/Scripts/Unit/AI/Conditionals.meta new file mode 100644 index 00000000..70a86da5 --- /dev/null +++ b/Assets/Scripts/Unit/AI/Conditionals.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 85b7e0c7ed1d12f42a5178bfbf3d934c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Unit/Collider/CollisionSystem.cs b/Assets/Scripts/Unit/Collider/CollisionSystem.cs index 4a73446f..83052073 100644 --- a/Assets/Scripts/Unit/Collider/CollisionSystem.cs +++ b/Assets/Scripts/Unit/Collider/CollisionSystem.cs @@ -205,7 +205,7 @@ public static class ColliderUtility Vector3 fac = new Vector3(1, 1, collider.unitCollider.owner.transform.forward.normalized == Vector3.forward ? 1 : -1); Vector3 unitPos = collider.unitCollider.owner.transform.position; Vector3 pos = Vector3.zero; // gizmo位置 - Vector3 localPos = collider.colliderInfo.position; + Vector3 localPos = collider.unitCollider.owner.transform.rotation * collider.colliderInfo.position; Vector3 localSize = collider.colliderInfo.size; var pivot = collider.colliderInfo.pivot; switch (pivot) diff --git a/Assets/Scripts/Unit/Components/UnitAnimation/PCAnimation.cs b/Assets/Scripts/Unit/Components/UnitAnimation/PCAnimation.cs index 8d737277..ac2649b7 100644 --- a/Assets/Scripts/Unit/Components/UnitAnimation/PCAnimation.cs +++ b/Assets/Scripts/Unit/Components/UnitAnimation/PCAnimation.cs @@ -46,17 +46,19 @@ public class PCAnimation : UnitAnimation Turn, Landing, - AirAttack0, - AirAttack1, - AirAttack2, - AirAttack3, - Attack0, Attack1, Attack2, - Attack3, - - AirDash, + Attack3, + + AttackToAir, + + AirAttack0, + AirAttack1, + AirAttack2, + AirAttack3, + + AirDash, LandingGround, } @@ -174,7 +176,14 @@ public class PCAnimation : UnitAnimation } } - public void AnimAttack(int id) + public void AnimAttackToAir(float offset) + { + m_Owner.unitCollider.OnAnimationChange(); + Play(EAnimState.AttackToAir, offset); + } + + + public void AnimAttack(int id) { m_Owner.unitCollider.OnAnimationChange(); switch (id) @@ -216,7 +225,7 @@ public class PCAnimation : UnitAnimation CrossFade(EAnimState.LandingGround, 0.00f); } - private void Play(EAnimState animState, int layerIndex = 0, float normalizedTime = float.NegativeInfinity) + private void Play(EAnimState animState, float normalizedTime = float.NegativeInfinity, int layerIndex = 0) { base.Play(animState.ToString(), layerIndex, normalizedTime); } diff --git a/Assets/Scripts/Unit/Components/UnitCollider.cs b/Assets/Scripts/Unit/Components/UnitCollider.cs index 797eb480..3fd9a6dc 100644 --- a/Assets/Scripts/Unit/Components/UnitCollider.cs +++ b/Assets/Scripts/Unit/Components/UnitCollider.cs @@ -102,7 +102,7 @@ public class UnitCollider : UnitComponent var box = boxes[i]; if (!box.isValid) continue; - Vector3 localPos = box.position; + Vector3 localPos = m_Owner.transform.rotation * box.position; Vector3 localSize = box.size; var pivot = box.pivot; Vector3 pos = Vector3.zero; // gizmo位置 diff --git a/Assets/Scripts/Unit/Components/UnitState/MonsterState.cs b/Assets/Scripts/Unit/Components/UnitState/MonsterState.cs index 1dba2b7d..db68493b 100644 --- a/Assets/Scripts/Unit/Components/UnitState/MonsterState.cs +++ b/Assets/Scripts/Unit/Components/UnitState/MonsterState.cs @@ -132,6 +132,7 @@ public class MonsterState : UnitState IEnumerator HitAir(HitAirParam param) { + ((MonsterController)owner).FacePC(); m_Owner.monsterAnimation.AnimHitAir(); yield return null; while (true) diff --git a/Assets/Scripts/Unit/Components/UnitState/PCState.cs b/Assets/Scripts/Unit/Components/UnitState/PCState.cs index e448b6b2..c8937895 100644 --- a/Assets/Scripts/Unit/Components/UnitState/PCState.cs +++ b/Assets/Scripts/Unit/Components/UnitState/PCState.cs @@ -20,6 +20,7 @@ public class PCState : UnitState // Attack, AirAttack, + AttackToAir, AirDash, // HitAir, @@ -66,7 +67,7 @@ public class PCState : UnitState public struct SkillParam { - + public float offset; } public struct AirDashParam @@ -153,7 +154,11 @@ public class PCState : UnitState { ChangeState(EUnitState.Attack, new SkillParam()); } - if (Input.GetKeyDown("space")) + if(Input.GetKeyDown("u")) + { + ChangeState(EUnitState.AttackToAir, new SkillParam()); + } + if (Input.GetKeyDown("space")) { ChangeState(EUnitState.Jump, new JumpParam()); } @@ -221,8 +226,19 @@ public class PCState : UnitState yield return null; while (true) { - bool canCombo = m_Owner.pcAnimation.baseLayer.IsToggleOpen(EAnimationToogle.Combo); - if (canCombo && id < total) + bool canCombo = m_Owner.pcAnimation.baseLayer.IsToggleOpen(EAnimationToogle.Combo); + if (canCombo) + { + //if (InputManager.Instance.TryCommand(0.5f, KeyCode.W, KeyCode.J)) + if (Input.GetKeyDown("u")) + { + SkillParam skill = new SkillParam(); + skill.offset = 0.12f; + ChangeState(EUnitState.AttackToAir, skill); + } + } + + if (canCombo && id < total) { if (Input.GetKeyDown("j")) { @@ -252,12 +268,44 @@ public class PCState : UnitState void OnAttackExit(EUnitState next) { - } - + } + #endregion - + + #region AttackToAir + + IEnumerator AttackToAir(SkillParam param) + { + m_Owner.pcAnimation.AnimAttackToAir(param.offset); + yield return null; + while (true) + { + bool canCombo = m_Owner.pcAnimation.baseLayer.IsToggleOpen(EAnimationToogle.Combo); + if(canCombo) + { + if(Input.GetKeyDown("j")) + { + ChangeState(EUnitState.AirAttack, new SkillParam()); + } + } + + bool reachEnd = m_Owner.pcAnimation.baseLayer.playbackNormalizedTime == 1; + if (reachEnd) + { + ChangeState(EUnitState.Landing, new LandingParam()); + } + yield return null; + } + } + + void OnAttackToAirExit() + { + } + + #endregion + #region AirAttack - + IEnumerator AirAttack(SkillParam param) { int id = 0; diff --git a/Assets/Scripts/Unit/UnitRootMotion.cs b/Assets/Scripts/Unit/UnitRootMotion.cs index 5a17da61..caf59d7c 100644 --- a/Assets/Scripts/Unit/UnitRootMotion.cs +++ b/Assets/Scripts/Unit/UnitRootMotion.cs @@ -94,7 +94,8 @@ public class UnitRootMotion : UnitComponent m_PrevFrame = frame; } Vector3 dest = rmData.GetRootMotionDistance(m_PrevFrame, frame); - m_Owner.transform.position += dest; + Vector3 realDest = m_Owner.transform.rotation * dest; + m_Owner.transform.position += realDest; m_PrevFrame = frame; } else @@ -114,4 +115,4 @@ public class UnitRootMotion : UnitComponent #endif -} +} \ No newline at end of file -- cgit v1.1-26-g67d0