Exemple #1
0
    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);
    }
Exemple #2
0
    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;
    }