public void AddResourceBit(Resource resource, Vector2 from, Vector2 to, System.Action onComplete) { ResourceBit bit = Object.Instantiate(Assets.ResourceBit); bit.transform.SetParent(root, false); bit.transform.position = from; bit.Init(resource); Task.Run() .Time(0.5f) .OnUpdate(t => { bit.transform.position = Vector3.LerpUnclamped(from, to, Ease.InOutSine(t.Progress)); }) .OnComplete(_ => { onComplete(); Destroy(bit.gameObject); switch (resource) { case Resource.Lumber: UpdateLumber(); break; case Resource.Wheat: UpdateWheat(); break; } }); }