From 22891bf59032ba88262824255a706d652031384b Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 10 Mar 2022 14:07:40 +0800 Subject: * move folder --- Assets/Scripts/Unit/Collider/ColliderData.cs | 136 --------------------------- 1 file changed, 136 deletions(-) delete mode 100644 Assets/Scripts/Unit/Collider/ColliderData.cs (limited to 'Assets/Scripts/Unit/Collider/ColliderData.cs') diff --git a/Assets/Scripts/Unit/Collider/ColliderData.cs b/Assets/Scripts/Unit/Collider/ColliderData.cs deleted file mode 100644 index 58743aff..00000000 --- a/Assets/Scripts/Unit/Collider/ColliderData.cs +++ /dev/null @@ -1,136 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -// 用来返回某一时刻的碰撞盒几何数据 -public struct ColliderInfo -{ - public bool active; - public float frame; - public Vector3 position; - public Vector3 size; - public ColliderBox.EColliderType type { get { return collider.type; } } - public ColliderBox.Pivot pivot { get { return collider.pivot; } } - public ColliderBox collider; - public int colliderHash { get { return collider.GetHashCode(); } } - - public bool isValid { get { return collider != null; } } // 没有对应的数据时为false -} - -// 某个碰撞盒的属性和帧数据,从属于animation data -[Serializable] -public class ColliderData -{ - [Serializable] - public class ColliderFrame - { - public int frame; - public bool active; - public Vector3 position; - public Vector3 size; - } - - public ColliderBox.EColliderType type { get { return collider.type; } } - public ColliderBox.Pivot pivot { get { return collider.pivot; } } - - public ColliderBox collider; - - public List frames; - - public ColliderData(ColliderBox.EColliderType type, ColliderBox.Pivot pivot) - { - this.frames = new List(); - if (collider == null) - collider = new ColliderBox(); - collider.type = type; - collider.pivot = pivot; - } - - public ColliderInfo GetColliderInfo(float frame) - { - ColliderInfo info = new ColliderInfo(); - info.active = false; // default - info.collider = collider; - info.frame = frame; - int previous = 0; - int end = -1; - for (int i = 0; i < frames.Count; ++i) - { - if(frame >= frames[i].frame) - { - previous = frames[i].frame; - } - if(frames[i].frame > frame) - { - end = frames[i].frame; - break; - } - } - if(end == -1) - { - if(type == ColliderBox.EColliderType.HurtBox) - { - ColliderFrame pre = frames.Find(s => s.frame == previous); - if (pre == null) - return info; - info.active = pre.active; - info.position = pre.position; - info.size = pre.size; - } - } - else - { - ColliderFrame pre = frames.Find(s => s.frame == previous); - ColliderFrame next = frames.Find(s => s.frame == end); - if (pre == null || next == null) - return info; - info.active = pre.active; - float t = (frame - previous) / (end - previous); - info.position = Vector3.Lerp(pre.position, next.position, t); - info.size = Vector3.Lerp(pre.size, next.size, t); - } - return info; - } - - public ColliderFrame AddFrame(int frameIndex) - { - if (frames == null) - frames = new List(); - ColliderFrame frame = new ColliderFrame(); - frame.frame = frameIndex; - frame.active = true; - frame.position = Vector3.zero; - frame.size = new Vector3(0.5f,1,1); - frames.Add(frame); - frames.Sort((a, b) => { - if (a == null) - return 1; - if (b == null) - return -1; - if (a.frame < b.frame) - return -1; - if (a.frame > b.frame) - return 1; - return 0; - }); - return frame; - } - - public void DeleteFrame(int frameIndex) - { - if (frames == null) - return; - ColliderFrame frame = null; - foreach(var f in frames) - { - if (f.frame == frameIndex) - frame = f; - } - if(frame != null) - { - frames.Remove(frame); - } - } - -} -- cgit v1.1-26-g67d0