public void RemoveFeature <T>() where T : IWorldFeature, new() { IWorldFeature feature = FindFeature <T>(); if (feature != null) { m_Features.Remove(feature); feature.OnRemove(); } }
private IWorldFeature FindFeature <T>() { Type type = typeof(T); int length = m_Features.Count; for (int i = 0; i < length; ++i) { IWorldFeature feature = m_Features[i]; if (type == feature.GetType()) { return(feature); } } return(null); }