Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public int damagePerShot = 10; // The damage inflicted by each bullet.
- public float timeBetweenAttacks = 0.15f; // The time between each shot.
- public float range = 2f; // The distance the gun can fire.
- float timer; // A timer to determine when to fire.
- Ray shootRay; // A ray from the gun end forwards.
- RaycastHit shootHit; // A raycast hit to get information about what was hit.
- int shootableMask; // A layer mask so the raycast only hits things on the shootable layer.
- ParticleSystem gunParticles; // Reference to the particle system.
- LineRenderer gunLine; // Reference to the line renderer.
- //AudioSource gunAudio; // Reference to the audio source.
- Light gunLight; // Reference to the light component.
- float effectsDisplayTime = 1f; // The proportion of the timeBetweenBullets that the effects will display for.
- void Awake()
- {
- // Create a layer mask for the Shootable layer.
- shootableMask = LayerMask.GetMask("Attackable");
- // Set up the references.
- // gunParticles = GetComponent<ParticleSystem>();
- gunLine = GetComponent<LineRenderer>();
- // gunAudio = GetComponent<AudioSource>();
- // gunLight = GetComponent<Light>();
- }
- void Update()
- {
- // Add the time since Update was last called to the timer.
- // timer += Time.deltaTime;
- // If the Fire1 button is being press and it's time to fire...
- //if (Input.GetButton("Fire1") && timer >= timeBetweenBullets)
- // {
- // ... shoot the gun.
- // Shoot();
- // }
- //
- // If the timer has exceeded the proportion of timeBetweenBullets that the effects should be displayed for...
- // if (timer >= timeBetweenBullets * effectsDisplayTime)
- // {
- // ... disable the effects.
- // DisableEffects();
- /// }
- }
- public void DisableEffects()
- {
- // Disable the line renderer and the light.
- gunLine.enabled = false;
- // gunLight.enabled = false;
- }
- void Shoot()
- {
- // Reset the timer.
- // timer = 0f;
- // Play the gun shot audioclip.
- // gunAudio.Play();
- // Enable the light.
- // gunLight.enabled = true;
- // Stop the particles from playing if they were, then start the particles.
- // gunParticles.Stop();
- // gunParticles.Play();
- // Enable the line renderer and set it's first position to be the end of the gun.
- gunLine.enabled = true;
- gunLine.SetPosition(0, gameObject.transform.position);
- // Set the shootRay so that it starts at the end of the gun and points forward from the barrel.
- Vector3 NewOrigin = new Vector3(transform.position.x,transform.position.y , transform.position.z);
- shootRay.origin = NewOrigin;
- shootRay.direction = transform.forward;
- // Perform the raycast against gameobjects on the shootable layer and if it hits something...
- if (Physics.Raycast(shootRay, out shootHit, range, shootableMask))
- {
- // Try and find an EnemyHealth script on the gameobject hit.
- EnemyStats enemyHealth = shootHit.collider.GetComponent<EnemyStats>();
- if (enemyHealth != null)
- //print("should be damaging the enemy");
- enemyHealth.DamageEnemy(damagePerShot);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment