예제 #1
0
    void Update()
    {
        if (cooldownTimer < cooldown)
        {
            cooldownTimer += Time.deltaTime;
        }
        else if (firing)
        {
            cooldownTimer = 0.0f;
            for (int i = 0; i < locations.Length; i++)
            {
                Laser laser = Instantiate(laserPrefab, locations[i].position, locations[i].rotation) as Laser;
                laser.owner = ship;

                /* Initialize the laser's speed */
                Rigidbody laserBody = laser.GetComponent <Rigidbody>();
                laserBody.velocity = transform.forward * motor.getCurrentSpeed() + transform.forward.normalized * bulletSpeed;

                /* Ignore collisions with the firing ship */
                foreach (Collider collider in colliders)
                {
                    Physics.IgnoreCollision(laser.transform.GetChild(0).GetComponent <Collider>(), collider);
                }
            }

            if (OnShoot != null)
            {
                OnShoot();
            }
        }
    }