// ========================================= PRIVATE FUNCS ========================================= private void AddChildPanel(OriginPanel originPanel, LinkLabel linkLabel) { CommonPanel comPanel = linkLabel.GetReferPanel(); // foreach all of labels List <Label> labels = comPanel.GetLabels(); if (labels.Count == 0) { return; } Label label = labels[Random.Range(0, labels.Count)]; // add normal label if (label is InputLabel) { originPanel.AddLabel(label); if (resultText.Length > 0) { resultText += " "; } resultText += label.GetText(); } // add origin panel (for linking label) else if (label is LinkLabel) { CommonPanel referPanel = (label as LinkLabel).GetReferPanel(); OriginPanel genPanel = originPanel.AddOriginPanel(referPanel); // loop add all labels of the generated panel AddChildPanel(genPanel, label as LinkLabel); } }