public void LoadCuiComponent(ICuiComponent cuiComponent) { var cuiComponentType = cuiComponent.GetType(); var componentType = BaseComponent.GetComponentType(cuiComponentType); if (Components.Any(c => c.GetType() == cuiComponentType)) { ((BaseComponent)GetComponent(componentType)).LoadInternal(cuiComponent); return; } Components.Add(cuiComponent); var component = (BaseComponent)gameObject.AddComponent(componentType); component.LoadInternal(cuiComponent); }