public void RemoveComponent(IBaseComponent child_) { Type type = child_.GetType(); if (_children.ContainsKey(type) && _children[type].Contains(child_)) { Debug.Log(GetType().Name + " -> removeChild :: " + child_.GetType().Name); _children[type].Remove(child_); child_.Release(); child_ = null; } }