コード例 #1
0
    private void OnCollisionEnter(Collision collision)
    {
        if ((collision.collider.CompareTag("Car") && driveGameManager.getSpeed() >= 20f) ||
            (collision.collider.CompareTag("CarRear") && driveGameManager.getSpeed() <= -20f))
        {
            Vector3 spawnPosHead = new Vector3(gameObject.transform.position.x, 1, gameObject.transform.position.z);
            Vector3 spawnPosBody = new Vector3(gameObject.transform.position.x, gameObject.transform.position.y, gameObject.transform.position.z);
            Instantiate(zombieHead, spawnPosHead, gameObject.transform.rotation);
            Instantiate(zombieBody, spawnPosBody, gameObject.transform.rotation);
            Destroy(gameObject);
        }
        if (collision.collider.CompareTag("CarVulnerable") && driveGameManager.getSpeed() < 20)
        {
            if (canDamagePlayer)
            {
                PlayerPrefs.SetFloat("Health", PlayerPrefs.GetFloat("Health") - 7f);
                if (PlayerPrefs.GetFloat("Health") < 0)
                {
                    PlayerPrefs.SetFloat("Health", 0);
                }
                currentDamageToPlayer += 7;
            }

            if (currentDamageToPlayer >= 30)
            {
                canDamagePlayer = false;
            }
        }
    }
コード例 #2
0
 private void OnCollisionEnter(Collision collision)
 {
     Debug.Log("Here");
     if (collision.gameObject.CompareTag("Zombie"))
     {
         if (Math.Abs(gameManager.getSpeed()) < 15)
         {
             PlayerPrefs.SetFloat("Health", PlayerPrefs.GetFloat("Health") - 10f);
             Debug.Log(PlayerPrefs.GetFloat("Health"));
         }
     }
 }
コード例 #3
0
    // Update is called once per frame
    void FixedUpdate()
    {
        horizontalInput = Input.GetAxis("Horizontal");
        verticalInput   = Input.GetAxis("Vertical");

        // Gas is on.  Move forwards
        if (verticalInput > 0)
        {
            if (gameManager.getSpeed() < maxSpeed)
            {
                if (gameManager.getSpeed() < 0)
                {
                    gameManager.incrementSpeed(2);
                }
                gameManager.incrementSpeed(0.6f);
            }

            else
            {
                gameManager.setSpeed(maxSpeed);
            }
        }
        // Reverse is on.  Move backwards
        else if (verticalInput < 0)
        {
            if (gameManager.getSpeed() > -maxSpeed)
            {
                if (gameManager.getSpeed() > 0)
                {
                    gameManager.decrementSpeed(2);
                }
                gameManager.decrementSpeed(0.6f);
            }
            if (gameManager.getSpeed() < -maxSpeed)
            {
                gameManager.setSpeed(-maxSpeed);
            }
        }
        // Car is not getting gas.  Slow down
        else if (verticalInput == 0)
        {
            // Car is moving forwards
            if (gameManager.getSpeed() > 0)
            {
                gameManager.decrementSpeed(1.0f);

                if (gameManager.getSpeed() < 0)
                {
                    gameManager.setSpeed(0);
                }
            }
            // Car is moving backwards
            else if (gameManager.getSpeed() < 0)
            {
                gameManager.incrementSpeed(1.0f);

                if (gameManager.getSpeed() > 0)
                {
                    gameManager.setSpeed(0);
                }
            }
        }

        transform.Translate(Vector3.forward * gameManager.getSpeed() * Time.deltaTime);

        if (gameManager.getSpeed() > 0)
        {
            transform.Rotate(Vector3.up * turnSpeed * Time.deltaTime * horizontalInput);
        }
        else if (gameManager.getSpeed() < 0)
        {
            transform.Rotate(Vector3.up * turnSpeed * Time.deltaTime * -horizontalInput);
        }

        if (isTouchingObstacle)
        {
            if (gameManager.getSpeed() > 0)
            {
                gameManager.decrementSpeed(1.5f);
                if (gameManager.getSpeed() < 0)
                {
                    gameManager.setSpeed(0);
                }
            }
            if (gameManager.getSpeed() < 0)
            {
                gameManager.incrementSpeed(1.5f);
                if (gameManager.getSpeed() > 0)
                {
                    gameManager.setSpeed(0);
                }
            }
        }

        if (scene == 7)
        {
            if (gameObject.transform.position.y < 2.0f)
            {
                PlayerPrefs.SetFloat("Health", 0);
            }
        }
    }