summaryrefslogtreecommitdiff
path: root/WorldlineKeepers/Assets/Scripts/Physics/PhysicsManager_StaticTree.cs
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2023-05-26 19:12:36 +0800
committerchai <215380520@qq.com>2023-05-26 19:12:36 +0800
commit38e177b0fdf130d6a361ab51c80b5b56ee83f28e (patch)
tree004cbaedc5a7be0b84bc4e05335800775f74e642 /WorldlineKeepers/Assets/Scripts/Physics/PhysicsManager_StaticTree.cs
parent5bb5da4caebfdc8627e331b4eb5c53457316ec44 (diff)
*misc
Diffstat (limited to 'WorldlineKeepers/Assets/Scripts/Physics/PhysicsManager_StaticTree.cs')
-rw-r--r--WorldlineKeepers/Assets/Scripts/Physics/PhysicsManager_StaticTree.cs38
1 files changed, 38 insertions, 0 deletions
diff --git a/WorldlineKeepers/Assets/Scripts/Physics/PhysicsManager_StaticTree.cs b/WorldlineKeepers/Assets/Scripts/Physics/PhysicsManager_StaticTree.cs
index c759e32..b89da29 100644
--- a/WorldlineKeepers/Assets/Scripts/Physics/PhysicsManager_StaticTree.cs
+++ b/WorldlineKeepers/Assets/Scripts/Physics/PhysicsManager_StaticTree.cs
@@ -1,10 +1,48 @@
+using mh;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
+/// <summary>
+/// 不经常改变位置和大小的collider认为是静态collider,不会每帧重建
+/// </summary>
public partial class PhysicsManager : Singleton<PhysicsManager>
{
+ private PhysicsQuadtree m_StaticCollisionQuadtree;
+ public Vector4 staticCollisionQuadtreeRange
+ {
+ set
+ {
+ m_StaticCollisionQuadtree.quadtreeRange = value;
+ }
+ }
+
+ public void AddStaticCollider(IQuadTreeObject collider)
+ {
+ m_StaticCollisionQuadtree.AddObject(collider);
+ }
+
+ public void RemoveStaticCollider(IQuadTreeObject collider)
+ {
+ m_StaticCollisionQuadtree.RemoveObject(collider);
+ }
+
+ public bool RetriveStaticColliders(ref List<IQuadTreeObject> returnObjs, IQuadTreeObject obj)
+ {
+ return m_StaticCollisionQuadtree.Retrive(ref returnObjs, obj);
+ }
+
+ public bool RetriveStaticColliders(ref List<IQuadTreeObject> returnObjs, Vector4 bound)
+ {
+ return m_StaticCollisionQuadtree.Retrive(ref returnObjs, bound);
+ }
+
+ public bool RetriveStaticColliders(Vector4 bound)
+ {
+ m_SharedRetriveResults.Clear();
+ return m_StaticCollisionQuadtree.Retrive(ref m_SharedRetriveResults, bound);
+ }
}