Exemple #1
0
    // 다음 층에 있는 노드와 연결한다.
    public void ConnectNextNode(Node currentNode)
    {
        int depth  = nTree.SearchDepth(currentNode);
        int number = nTree.SearchNumber(currentNode);

        if (depth < 0)
        {
            return;
        }
        if (number < 0)
        {
            return;
        }

ReSearch:

        Node nextDepthNode = nTree.GetNDepthRandomNode(depth + 1);

        if (currentNode.GetChildIndex(nextDepthNode) != -1)
        {
            goto ReSearch;
        }
        if (nextDepthNode == null)
        {
            Debug.Log("ConnectNextNode Error");
            return;
        }
        currentNode.AddChild(nextDepthNode);

        // 윗노드 부터 아랫 노드까지
        Vector3 pos = new Vector3(number + 20, -depth, 0);

        depth  = nTree.SearchDepth(nextDepthNode);
        number = nTree.SearchNumber(nextDepthNode);

        Vector3 pos2 = new Vector3(number + 20, -depth, 0);

        Debug.DrawLine(pos, pos2, Color.yellow, Mathf.Infinity);
    }