From 567fc2da0b5367cbbe59ea5fb3596802c2aa7a43 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 29 Jul 2021 18:47:06 +0800 Subject: +collider editor --- Assets/Scripts/Unit/Collider/ColliderBox.cs | 24 +++++++++++++++++--- Assets/Scripts/Unit/Collider/ColliderData.cs | 11 +++++---- .../Collider/ColliderDifferentiationAttribute.cs | 14 ++++++++++++ .../ColliderDifferentiationAttribute.cs.meta | 11 +++++++++ .../Unit/Events/Editor/AnimationDataInspector.cs | 26 ++++++++++++---------- 5 files changed, 67 insertions(+), 19 deletions(-) create mode 100644 Assets/Scripts/Unit/Collider/ColliderDifferentiationAttribute.cs create mode 100644 Assets/Scripts/Unit/Collider/ColliderDifferentiationAttribute.cs.meta (limited to 'Assets/Scripts/Unit') diff --git a/Assets/Scripts/Unit/Collider/ColliderBox.cs b/Assets/Scripts/Unit/Collider/ColliderBox.cs index 5bbce427..9bf2628d 100644 --- a/Assets/Scripts/Unit/Collider/ColliderBox.cs +++ b/Assets/Scripts/Unit/Collider/ColliderBox.cs @@ -3,13 +3,17 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; +[Serializable] public class ColliderBox { + // pivot public enum Pivot { MiddleBottom = 0, MiddleCenter = 1, } + + // 分化为不同的collider类型 public enum EColliderType { HitBox, @@ -18,8 +22,22 @@ public class ColliderBox BlockBox, DefendBox, } + + [DisallowModifiyInGUI] public EColliderType type; - public Vector3 position; - public Vector3 size; - public bool active; + [DisallowModifiyInGUI] + public Pivot pivot; + + #region Hurtbox + [ColliderType(EColliderType.HurtBox)] + public bool useGravity; + #endregion + + #region Hitbox + [ColliderType(EColliderType.HitBox)] + public Vector3 hitBack; + [ColliderType(EColliderType.HitBox)] + public bool multiHit; + #endregion + } \ No newline at end of file diff --git a/Assets/Scripts/Unit/Collider/ColliderData.cs b/Assets/Scripts/Unit/Collider/ColliderData.cs index ad4df73f..ad3b7326 100644 --- a/Assets/Scripts/Unit/Collider/ColliderData.cs +++ b/Assets/Scripts/Unit/Collider/ColliderData.cs @@ -22,17 +22,20 @@ public class ColliderData public Vector3 size; } - public ColliderBox.EColliderType type; + public ColliderBox.EColliderType type { get { return collider.type; } } + public ColliderBox.Pivot pivot { get { return collider.pivot; } } - public ColliderBox.Pivot pivot; + public ColliderBox collider; public List frames; public ColliderData(ColliderBox.EColliderType type, ColliderBox.Pivot pivot) { - this.type = type; - this.pivot = pivot; this.frames = new List(); + if (collider == null) + collider = new ColliderBox(); + collider.type = type; + collider.pivot = pivot; } public ColliderInfo GetColliderInfo(float frame) diff --git a/Assets/Scripts/Unit/Collider/ColliderDifferentiationAttribute.cs b/Assets/Scripts/Unit/Collider/ColliderDifferentiationAttribute.cs new file mode 100644 index 00000000..7d634b93 --- /dev/null +++ b/Assets/Scripts/Unit/Collider/ColliderDifferentiationAttribute.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ColliderTypeAttribute : Attribute +{ + public ColliderTypeAttribute(ColliderBox.EColliderType type) + { + this.type = type; + } + + public ColliderBox.EColliderType type; +} diff --git a/Assets/Scripts/Unit/Collider/ColliderDifferentiationAttribute.cs.meta b/Assets/Scripts/Unit/Collider/ColliderDifferentiationAttribute.cs.meta new file mode 100644 index 00000000..73ff8d73 --- /dev/null +++ b/Assets/Scripts/Unit/Collider/ColliderDifferentiationAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9aa9fd1fcb8a10341bbf8b8fdeb54599 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Unit/Events/Editor/AnimationDataInspector.cs b/Assets/Scripts/Unit/Events/Editor/AnimationDataInspector.cs index 0787e74f..1ca321c8 100644 --- a/Assets/Scripts/Unit/Events/Editor/AnimationDataInspector.cs +++ b/Assets/Scripts/Unit/Events/Editor/AnimationDataInspector.cs @@ -20,18 +20,20 @@ public class AnimationDataEditor : Editor public override void OnInspectorGUI() { - if (animData == null) - return; - EditorGUI.BeginChangeCheck(); - - GUILayout.Label("Animation File:"); - GUILayout.TextField(animData.animationName); - - if(EditorGUI.EndChangeCheck()) - { - EditorUtility.SetDirty(animData); - AssetDatabase.SaveAssets(); - } + this.DrawDefaultInspector(); + + //if (animData == null) + // return; + //EditorGUI.BeginChangeCheck(); + + //GUILayout.Label("Animation File:"); + //GUILayout.TextField(animData.animationName); + + //if(EditorGUI.EndChangeCheck()) + //{ + // EditorUtility.SetDirty(animData); + // AssetDatabase.SaveAssets(); + //} } } -- cgit v1.1-26-g67d0