Beispiel #1
0
    private void OnTriggerStay(Collider other)
    {
        if (other.tag == "Player" && !onGrass)
        {
            GameManager.instance.maxSpeed = GameManager.instance.maxSpeed * 0.5f;                   //Lowers maxspeed to half while the player is on grass

            onGrass = true;
            carMovement.ObstacleCollision(GameManager.instance.grassEffect);                        //Call obstacle collision method with grass effect parameter

            if (Mathf.Abs(transform.position.x) - Mathf.Abs(player.transform.position.x) < .1)      //If car is completely on grass play particle systems for both tires
            {
                carMovement.grassParticleSystemLeft.Play();
                carMovement.grassParticleSystemRight.Play();
            }

            if (Mathf.Abs(transform.position.x) - Mathf.Abs(player.transform.position.x) >= .1)     //If car is only halfway on grass play one tire depending on side
            {
                if (player.transform.position.x < 0)
                {
                    carMovement.grassParticleSystemLeft.Play();
                }
                if (player.transform.position.x > 0)
                {
                    carMovement.grassParticleSystemRight.Play();
                }
            }
        }

        //if car is partly on gravel set proper particle systems active
        if (Mathf.Abs(transform.position.x) - Mathf.Abs(player.transform.position.x) >= .1)
        {
            if (player.transform.position.x < 0)
            {
                carMovement.tireGrassParSysLeft.SetActive(true);
                carMovement.tireGravelParSysLeft.SetActive(false);
            }
            if (player.transform.position.x > 0)
            {
                carMovement.tireGrassParSysRight.SetActive(true);
                carMovement.tireGravelParSysRight.SetActive(false);
            }
        }

        if (Mathf.Abs(transform.position.x) - Mathf.Abs(player.transform.position.x) < .1)
        {
            carMovement.tireGrassParSysLeft.SetActive(true);
            carMovement.tireGrassParSysRight.SetActive(true);
            carMovement.tireGravelParSysLeft.SetActive(false);
            carMovement.tireGravelParSysRight.SetActive(false);
        }
    }
Beispiel #2
0
    //Deactivates this object and calls obstacle collision method from carmovement
    private void OnTriggerEnter(Collider other)
    {
        if (other.tag == "Player")
        {
            carMovement.ObstacleCollision(GameManager.instance.speedReduction);

            GameManager.instance.spawnParticles("parsys_SpeedSlowed");

            if (StaticVariables.vibrationOn)
            {
                Handheld.Vibrate();
            }

            gameObject.SetActive(false);
        }
    }