diff --git a/osu.Game/Skinning/Skin.cs b/osu.Game/Skinning/Skin.cs index e00dd950a7..7e93a74b7e 100644 --- a/osu.Game/Skinning/Skin.cs +++ b/osu.Game/Skinning/Skin.cs @@ -144,9 +144,23 @@ public virtual Drawable GetDrawableComponent(ISkinComponent component) if (!DrawableComponentInfo.TryGetValue(target.Target, out var skinnableInfo)) return null; + var components = new List(); + + foreach (var i in skinnableInfo) + { + try + { + components.Add(i.CreateInstance()); + } + catch (Exception e) + { + Logger.Error(e, $"Unable to create skin component {i.Type.Name}"); + } + } + return new SkinnableTargetComponentsContainer { - ChildrenEnumerable = skinnableInfo.Select(i => i.CreateInstance()) + Children = components, }; }