public void AttachTo(ContactParent contact) { if (m_CurrentContacts.Count == 0) { SetParent(contact); } m_CurrentContacts.Add(contact); }
void SetParent(ContactParent newParent) { m_CurrentParent = newParent; if (newParent == null) { m_Transform.SetParent(null, worldPositionStays: true); } else { m_Transform.SetParent(newParent.m_Transform, worldPositionStays: true); } }
public void DetachFrom(ContactParent contact) { m_CurrentContacts.Remove(contact); if (m_CurrentContacts.Count == 0) { SetParent(null); } else if (contact == m_CurrentParent) { SetParent(m_CurrentContacts[0]); } }
public void HandleExit(ContactParent contactParent) { DetachFrom(contactParent); contactParent.Remove(this); }
public void HandleEnter(ContactParent contactParent) { AttachTo(contactParent); contactParent.Add(this); }