Пример #1
0
        public Node[] Render <T>(IEnumerable <T> items, RenderItemWithKey <T> render)
        {
            var toRender = new List <Node>();

            int itemIdx = 0;

            foreach (var item in items)
            {
                var(key, rendered) = render(item, itemIdx);
                rendered.Name      = obj.name + $"({key})";
                toRender.Add(rendered);
                itemIdx++;

                if (!keys.Contains(key))
                {
                    var go = Instantiate(obj, wrapper);
                    go.SetActive(true);
                    go.name = obj.name + $"({key})";
                    keys.Add(key);
                }
            }

            return(new Node[] {
                toRender.Count > 0 ? DSL.Draw(wrapper.name, toRender.ToArray()) : DSL.Draw(wrapper.name)
            });
        }