public int GetDevBoundId(Vector3 devLocalPos)
    {
        PhysicalTopology[] childAreas = TopoNode.Children;
        if (childAreas == null)
        {
            return(NodeID);
        }
        Vector3 cadPos = LocationManager.UnityToCadPos(devLocalPos, true);

        foreach (var child in childAreas)
        {
            Bound initBound = child.InitBound;
            if (initBound == null || child.Name.Contains("测试范围"))
            {
                continue;
            }
            bool isXField = cadPos.x > initBound.MinX && cadPos.x < initBound.MaxX ? true : false;
            bool isZField = cadPos.z > initBound.MinY && cadPos.z < initBound.MaxY ? true : false;
            if (isXField && isZField)
            {
                //initBound.Id不是机房对应的ID
                Debug.Log(string.Format("设备所属区域:{0} 区域ID:{1}", child.Id, child.Name));
                if (ChildNodes.Find(i => i.NodeID == child.Id) != null)
                {
                    return(child.Id);
                }
                else
                {
                    break;
                }
            }
        }
        return(NodeID);
    }
        public void Initialize(WordNode parentNode, string characters)
        {
            if (string.IsNullOrEmpty(characters))
            {
                return;
            }
            var firstChar = characters[0];

            var node = ChildNodes.Find(r => r.Character == firstChar);

            if (node == null)
            {
                var newChild = new WordNode(characters.Remove(0, 1))
                {
                    Character = firstChar
                };
                newChild.Parent = parentNode;
                if (characters.Length == 1)
                {
                    newChild.IsWord = true;
                }

                ChildNodes.Add(newChild);
            }
            else
            {
                node.Initialize(node, characters.Remove(0, 1));
            }
        }
        public bool IsValidWord(string word)
        {
            if (word.Length == 1)
            {
                return(Character == word[0] && IsWord);
            }

            var nextChar = word[1];
            var node     = ChildNodes.Find(r => r.Character == nextChar);

            return(node != null && node.IsValidWord(word.Remove(0, 1)));
        }