Esempio n. 1
0
    private void Update()
    {
        Time.timeScale += (1f / slowDuration) * Time.unscaledDeltaTime;
        Time.timeScale  = Mathf.Clamp(Time.timeScale, 0, 1);
        if (Input.GetButton("Fire1") && Time.time > nextFire)
        {
            nextFire = Time.time + fireRate;
            Instantiate(shot, shotSpawn.position, shotSpawn.rotation);
            audio.Play();
        }
        else if (Input.GetButton("Jump") && Time.time > nextFire)
        {
            nextFire = Time.time + fireRate;
            StartCoroutine(ShotEffect());
            laserLine.SetPosition(0, shotSpawn.position);

            RaycastHit hit;
            Vector3    forwardPosition = new Vector3(shotSpawn.position.x,
                                                     shotSpawn.position.y,
                                                     shotSpawn.position.z + weaponRange);
            if (Physics.Raycast(
                    shotSpawn.position, forwardPosition, out hit, weaponRange))
            {
                laserLine.SetPosition(1, hit.point);
                DestroyByContact dbc = hit.collider.GetComponent <DestroyByContact>();
                dbc.Damage(rayDamage);
            }
            else
            {
                laserLine.SetPosition(1, forwardPosition);
            }
        }
        if (Input.GetButton("Fire3") && Time.time > nextTimePause)
        {
            nextTimePause = Time.time + timeRate;
            BulletTime();
        }
    }