From 38e177b0fdf130d6a361ab51c80b5b56ee83f28e Mon Sep 17 00:00:00 2001 From: chai <215380520@qq.com> Date: Fri, 26 May 2023 19:12:36 +0800 Subject: *misc --- .../Scripts/Physics/PhysicsManager_StaticTree.cs | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'WorldlineKeepers/Assets/Scripts/Physics/PhysicsManager_StaticTree.cs') 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; +/// +/// 不经常改变位置和大小的collider认为是静态collider,不会每帧重建 +/// public partial class PhysicsManager : Singleton { + 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 returnObjs, IQuadTreeObject obj) + { + return m_StaticCollisionQuadtree.Retrive(ref returnObjs, obj); + } + + public bool RetriveStaticColliders(ref List 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); + } } -- cgit v1.1-26-g67d0