Ejemplo n.º 1
0
        /// <inheritdoc/>
        public override void AddComponentMember(int memberIndex, [NotNull] IComponentDrawer componentDrawer)
        {
            var category = ComponentCategories.Get(componentDrawer.Component);

                        #if DEV_MODE
            Debug.Log("AddComponentMember(" + memberIndex + ", " + componentDrawer.GetType().Name + ") category=\"" + category + "\", members.Length=" + members.Length);
                        #endif

            var categoryDrawer = GetOrCreateCategoryDrawer(category);

            if (categoryDrawer == null)
            {
                var setMembers = members;

                if (memberIndex == -1)
                {
                    memberIndex = setMembers.Length - LastCollectionMemberCountOffset + 1;
                }
                DrawerArrayPool.InsertAt(ref setMembers, memberIndex, componentDrawer, false);
                SetMembers(setMembers);
                return;
            }

            var setCategoryMembers = categoryDrawer.Members;
            DrawerArrayPool.InsertAt(ref setCategoryMembers, setCategoryMembers.Length, componentDrawer, false);
            categoryDrawer.SetMembers(setCategoryMembers);
        }