public void pickUpSpell(SpellBook newSpell) { if (heldSpell != null) { dropSpell(heldSpell, newSpell.transform.position); } heldSpell = newSpell; heldSpell.Deactivate(); StartCoroutine(pullSpell(newSpell.transform)); }
public void pickUpSpell(SpellBook newSpell) { if (heldSpell != null) { dropSpell(heldSpell, newSpell.transform.position); } heldSpell = newSpell; newSpell.Deactivate(); heldSpell.transform.parent = transform; newSpell.transform.localPosition = Vector3.zero; newSpell.transform.localRotation = Quaternion.identity; }
IEnumerator pickUpProcess(SpellBook newSpell) // pick up the spellbook { float startTime = Time.time; newSpell.transform.parent = transform; while (Time.time - startTime < spellPickUpSpeed) // pull spellbook closer { newSpell.transform.position = Vector3.Lerp(newSpell.transform.position, transform.position, (Time.deltaTime / spellPickUpSpeed) * 2); yield return(new WaitForEndOfFrame()); } // place spellbook at the middle and stop rendering book) newSpell.transform.localPosition = Vector3.zero; newSpell.Deactivate(); }
public void pickUpSpell(SpellBook newSpell) { // Debug.Log("Grabbed Spell"); if (spellsInventory.Count == maxSpells) // if the player's inventory is full { SpellBook lostSpell = spellsInventory[currentHeld]; spellsInventory[currentHeld] = newSpell; dropSpell(lostSpell, newSpell.transform.position); } else // otherwise just add the spell { spellsInventory.Add(newSpell); currentHeld = spellsInventory.Count - 1; } updateCurrentHeld(); newSpell.Deactivate(); newSpell.transform.localPosition = Vector3.zero; newSpell.transform.localRotation = Quaternion.identity; // StartCoroutine(pickUpProcess(newSpell)); // visualize pick up }