diff options
Diffstat (limited to 'Assets/Scripts/Avatar')
-rw-r--r-- | Assets/Scripts/Avatar/Avatar.cs | 5 | ||||
-rw-r--r-- | Assets/Scripts/Avatar/Avatar_Hurt.cs | 16 | ||||
-rw-r--r-- | Assets/Scripts/Avatar/Avatar_Hurt.cs.meta | 11 | ||||
-rw-r--r-- | Assets/Scripts/Avatar/HitDefination.cs | 36 |
4 files changed, 61 insertions, 7 deletions
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; /// <summary>
/// 角色,包括player和opponents
/// </summary>
-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; /// <summary>
-/// 一个hit的效果,如果一个attack有多个hit,需要定义多个HitDef
+/// 攻击类型,对应不同的受击者反馈(动作)
/// </summary> -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 +/// <summary>
+/// 一个hit的定义,如果一个attack有多个hit,需要定义多个HitDef
+/// </summary> +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 |