summaryrefslogtreecommitdiff
path: root/WorldlineKeepers/Assets/Scripts/Physics/PhysicsManager.cs
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2023-05-12 10:32:11 +0800
committerchai <215380520@qq.com>2023-05-12 10:32:11 +0800
commit2fc9585797067730f28b03b0727bf05f9deed091 (patch)
tree8807e37b85ba922045eaa17ac445dd0a1d2d730c /WorldlineKeepers/Assets/Scripts/Physics/PhysicsManager.cs
parent2a1cd4fda8a4a8e649910d16b4dfa1ce7ae63543 (diff)
+ worldline keepers
Diffstat (limited to 'WorldlineKeepers/Assets/Scripts/Physics/PhysicsManager.cs')
-rw-r--r--WorldlineKeepers/Assets/Scripts/Physics/PhysicsManager.cs46
1 files changed, 46 insertions, 0 deletions
diff --git a/WorldlineKeepers/Assets/Scripts/Physics/PhysicsManager.cs b/WorldlineKeepers/Assets/Scripts/Physics/PhysicsManager.cs
new file mode 100644
index 0000000..279ebbb
--- /dev/null
+++ b/WorldlineKeepers/Assets/Scripts/Physics/PhysicsManager.cs
@@ -0,0 +1,46 @@
+using mh;
+using System.Collections;
+using System.Collections.Generic;
+using Unity.VisualScripting;
+using UnityEngine;
+
+public enum ColliderType
+{
+ Collider,
+ Hurtbox,
+}
+
+public partial class PhysicsManager : Singleton<PhysicsManager>
+{
+ // ËIJæÊ÷ɸѡ½á¹û
+ public List<IQuadTreeObject> sharedRetriveResults => m_SharedRetriveResults;
+ private List<IQuadTreeObject> m_SharedRetriveResults = new List<IQuadTreeObject>();
+
+ public PhysicsManager()
+ {
+ m_CollisionQuadtree = new PhysicsQuadtree(new Vector4(0, 0, 30, 30));
+ m_HurtboxQuadtree = new PhysicsQuadtree(new Vector4(0, 0, 30, 30));
+ }
+
+ public System.Func<Vector4, bool> GetRetriverByType(ColliderType type)
+ {
+ if (type == ColliderType.Collider)
+ return RetriveColliders;
+ else if (type == ColliderType.Hurtbox)
+ return RetriveHurtboxes;
+ else
+ return null;
+ }
+
+ public void Update()
+ {
+ m_CollisionQuadtree.UpdateQuadtree();
+ m_HurtboxQuadtree.UpdateQuadtree();
+ }
+
+ public void Debug()
+ {
+ m_CollisionQuadtree.Debug();
+ }
+
+} \ No newline at end of file