private void InventoryItem_OnPickedUp(InventoryItem obj) { instance.ownedList.Add(obj); InventoryUIObject uio = Instantiate(uiObject, inventoryParent.transform).GetComponent <InventoryUIObject>(); if (uio != null) { uio.Image.sprite = obj.Sprite; uio.Item = obj; obj.UiObject = uio; obj.transform.SetParent(inventoryParent.transform); StartCoroutine(GoToSlot(obj.transform, uio)); } }
IEnumerator GoToSlot(Transform obj, InventoryUIObject uiTrans) { uiTrans.CanvasGroup.alpha = 0.0f; yield return(null); float elapsed = 0.0f; float duration = 0.45f; Vector3 startPos = obj.position; Vector3 targetPos = Camera.main.ScreenToWorldPoint(uiTrans.transform.position); while (elapsed < duration) { elapsed += Time.deltaTime; float t = curve.Evaluate(elapsed / duration); obj.position = Vector3.Lerp(startPos, targetPos, t); uiTrans.CanvasGroup.alpha = Mathf.Lerp(0.0f, 1.0f, t); yield return(null); } uiTrans.CanvasGroup.alpha = 1.0f; obj.transform.localPosition = Vector3.zero; }