From 07fd372981a16672af23e30816ade14fcb744804 Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 30 Aug 2021 13:49:30 +0800 Subject: =?UTF-8?q?=E5=87=BB=E4=B8=AD=E5=8F=8D=E9=A6=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Unit/Component/UnitCollider.cs | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'Assets/Scripts/Unit/Component/UnitCollider.cs') diff --git a/Assets/Scripts/Unit/Component/UnitCollider.cs b/Assets/Scripts/Unit/Component/UnitCollider.cs index 8813ccef..f3170d1b 100644 --- a/Assets/Scripts/Unit/Component/UnitCollider.cs +++ b/Assets/Scripts/Unit/Component/UnitCollider.cs @@ -50,17 +50,27 @@ public class UnitCollider : UnitComponent public void OnAnimationChange() { hitMask.Clear(); - } - public void RecordCollision() + public void RecordCollision(int colliderHash, int targetHash) { + List record; + if (!hitMask.TryGetValue(colliderHash, out record)) + { + record = new List(); + hitMask.Add(colliderHash, record); + } + record.Add(targetHash); + } - } - - public bool CanCollide() + public bool CanCollide(int colliderHash, int targetHash) { - return true; + List record; + if(!hitMask.TryGetValue(colliderHash, out record)) + { + return true; + } + return !record.Contains(targetHash); } #if UNITY_EDITOR -- cgit v1.1-26-g67d0