public Action <GameObject> collisionEvent; //在这,用一个GameObject的泛型表示有一个参数是GameObject的委托

        void DoCheckCollision()
        {
            if (collisionEvent == null)
            {
                return;
            }

            GameObject[] colliderGameObjects = QuadtreeSingleton.CheckCollision(_leaf);
            foreach (GameObject colliderGameObject in colliderGameObjects)
            {
                if (collisionEvent == null)
                {
                    break;
                }
                collisionEvent(colliderGameObject);
            }
            //每次发出事件进行一次判断,原因是这里循环多次发出事件,但有时候有的组件接到事件后各种操作最后取消了订阅,如果正巧所有订阅都取消了,这里继续循环的时候就会出错,所以要每发出一次判断一次
        }
 private void OnDisable()
 {
     QuadtreeSingleton.RemoveLeaf(_leaf);
 }
 private void OnEnable()
 {
     UpdateLeaf();
     QuadtreeSingleton.SetLeaf(_leaf);
 }