using mh; using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; using UnityEngine; public enum ColliderType { Collider, Hurtbox, StaticCollider, } public partial class PhysicsManager : Singleton { // 共享的四叉树查询存储结果列表 public List sharedRetriveResults => m_SharedRetriveResults; private List m_SharedRetriveResults = new List(); public PhysicsManager() { m_CollisionQuadtree = new PhysicsQuadtree(new Vector4(0, 0, 30, 30)); m_HurtboxQuadtree = new PhysicsQuadtree(new Vector4(0, 0, 30, 30)); m_StaticCollisionQuadtree = new PhysicsQuadtree(new Vector4(0, 0, 30, 30)); } public void Initialize() { } public System.Func GetRetriverByType(ColliderType type) { if (type == ColliderType.Collider) return RetriveColliders; else if (type == ColliderType.Hurtbox) return RetriveHurtboxes; else if (type == ColliderType.StaticCollider) return RetriveStaticColliders; else return null; } /// /// 每帧更新 /// public void Update() { m_CollisionQuadtree.UpdateQuadtree(); m_HurtboxQuadtree.UpdateQuadtree(); } public void Debug() { m_CollisionQuadtree.Debug(); } }