public bool ParentNodeHasItem(Vector3 pos) { if (!ReferenceEquals(getRoot, this)) { return(parent.ContainsItem(pos)); } else { return(true); } }
void FixedUpdate() { if (Input.GetKeyDown(KeyCode.G)) { GenerateWorldFromOctree(OctreeNode.getRoot); } if (Input.GetKeyDown(KeyCode.O)) { if (OctreeNode.getRoot.ContainsItem(Player.position) && (prePlayerNode == null || !prePlayerNode.ContainsItem(Player.position))) { UpdateOctree(); if (prePlayerNode != null) { if (!prePlayerNode.ReduceSubdivisionsWithoutItem(Player.position, prePlayerNode) && debug) { prePlayerNode.SetRendererMaterial(debugrenMaterialNorm); prePlayerNode.ren.startWidth = prePlayerNode.halfSize / 100; prePlayerNode.ren.endWidth = prePlayerNode.halfSize / 100; } } if (playerNode != null && debug) { playerNode.SetRendererMaterial(debugrenMaterialHigh); playerNode.ren.startWidth = playerNode.halfSize / 100 + Vector3.Distance(playerNode.pos, Player.position) / 100; playerNode.ren.endWidth = playerNode.halfSize / 100 + Vector3.Distance(playerNode.pos, Player.position) / 100; } prePlayerNode = playerNode; } } }