public void SetBody(VehiclePartContext partContext) { tasks.Enqueue(delegate { contextStorage[nameof(BodyBuilder)] = partContext; Transform existPart = parts.GetBody(); if (existPart != null) { DestroyImmediate(existPart.gameObject); } var res = InstantiatePart((GameObject)partContext.GetPrefabDirectly(), "Body"); res.AddComponent <BodyBuilder>(); }); }