Esempio n. 1
0
 private void RemoveItem(TItem item)
 {
     item.Index = -1;
     CachedClone.RemoveClone(item.gameObject);
     items.Remove(item);
     OnItemRemove(item);
 }
Esempio n. 2
0
        private void AddComponent()
        {
            TComponent component = CachedClone.Clone(templateViewItem.gameObject).GetComponent <TComponent>();

            component.Index = -1;
            component.transform.SetAsLastSibling();
            components.Add(component);
        }
Esempio n. 3
0
        public static void RemoveClone(GameObject go, bool bDel = false)
        {
            CachedClone comp = go.GetComponent <CachedClone>();

            if (null != comp && null != comp.cloneFrom)
            {
                comp.cloneFrom.Remove(go, bDel);
            }
        }
Esempio n. 4
0
        private TItem AddItem()
        {
            TItem item = CachedClone.Clone(template.gameObject).GetComponent <TItem>();

            item.Index = items.Count;
            item.transform.SetAsLastSibling();
            items.Add(item);
            OnItemAdd(item);
            return(item);
        }
Esempio n. 5
0
 public void ReleaseItem()
 {
     if (null != itemGo)
     {
         if (isFollowing)
         {
             isFollowing = false;
             Follow3DBy2D.StopFollower(itemGo);
         }
         CachedClone.RemoveClone(itemGo, false);
         itemGo = null;
         item   = null;
     }
 }
Esempio n. 6
0
        public static void Reserve(GameObject go, int reserveSize)
        {
            CachedClone comp = go.GetComponent <CachedClone>();

            if (null == comp)           //如果没有则作为源
            {
                comp = go.AddComponent <CachedClone>();
            }
            if (null != comp.cloneFrom)
            {
                comp = comp.cloneFrom;
            }
            comp.Reserve(reserveSize);
        }
Esempio n. 7
0
        public static GameObject Clone(GameObject go)
        {
            CachedClone comp = go.GetComponent <CachedClone>();

            if (null == comp)           //如果没有则作为源
            {
                comp = go.AddComponent <CachedClone>();
            }
            if (null == comp.cloneFrom)
            {
                return(comp.CloneSelf());
            }
            else
            {
                return(comp.cloneFrom.CloneSelf());
            }
        }
Esempio n. 8
0
        private GameObject CreateClone(bool bActive)
        {
            GameObject clone = GameObject.Instantiate(CachedGo) as GameObject;

            clone.name = string.Format("{0}_{1:D3}", clone.name, ++itemIdx);
            Transform cloneTrans = clone.transform;

            cloneTrans.SetParent(CachedTrans.parent, false);
            //cloneTrans.parent = CachedTrans.parent;
            cloneTrans.localPosition = CachedTrans.localPosition;
            cloneTrans.localScale    = CachedTrans.localScale;
            cloneTrans.localRotation = CachedTrans.localRotation;
            CachedClone comp = clone.GetComponent <CachedClone>();

            if (null == comp)
            {
                comp = clone.AddComponent <CachedClone>();
            }
            comp.cloneFrom = this;
            clone.SetActive(bActive);
            return(clone);
        }
Esempio n. 9
0
 private void RemoveComponent(TComponent component)
 {
     component.Index = -1;
     CachedClone.RemoveClone(component.gameObject);
 }