| | |
| | | { |
| | | Debug.Log(e.StackTrace); |
| | | } |
| | | for (int i = 0; i < syntonyList.Count; i++) |
| | | for (int i = syntonyList.Count - 1; i >= 0; i--) |
| | | { |
| | | if ((TimeUtility.ServerNow - syntonyList[i].endTime).TotalSeconds > 0) |
| | | { |
| | |
| | | syntonyList[i].callback(); |
| | | } |
| | | var _type = syntonyList[i].type; |
| | | syntonyList.RemoveAt(i); |
| | | // Swap-remove避免O(n)移位 |
| | | int last = syntonyList.Count - 1; |
| | | if (i < last) |
| | | syntonyList[i] = syntonyList[last]; |
| | | syntonyList.RemoveAt(last); |
| | | if (OnSyntonyEvent != null) |
| | | { |
| | | OnSyntonyEvent(_type); |
| | | } |
| | | i--; |
| | | } |
| | | } |
| | | if (timeItems.Count > 0) |
| | | { |
| | | timeItemList.RemoveRange(0, timeItemList.Count); |
| | | foreach (Component item in timeItems.Keys) |
| | | timeItemList.Clear(); |
| | | foreach (var kv in timeItems) |
| | | { |
| | | if (item == null) continue; |
| | | timeItemList.Add(timeItems[item]); |
| | | if (kv.Key == null) continue; |
| | | timeItemList.Add(kv.Value); |
| | | } |
| | | for (int i = 0; i < timeItemList.Count; i++) |
| | | { |