void ShootBall(float magnitude, float xValue, float timeValue) { /// shoot ball using the swipe magnitude and delta in swipe x /// attach blob shadow to it /// also assign a windforce to affect trajectory #if UNITY_EDITOR UnityShoot(magnitude, xValue, timeValue); SwipeSlider.instance.ShowSwipeSlider(magnitude, timeValue); return; #endif if (!canShoot) { return; } if (InGameMenuManager.instance.tooClose)//if too close to trash can, don't shoot { return; } if (!firstShotLaunched) { firstShotLaunched = true; EventsManager.GameStart(); } GameObject ballObj = Instantiate(paperBall, shootPos.position, shootPos.rotation); PaperBall _paperBall = ballObj.GetComponent <PaperBall>(); ballRB = ballObj.GetComponent <Rigidbody>(); if (GameManager.isOnFire) { _paperBall.fire.Play(); } //normalize values using an arbitrary multiplier float xValueNorm = xValue / xValueFactor; float powerNorm = Mathf.Sqrt((magnitude / timeValue)) * powerFactor; ballObj.transform.Rotate(0f, xValueNorm, 0f); ballRB.AddForce(ballObj.transform.forward * powerNorm); ballRB.AddTorque(Camera.main.transform.right * 500f); SoundManager.instance.PlayTossSFX(); ballList.Add(ballObj); Destroy(ballObj, 30f); StopCoroutine(ShootCoolDownCR()); StartCoroutine(ShootCoolDownCR()); canShoot = false; SwipeSlider.instance.ShowSwipeSlider(magnitude, timeValue); }
void UnityShoot(float magnitude, float xValue, float timeValue) { if (!canShoot) { return; } if (!firstShotLaunched) { firstShotLaunched = true; EventsManager.GameStart(); } GameObject ballObj = Instantiate(paperBall, shootPos.position, shootPos.rotation); PaperBall _paperBall = ballObj.GetComponent <PaperBall>(); ballRB = ballObj.GetComponent <Rigidbody>(); if (GameManager.isOnFire) { _paperBall.fire.Play(); } //normalize values using an arbitrary multiplier float xValueNorm = xValue / xValueFactor; float powerNorm = Mathf.Sqrt((magnitude / timeValue)) * powerFactor; ballObj.transform.Rotate(0f, xValueNorm, 0f); ballRB.AddForce(ballObj.transform.forward * powerNorm); ballRB.AddTorque(Camera.main.transform.right * 500f); SoundManager.instance.PlayTossSFX(); ballList.Add(ballObj); Destroy(ballObj, 30f); StopCoroutine(ShootCoolDownCR()); StartCoroutine(ShootCoolDownCR()); canShoot = false; }