From 0fdb81ffb2af8c39cfd611f485d46f3341206832 Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 9 Nov 2020 16:03:45 +0800 Subject: * HitManager --- Assets/Scripts/ApplicationMain.cs | 27 +++-- Assets/Scripts/Avatar/Abilities/AbilityBase.cs | 6 +- Assets/Scripts/Avatar/Abilities/AttackAbility.cs | 65 ++++++------ Assets/Scripts/Avatar/Abilities/JumpAbility.cs | 4 +- Assets/Scripts/Avatar/Abilities/UberAbility.cs | 2 +- Assets/Scripts/Avatar/AbilitySystem.cs | 30 +++--- Assets/Scripts/Avatar/Avatar.cs | 73 +++++--------- Assets/Scripts/Avatar/HitInfo.cs | 19 ++-- Assets/Scripts/Avatar/Hitbox.cs | 33 +++++++ Assets/Scripts/Avatar/Hitbox.cs.meta | 11 +++ Assets/Scripts/Avatar/Hurtbox.cs | 33 +++++++ Assets/Scripts/Avatar/Hurtbox.cs.meta | 11 +++ Assets/Scripts/Avatar/IInteractable.cs | 6 +- Assets/Scripts/Managers/AvatarManager.cs | 4 +- Assets/Scripts/Managers/HitManager.cs | 121 +++++++++++++++++++++++ Assets/Scripts/Managers/HitManager.cs.meta | 11 +++ Assets/Scripts/Physics/PhysicsWorld.cs | 16 +-- Assets/Scripts/Props.meta | 8 ++ Assets/Scripts/Scene.meta | 8 ++ Assets/Scripts/Test/ArmorSoldierScript.cs | 7 ++ Assets/Scripts/Test/SaionjiScript.cs | 10 ++ Assets/Scripts/Test/SaionjiUberAbility.cs | 2 +- 22 files changed, 374 insertions(+), 133 deletions(-) create mode 100644 Assets/Scripts/Avatar/Hitbox.cs create mode 100644 Assets/Scripts/Avatar/Hitbox.cs.meta create mode 100644 Assets/Scripts/Avatar/Hurtbox.cs create mode 100644 Assets/Scripts/Avatar/Hurtbox.cs.meta create mode 100644 Assets/Scripts/Managers/HitManager.cs create mode 100644 Assets/Scripts/Managers/HitManager.cs.meta create mode 100644 Assets/Scripts/Props.meta create mode 100644 Assets/Scripts/Scene.meta diff --git a/Assets/Scripts/ApplicationMain.cs b/Assets/Scripts/ApplicationMain.cs index 81ac453c..2c310e9b 100644 --- a/Assets/Scripts/ApplicationMain.cs +++ b/Assets/Scripts/ApplicationMain.cs @@ -4,30 +4,37 @@ using UnityEngine; public class ApplicationMain : MonoBehaviour { - // Start is called before the first frame update void Start() { InputManager.Instance.Init(); - PhysicsWorld.Instance.Init(); + PhysicsWorld.Instance.Init(); + + PhysicsWorld.Instance.onUpdate += OnPhysicsUpdate; + PhysicsWorld.Instance.onAfterUpdate += OnAfterPhysicsUpdate; } - // Update is called once per frame void Update() { InputManager.Instance.Update(); AvatarManager.Instance.OnUpdate(); + + PhysicsWorld.Instance.Update(); } - private void LateUpdate() + void OnPhysicsUpdate() { - PhysicsWorld.Instance.Update(); - AvatarManager.Instance.OnLateUpdate(); - } - - private void OnDrawGizmos() + HitManager.Instance.OnPhysicsUpdate(); + AvatarManager.Instance.OnPhysicsUpdate(); + } + + void OnAfterPhysicsUpdate() + { + + } + + private void OnDrawGizmos() { PhysicsWorld.Instance.DrawGizmos(); } - } \ No newline at end of file diff --git a/Assets/Scripts/Avatar/Abilities/AbilityBase.cs b/Assets/Scripts/Avatar/Abilities/AbilityBase.cs index 28f0e8d6..c8c09a6b 100644 --- a/Assets/Scripts/Avatar/Abilities/AbilityBase.cs +++ b/Assets/Scripts/Avatar/Abilities/AbilityBase.cs @@ -41,7 +41,7 @@ public abstract class AbilityBase /// /// 在物理模拟之后更新 /// - public virtual void OnLateUpdate() { } + public virtual void OnPhysicsUpdate() { } /// /// 过渡到下一个ability的回调 @@ -52,12 +52,12 @@ public abstract class AbilityBase /// /// 检测到hitbox碰撞时的回调 /// - public virtual void OnHit(PhysicsCollisionInfo info) { } + public virtual void OnHit(HitInfo info) { } /// /// 检测到hurtbox碰撞时的回调 /// - public virtual void OnHurt(PhysicsCollisionInfo info) { } + public virtual void OnHurt(HurtInfo info) { } /// /// 检测到defendbox碰撞时的回调 diff --git a/Assets/Scripts/Avatar/Abilities/AttackAbility.cs b/Assets/Scripts/Avatar/Abilities/AttackAbility.cs index 5a200cf8..6e7c503f 100644 --- a/Assets/Scripts/Avatar/Abilities/AttackAbility.cs +++ b/Assets/Scripts/Avatar/Abilities/AttackAbility.cs @@ -17,12 +17,12 @@ public class AttackAbility : AbilityBase private List m_Triggers = new List(); - private List m_LateTriggers = new List(); + private List m_PhysicsTriggers = new List(); /// - /// 这个招式产生的hit + /// 这个招式配置的hit /// - private List m_HitInfo = new List(); + private List m_Hits = new List(); /// /// 从动画结束开始计时 @@ -43,7 +43,7 @@ public class AttackAbility : AbilityBase { get { - return m_HitInfo != null ? m_HitInfo.Count : 0; + return m_Hits != null ? m_Hits.Count : 0; } } @@ -81,7 +81,7 @@ public class AttackAbility : AbilityBase m_Config.body.LocalVelocity = m_Config.velocity; } - foreach(var hit in m_HitInfo) + foreach(var hit in m_Hits) { hit.WipeRecords(); } @@ -97,30 +97,11 @@ public class AttackAbility : AbilityBase m_TimeCount = 0; } - public override void OnHit(PhysicsCollisionInfo info) + public override void OnHit(HitInfo info) { - Avatar avatar = info.prim2.GetComponentInParent(); - if (avatar == null) - return; - for (int i = 0; i < m_HitInfo.Count; ++i) - { - HitInfo hitInfo = m_HitInfo[i]; - if(!hitInfo.HasRecord(avatar)) - { - hitInfo.AddRecord(avatar); - Debug.Log("hit " + avatar.Name); - PhysicsBody body = avatar.Body; - body.SetLocalForce(new Vector3(-1000, 5000, 0)); - if(avatar is ArmorSoldierScript) - { - ArmorSoldierScript solider = avatar as ArmorSoldierScript; - solider.Hurt(); - } - } - } } - public override void OnHurt(PhysicsCollisionInfo info) + public override void OnHurt(HurtInfo info) { } @@ -143,9 +124,9 @@ public class AttackAbility : AbilityBase } // 在物理模拟之后 - public override void OnLateUpdate() + public override void OnPhysicsUpdate() { - foreach (var trigger in m_LateTriggers) + foreach (var trigger in m_PhysicsTriggers) { if (trigger.Update() && trigger.Swallow) break; @@ -159,18 +140,36 @@ public class AttackAbility : AbilityBase m_Triggers.Add(trigger); } - public void AddLateTrigger(Trigger trigger) + public void AddPhysicsTrigger(Trigger trigger) { - if (trigger == null || m_LateTriggers.Contains(trigger)) + if (trigger == null || m_PhysicsTriggers.Contains(trigger)) return; - m_LateTriggers.Add(trigger); + m_PhysicsTriggers.Add(trigger); } public void AddHitDefination(HitDefination defination) { - HitInfo info = new HitInfo(); + Hit info = new Hit(); info.defination = defination; - m_HitInfo.Add(info); + m_Hits.Add(info); + } + + // 获得当前时间点产生的hit + public Hit GetHit() + { + AnimatorStateInfo info = m_Config.animator.GetCurrentAnimatorStateInfo(0); + float normalizeTime = info.normalizedTime; + for (int i = 0; i< m_Hits.Count; ++i) + { + Hit hit = m_Hits[i]; + float start = hit.defination.start; + float end = hit.defination.end; + if(normalizeTime >= start && normalizeTime <= end) + { + return hit; + } + } + return null; } } diff --git a/Assets/Scripts/Avatar/Abilities/JumpAbility.cs b/Assets/Scripts/Avatar/Abilities/JumpAbility.cs index b83e8cfb..5c2d6366 100644 --- a/Assets/Scripts/Avatar/Abilities/JumpAbility.cs +++ b/Assets/Scripts/Avatar/Abilities/JumpAbility.cs @@ -208,9 +208,9 @@ public class JumpAbility : AbilityBase } } - public override void OnLateUpdate() + public override void OnPhysicsUpdate() { - base.OnLateUpdate(); + base.OnPhysicsUpdate(); } /// diff --git a/Assets/Scripts/Avatar/Abilities/UberAbility.cs b/Assets/Scripts/Avatar/Abilities/UberAbility.cs index 0a5bb8c5..ca2e7c06 100644 --- a/Assets/Scripts/Avatar/Abilities/UberAbility.cs +++ b/Assets/Scripts/Avatar/Abilities/UberAbility.cs @@ -7,6 +7,6 @@ public abstract class UberAbility : AbilityBase { public abstract void OnUpdate(); - public abstract void OnLateUpdate(); + public abstract void OnPhysicsUpdate(); } diff --git a/Assets/Scripts/Avatar/AbilitySystem.cs b/Assets/Scripts/Avatar/AbilitySystem.cs index 3e2ab838..9d289884 100644 --- a/Assets/Scripts/Avatar/AbilitySystem.cs +++ b/Assets/Scripts/Avatar/AbilitySystem.cs @@ -62,31 +62,26 @@ public class AbilitySystem } } - public void OnLateUpdate() + public void OnPhysicsUpdate() { if(m_Currrent != null) { - m_Currrent.OnLateUpdate(); + m_Currrent.OnPhysicsUpdate(); } if(m_UberAbility != null) { - m_UberAbility.OnLateUpdate(); + m_UberAbility.OnPhysicsUpdate(); } } - public void OnHit(PhysicsCollisionInfo info) + public void OnHit(HitInfo info) { - if(m_Currrent != null) - { - m_Currrent.OnHit(info); - } + } - public void OnHurt(PhysicsCollisionInfo info) + + public void OnHurt(HurtInfo info) { - if (m_Currrent != null) - { - m_Currrent.OnHurt(info); - } + } public void SwitchToAbility(AbilityBase targetAbility) @@ -97,4 +92,13 @@ public class AbilitySystem m_Currrent.OnEnter(); } + // 获得当前击打如果有的话 + public Hit GetHit() + { + if (Current == null || !(Current is AttackAbility)) + return null; + AttackAbility ability = Current as AttackAbility; + return ability.GetHit(); + } + } \ No newline at end of file diff --git a/Assets/Scripts/Avatar/Avatar.cs b/Assets/Scripts/Avatar/Avatar.cs index 928d2197..dc6c7858 100644 --- a/Assets/Scripts/Avatar/Avatar.cs +++ b/Assets/Scripts/Avatar/Avatar.cs @@ -13,8 +13,8 @@ public class Avatar : MonoBehaviour, IInteractable // 一个角色包括一个身体的collider和若干hitbox和hurtbox public PhysicsBody m_Body; public PhysicsBox m_BodyCollider; - public PhysicsBox[] m_Hitbox; - public PhysicsBox[] m_Hurtbox; + public Hitbox[] m_Hitbox; + public Hurtbox[] m_Hurtbox; protected AbilitySystem m_AbilitySystem = new AbilitySystem(); @@ -55,7 +55,7 @@ public class Avatar : MonoBehaviour, IInteractable { for (int i = 0; i < m_Hitbox.Length; ++i) { - if (PhysicsWorld.Instance.HasCollision(m_Hitbox[i])) + if (PhysicsWorld.Instance.HasCollision(m_Hitbox[i].Collider)) { return true; } @@ -67,7 +67,7 @@ public class Avatar : MonoBehaviour, IInteractable { for (int i = 0; i < m_Hitbox.Length; ++i) { - if (PhysicsWorld.Instance.HasCollision(m_Hurtbox[i])) + if (PhysicsWorld.Instance.HasCollision(m_Hurtbox[i].Collider)) { return true; } @@ -81,54 +81,9 @@ public class Avatar : MonoBehaviour, IInteractable } // 在物理模拟之后调用 - public void OnLateUpdate() + public void OnPhysicsUpdate() { - // hitbox - for(int i = 0;i < m_Hitbox.Length; ++i) - { - PhysicsBox hitbox = m_Hitbox[i]; - if (hitbox == null || !hitbox.IsActive) - continue; - for(int j = 0;j < PhysicsWorld.Instance.Collisions.Count; ++j) - { - PhysicsCollisionInfo info = PhysicsWorld.Instance.Collisions[j]; - if(info.prim1 == hitbox) - { - m_AbilitySystem.OnHit(info); - } - else if(info.prim2 == hitbox) - { - PhysicsPrimitive temp = info.prim1; - info.prim1 = info.prim2; - info.prim2 = temp; - m_AbilitySystem.OnHit(info); - } - } - } - // hurtbox - for (int i = 0; i < m_Hurtbox.Length; ++i) - { - PhysicsBox hurtbox = m_Hurtbox[i]; - if (hurtbox == null || !hurtbox.IsActive) - continue; - for (int j = 0; j < PhysicsWorld.Instance.Collisions.Count; ++j) - { - PhysicsCollisionInfo info = PhysicsWorld.Instance.Collisions[j]; - if (info.prim1 == hurtbox) - { - m_AbilitySystem.OnHurt(info); - } - else if(info.prim2 == hurtbox) - { - PhysicsPrimitive temp = info.prim1; - info.prim1 = info.prim2; - info.prim2 = temp; - m_AbilitySystem.OnHurt(info); - } - } - } - - m_AbilitySystem.OnLateUpdate(); + m_AbilitySystem.OnPhysicsUpdate(); } public virtual Vector3 GetEffectPosition() @@ -136,4 +91,20 @@ public class Avatar : MonoBehaviour, IInteractable return Vector3.zero; } + // 获得当前击打如果有的话 + public Hit GetHit() + { + return m_AbilitySystem.GetHit(); + } + + public virtual void OnHit(HitInfo hitInfo) + { + Debug.Log("Hit"); + } + + public virtual void OnHurt(HurtInfo hurtInfo) + { + Debug.Log("Hurt"); + } + } diff --git a/Assets/Scripts/Avatar/HitInfo.cs b/Assets/Scripts/Avatar/HitInfo.cs index 8d24f6ee..aef9a03f 100644 --- a/Assets/Scripts/Avatar/HitInfo.cs +++ b/Assets/Scripts/Avatar/HitInfo.cs @@ -2,19 +2,22 @@ using System.Collections.Generic; using UnityEngine; -public class HitInfo +/// +/// 每个招式配置的单个hit数据 +/// +public class Hit { public HitDefination defination; /// - /// 记录这个hit命中的avatar + /// 记录这个hit命中的avatar,避免连续击中 /// - private List m_HitAvatars = new List(); + private List m_HitAvatars = new List(); - public void AddRecord(Avatar avatar) + public void AddRecord(IInteractable interactable) { - if (!m_HitAvatars.Contains(avatar)) - m_HitAvatars.Add(avatar); + if (!m_HitAvatars.Contains(interactable)) + m_HitAvatars.Add(interactable); } // 招式结束后,清除记录的avatar @@ -23,9 +26,9 @@ public class HitInfo m_HitAvatars.Clear(); } - public bool HasRecord(Avatar avatar) + public bool HasRecord(IInteractable interactable) { - return m_HitAvatars.Contains(avatar); + return m_HitAvatars.Contains(interactable); } } diff --git a/Assets/Scripts/Avatar/Hitbox.cs b/Assets/Scripts/Avatar/Hitbox.cs new file mode 100644 index 00000000..5fd0cecf --- /dev/null +++ b/Assets/Scripts/Avatar/Hitbox.cs @@ -0,0 +1,33 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Hitbox : MonoBehaviour +{ + [SerializeField] + private PhysicsBox m_BoxCollider; + public PhysicsBox Collider + { + get + { + return m_BoxCollider; + } + } + + [SerializeField] + private MonoBehaviour m_Host ; + + public IInteractable Host + { + get + { + return m_Host as IInteractable; + } + } + + private void Awake() + { + HitManager.Instance.AddHitBox(this); + } + +} diff --git a/Assets/Scripts/Avatar/Hitbox.cs.meta b/Assets/Scripts/Avatar/Hitbox.cs.meta new file mode 100644 index 00000000..19075d69 --- /dev/null +++ b/Assets/Scripts/Avatar/Hitbox.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f763a2db7c267714f824ca6a69bec569 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/Hurtbox.cs b/Assets/Scripts/Avatar/Hurtbox.cs new file mode 100644 index 00000000..b5bd738f --- /dev/null +++ b/Assets/Scripts/Avatar/Hurtbox.cs @@ -0,0 +1,33 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Hurtbox : MonoBehaviour +{ + [SerializeField] + private PhysicsBox m_BoxCollider; + public PhysicsBox Collider + { + get { + return m_BoxCollider; + } + } + + [SerializeField] + private MonoBehaviour m_Host; + + public IInteractable Host + { + get + { + return m_Host as IInteractable; + } + } + + private void Awake() + { + HitManager.Instance.AddHurtBox(this); + } + + +} diff --git a/Assets/Scripts/Avatar/Hurtbox.cs.meta b/Assets/Scripts/Avatar/Hurtbox.cs.meta new file mode 100644 index 00000000..f0c2e2ff --- /dev/null +++ b/Assets/Scripts/Avatar/Hurtbox.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 154a74587976e25469eae9a4a8c7762b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/IInteractable.cs b/Assets/Scripts/Avatar/IInteractable.cs index 23e49912..7a648c6c 100644 --- a/Assets/Scripts/Avatar/IInteractable.cs +++ b/Assets/Scripts/Avatar/IInteractable.cs @@ -14,8 +14,10 @@ public interface IInteractable bool IsHit(); - bool IsHurt(); - + bool IsHurt(); + + void OnHit(HitInfo hitInfo); + void OnHurt(HurtInfo hurtInfo); } diff --git a/Assets/Scripts/Managers/AvatarManager.cs b/Assets/Scripts/Managers/AvatarManager.cs index 4cb3cb7f..6ccac62a 100644 --- a/Assets/Scripts/Managers/AvatarManager.cs +++ b/Assets/Scripts/Managers/AvatarManager.cs @@ -19,11 +19,11 @@ public class AvatarManager : Singleton } } - public void OnLateUpdate() + public void OnPhysicsUpdate() { foreach(var avatar in m_Avatars) { - avatar.OnLateUpdate(); + avatar.OnPhysicsUpdate(); } } diff --git a/Assets/Scripts/Managers/HitManager.cs b/Assets/Scripts/Managers/HitManager.cs new file mode 100644 index 00000000..dfa6530f --- /dev/null +++ b/Assets/Scripts/Managers/HitManager.cs @@ -0,0 +1,121 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public struct HitInfo +{ + public HitDefination hitDef; + public Hitbox hitbox; + public Hurtbox hurtbox; + public Vector3 contact; + public Vector3 size; +} + +public struct HurtInfo +{ + public HitDefination hitDef; + public Hitbox hitbox; + public Hurtbox hurtbox; + public Vector3 contact; + public Vector3 size; +} + +public class HitManager : Singleton +{ + private List m_HitBoxes = new List(); + private List m_HurtBoxes = new List(); + + public void AddHitBox(Hitbox hitbox) + { + m_HitBoxes.Add(hitbox); + } + + public void AddHurtBox(Hurtbox hurtbox) + { + m_HurtBoxes.Add(hurtbox); + } + + /// + /// 根据碰撞结果产生击中信息 + /// + public void OnPhysicsUpdate() + { + for(int i = 0;i < m_HitBoxes.Count; ++i) + { + Hitbox hitbox = m_HitBoxes[i]; + if (hitbox == null) + return; + for (int j = 0; j < PhysicsWorld.Instance.Collisions.Count; ++j) + { + PhysicsCollisionInfo info = PhysicsWorld.Instance.Collisions[j]; + PhysicsPrimitive collider; + if(info.prim1 == hitbox.Collider) + { + collider = info.prim2; + } + else if(info.prim2 == hitbox.Collider) + { + collider = info.prim1; + } + else + { + continue; + } + + Hurtbox hurtbox = GetHurtboxByCollider(collider); + if(hurtbox == null) + { + Debug.LogError("没有找到hurtbox"); + continue; + } + + HitDefination hitDef = null; + + if (hitbox.Host is Avatar) + { + Avatar attacker = hitbox.Host as Avatar; + Hit hit = attacker.GetHit(); + if(hit == null) + continue; + if (hit.HasRecord(hurtbox.Host)) + continue; + hit.AddRecord(hurtbox.Host); + hitDef = hit.defination; + } + + // 发送击中消息 + HitInfo hitInfo = new HitInfo (); + hitInfo.hitbox = hitbox; + hitInfo.hurtbox = hurtbox; + hitInfo.contact = info.contact; + hitInfo.size = info.size; + hitInfo.hitDef = hitDef; + + hitbox.Host.OnHit(hitInfo); + + // 发送受击消息 + HurtInfo hurtInfo = new HurtInfo(); + hurtInfo.hitbox = hitbox; + hurtInfo.hurtbox = hurtbox; + hurtInfo.contact = info.contact; + hurtInfo.size = info.size; + hurtInfo.hitDef = hitDef; + + hurtbox.Host.OnHurt(hurtInfo); + } + } + } + + Hurtbox GetHurtboxByCollider(PhysicsPrimitive collider) + { + foreach(var hurtbox in m_HurtBoxes) + { + if(hurtbox.Collider == collider) + { + return hurtbox; + } + } + return null; + } + +} diff --git a/Assets/Scripts/Managers/HitManager.cs.meta b/Assets/Scripts/Managers/HitManager.cs.meta new file mode 100644 index 00000000..dab849f7 --- /dev/null +++ b/Assets/Scripts/Managers/HitManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e99f64b7dd0fd8d4aa9d7cc0d8fa2165 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Physics/PhysicsWorld.cs b/Assets/Scripts/Physics/PhysicsWorld.cs index c5fbe046..ec3b0ac8 100644 --- a/Assets/Scripts/Physics/PhysicsWorld.cs +++ b/Assets/Scripts/Physics/PhysicsWorld.cs @@ -33,6 +33,11 @@ public enum PhysicsTag /// public class PhysicsWorld : Singleton { + public delegate void Callback(); + + public Callback onUpdate; + public Callback onAfterUpdate; + private int m_UpdateRate = 60; // 重力加速度 private readonly Vector3 m_Gravity = new Vector3(0, -30f, 0); @@ -118,10 +123,13 @@ public class PhysicsWorld : Singleton while (deltaTime > 1f / m_UpdateRate) { Tick(); + if(onUpdate != null) + onUpdate(); deltaTime -= 1f / m_UpdateRate; } m_TimeCount -= deltaTime; - AfterUpdate(); + if(onAfterUpdate != null) + onAfterUpdate(); } // 更新之前 @@ -130,12 +138,6 @@ public class PhysicsWorld : Singleton m_CollisionInfo.Clear(); } - // 更新之后 - private void AfterUpdate() - { - - } - public void DrawGizmos() { #if UNITY_EDITOR diff --git a/Assets/Scripts/Props.meta b/Assets/Scripts/Props.meta new file mode 100644 index 00000000..bb96602e --- /dev/null +++ b/Assets/Scripts/Props.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f299520ed9fcf4a45858ad4ef5a8d5d1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Scene.meta b/Assets/Scripts/Scene.meta new file mode 100644 index 00000000..eb7a8716 --- /dev/null +++ b/Assets/Scripts/Scene.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: eaee2d0f48cff9b40baf0686a8105600 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Test/ArmorSoldierScript.cs b/Assets/Scripts/Test/ArmorSoldierScript.cs index 924d7874..b8afa8ee 100644 --- a/Assets/Scripts/Test/ArmorSoldierScript.cs +++ b/Assets/Scripts/Test/ArmorSoldierScript.cs @@ -36,4 +36,11 @@ public class ArmorSoldierScript : Avatar animator.CrossFade(Anim_HurtFront, 0); } + public override void OnHurt(HurtInfo hurtInfo) + { + base.OnHurt(hurtInfo); + Hurt(); + m_Body.AddForce(new Vector3(1000, 2000,0)); + } + } diff --git a/Assets/Scripts/Test/SaionjiScript.cs b/Assets/Scripts/Test/SaionjiScript.cs index b63d4f7c..e2386350 100644 --- a/Assets/Scripts/Test/SaionjiScript.cs +++ b/Assets/Scripts/Test/SaionjiScript.cs @@ -95,4 +95,14 @@ public partial class SaionjiScript : Avatar } } + public override void OnHit(HitInfo hitInfo) + { + base.OnHit(hitInfo); + } + + public override void OnHurt(HurtInfo hurtInfo) + { + base.OnHurt(hurtInfo); + } + } diff --git a/Assets/Scripts/Test/SaionjiUberAbility.cs b/Assets/Scripts/Test/SaionjiUberAbility.cs index b4d6444f..b1f39938 100644 --- a/Assets/Scripts/Test/SaionjiUberAbility.cs +++ b/Assets/Scripts/Test/SaionjiUberAbility.cs @@ -17,7 +17,7 @@ public class SaionjiUberAbility : UberAbility { } - public override void OnLateUpdate() + public override void OnPhysicsUpdate() { } -- cgit v1.1-26-g67d0