internal void UpdateContacts(ContactEdge contactEdge, bool value) { #if USE_ACTIVE_CONTACT_SET if(value) { while(contactEdge != null) { var c = contactEdge.Contact; if (!ActiveContacts.Contains(c)) { ActiveContacts.Add(c); } contactEdge = contactEdge.Next; } } else { while (contactEdge != null) { var c = contactEdge.Contact; if (!contactEdge.Other.Awake) { if (ActiveContacts.Contains(c)) { ActiveContacts.Remove(c); } } contactEdge = contactEdge.Next; } } #endif }
IEnumerable<ContactEdge> EnumerateContacts(ContactEdge first) { while (first != null) { yield return first; first = first.Next; } }