public void ReleaseSkill() { if (arrow != null) { LightArrow arrowScript = arrow.GetComponent <LightArrow>(); arrowScript.SetReleased(); } chargeTime = 0f; bowRenderer.sprite = bowSprites[0]; AudioManager.GetInstance().PlaySound(Sound.BowRelease); AudioManager.GetInstance().StopSound(Sound.Charge); }
public void UseSkill(Transform hand) { // Get arrow if necessary if (chargeTime == 0f || arrow == null) { arrow = ObjectPooler.instance.GetDanmaku(arrowIndex); LightArrow arrowScript = arrow.GetComponent <LightArrow>(); arrowScript.SetCharging(); arrowScript.SetOwner(gameObject); arrow.SetActive(true); AudioManager.GetInstance().PlaySound(Sound.Charge); } // Set bow transform bow.transform.rotation = hand.transform.rotation; Vector3 bowPos = hand.TransformPoint(0.275f, 0, 0); bow.transform.position = bowPos; // charge bow chargeTime += Time.deltaTime; // Set bow charge int chargeLevel = Mathf.FloorToInt(chargeTime / 0.25f); if (chargeLevel >= bowSprites.Length) { chargeLevel = bowSprites.Length - 1; } bowRenderer.sprite = bowSprites[chargeLevel]; // Set arrow charge level LightArrow arrowScriptAgain = arrow.GetComponent <LightArrow>(); arrowScriptAgain.SetChargeLevel(chargeLevel); // set arrow position based on charge level arrow.transform.rotation = bow.transform.rotation; Vector3 arrowPos = bow.transform.TransformPoint(FindArrowOffset(chargeLevel), 0, 0); arrow.transform.position = arrowPos; }