IUIElement[] CreateUIEs() { List <IUIElement> resultList = new List <IUIElement>(); for (int i = 0; i < groupElementCount; i++) { // GameObject go = GameObject.Instantiate(uiElementPrefab, this.GetTransform()); GameObject go = GameObject.Instantiate(uiElementPrefab); go.transform.localScale = thisCanvasLocalScale; go.transform.SetParent(this.GetTransform()); IUIAdaptor adaptor = (IUIAdaptor)go.GetComponent(typeof(IUIAdaptor)); adaptor.SetIndex(i); adaptor.SetUpRecursively(); adaptor.SetUpReferenceRecursively(); IUIElement element = adaptor.GetUIElement(); resultList.Add(element); } return(resultList.ToArray()); }