四叉树学习
自己学习四叉树总结
结构:
QuadTree:树
QuadTreeNode:树的节点
ITreeObj:树对象的接口
Detector:检测器
BoundsDetector:包围盒检测器
……
图片:
功能实现结构大致如下:
对象添加:
添加的条件一般是节点完全包围和深度,如果这两个条件符合会再创建四象相的子节,不断递深下去,直到深度或四象相节点不能完合包围时停止
对象移除:
相比添加转为简单。移除并更新父节点的数量
对象更新:
这个较复杂,主要功能是在物体移动时,需要更新对应的节点中去
1.当前节点是否可以完全包含物体,如果不能转调用父节点处理
2.判断子节点是否存在,如果四象相子节点不存在且深度满足条件,那么创建子节点。
3.四象相子节点判断是否可以完全包围,如果可以跳出
4.子节点查找失败,那么就把对象加到自身节点中
下载:
工程是Unity2017.3 https://download.****.net/download/c332937586/12718923