From de4941bb799df774f29857ce42a7c139050fa096 Mon Sep 17 00:00:00 2001 From: chai Date: Tue, 10 Nov 2020 18:47:26 +0800 Subject: *hitmanager --- Assets/Scripts/Avatar/Avatar.cs | 5 ++++- Assets/Scripts/Avatar/Avatar_Hurt.cs | 16 ++++++++++++++ Assets/Scripts/Avatar/Avatar_Hurt.cs.meta | 11 ++++++++++ Assets/Scripts/Avatar/HitDefination.cs | 36 +++++++++++++++++++++++++------ 4 files changed, 61 insertions(+), 7 deletions(-) create mode 100644 Assets/Scripts/Avatar/Avatar_Hurt.cs create mode 100644 Assets/Scripts/Avatar/Avatar_Hurt.cs.meta (limited to 'Assets/Scripts/Avatar') diff --git a/Assets/Scripts/Avatar/Avatar.cs b/Assets/Scripts/Avatar/Avatar.cs index 03cceccb..c44af96c 100644 --- a/Assets/Scripts/Avatar/Avatar.cs +++ b/Assets/Scripts/Avatar/Avatar.cs @@ -6,7 +6,7 @@ using UnityEngine; /// /// 角色,包括player和opponents /// -public class Avatar : MonoBehaviour, IInteractable +public partial class Avatar : MonoBehaviour, IInteractable { public string Name; @@ -106,6 +106,9 @@ public class Avatar : MonoBehaviour, IInteractable public virtual void OnHurt(HurtInfo hurtInfo) { //Debug.Log("Hurt"); + HitDefination hitDef = hurtInfo.hitDef; + if (hitDef != null) + ApplyHit(hitDef); m_AbilitySystem.OnHurt(hurtInfo); } diff --git a/Assets/Scripts/Avatar/Avatar_Hurt.cs b/Assets/Scripts/Avatar/Avatar_Hurt.cs new file mode 100644 index 00000000..f0cedffa --- /dev/null +++ b/Assets/Scripts/Avatar/Avatar_Hurt.cs @@ -0,0 +1,16 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public partial class Avatar : MonoBehaviour, IInteractable +{ + void ApplyHit(HitDefination hit) + { + if(hit.hurtAddForce.magnitude != 0) + { + m_Body.AddForce(hit.hurtAddForce); + } + + } + +} diff --git a/Assets/Scripts/Avatar/Avatar_Hurt.cs.meta b/Assets/Scripts/Avatar/Avatar_Hurt.cs.meta new file mode 100644 index 00000000..9b72c6ac --- /dev/null +++ b/Assets/Scripts/Avatar/Avatar_Hurt.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b8225de6932892342bf356e15bda0858 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Avatar/HitDefination.cs b/Assets/Scripts/Avatar/HitDefination.cs index 22a78325..db07a677 100644 --- a/Assets/Scripts/Avatar/HitDefination.cs +++ b/Assets/Scripts/Avatar/HitDefination.cs @@ -3,16 +3,40 @@ using System.Collections.Generic; using UnityEngine; /// -/// 一个hit的效果,如果一个attack有多个hit,需要定义多个HitDef +/// 攻击类型,对应不同的受击者反馈(动作) /// -public class HitDefination -{ - public float start = 0f; - public float end = 1f; // 触发的开始和结束时间范围,用来处理一个attack多个hit的情况 +public enum HitType +{ + Light, // 轻击 + Midium, // 中击 + Heavy, // 重击 + Ground, // 击倒 + Air, // 击飞 +} - public int sparkID = 0; // 特效perfab ID +/// +/// 一个hit的定义,如果一个attack有多个hit,需要定义多个HitDef +/// +public class HitDefination +{ + // 触发的开始和结束时间范围,用来处理一个attack多个hit的情况 + public float start = 0f; + public float end = 1f; + + public HitType type = HitType.Light; // 类型 + + // 特效 + public string sparkName = string.Empty; // 特效 public Transform sparkHost = null; // 特效挂点 public Vector3 sparkPosition; // 特效位置(sparkHost为空时生效) public Quaternion sparkRotation; // 特效旋转 public Vector3 sparkScale = Vector3.one; // 特效缩放 + + // 相机反馈 + + // 攻击方反馈 + + // 受击方反馈 + public Vector3 hurtAddForce = Vector3.zero; + } \ No newline at end of file -- cgit v1.1-26-g67d0