示例#1
0
    private void Add(MonoBehaviour mb, int updateOrder, UpdateManager.OnUpdate func, List <UpdateManager.UpdateEntry> list)
    {
        int num   = 0;
        int count = list.Count;

        while (num < count)
        {
            if (list[num].func == func)
            {
                return;
            }
            num++;
        }
        UpdateManager.UpdateEntry updateEntry = new UpdateManager.UpdateEntry()
        {
            index           = updateOrder,
            func            = func,
            mb              = mb,
            isMonoBehaviour = mb != null
        };
        list.Add(updateEntry);
        if (updateOrder != 0)
        {
            list.Sort(new Comparison <UpdateManager.UpdateEntry>(UpdateManager.Compare));
        }
    }
示例#2
0
    private void Add(MonoBehaviour mb, int updateOrder, UpdateManager.OnUpdate func, List <UpdateManager.UpdateEntry> list)
    {
        int i     = 0;
        int count = list.Count;

        while (i < count)
        {
            UpdateManager.UpdateEntry updateEntry = list[i];
            if (updateEntry.func == func)
            {
                return;
            }
            i++;
        }
        list.Add(new UpdateManager.UpdateEntry
        {
            index           = updateOrder,
            func            = func,
            mb              = mb,
            isMonoBehaviour = (mb != null)
        });
        if (updateOrder != 0)
        {
            list.Sort(new Comparison <UpdateManager.UpdateEntry>(UpdateManager.Compare));
        }
    }
示例#3
0
 private static int Compare(UpdateManager.UpdateEntry a, UpdateManager.UpdateEntry b)
 {
     if (a.index < b.index)
     {
         return(1);
     }
     if (a.index > b.index)
     {
         return(1);
     }
     return(0);
 }
示例#4
0
    private void UpdateList(List <UpdateManager.UpdateEntry> list, float delta)
    {
        int i = list.Count;

        while (i > 0)
        {
            UpdateManager.UpdateEntry updateEntry = list[--i];
            if (updateEntry.isMonoBehaviour)
            {
                if (updateEntry.mb == null)
                {
                    list.RemoveAt(i);
                    continue;
                }
                if (!updateEntry.mb.enabled || !NGUITools.GetActive(updateEntry.mb.gameObject))
                {
                    continue;
                }
            }
            updateEntry.func(delta);
        }
    }
示例#5
0
    private void UpdateList(List <UpdateManager.UpdateEntry> list, float delta)
    {
        int count = list.Count;

        while (count > 0)
        {
            int num = count - 1;
            count = num;
            UpdateManager.UpdateEntry item = list[num];
            if (item.isMonoBehaviour)
            {
                if (item.mb == null)
                {
                    list.RemoveAt(count);
                    continue;
                }
                else if (!item.mb.enabled || !item.mb.gameObject.activeInHierarchy)
                {
                    continue;
                }
            }
            item.func(delta);
        }
    }
示例#6
0
 private void Add(MonoBehaviour mb, int updateOrder, UpdateManager.OnUpdate func, List<UpdateManager.UpdateEntry> list)
 {
     int num = 0;
     int count = list.Count;
     while (num < count)
     {
         if (list[num].func == func)
         {
             return;
         }
         num++;
     }
     UpdateManager.UpdateEntry updateEntry = new UpdateManager.UpdateEntry()
     {
         index = updateOrder,
         func = func,
         mb = mb,
         isMonoBehaviour = mb != null
     };
     list.Add(updateEntry);
     if (updateOrder != 0)
     {
         list.Sort(new Comparison<UpdateManager.UpdateEntry>(UpdateManager.Compare));
     }
 }