i’m very new to unity and so far, there have been a lot of problems that i was able to fix, but this one is getting on my nerves, i found a gun script on the internet, and saw what it was capable of, but there were 3 errors, i fixed 2, but 1 error is still there, and i don’t know whats wrong, can someone please help me
Here is the Script, i think is has around 500 lines, i know it will be annoying to fix it, but if you can, that would be great, by the way, this is Mooncrawler456’s script
#pragma strict
#pragma implicit
#pragma downcast
@System.Serializable
public class WeaponScript extends MonoBehaviour {
//Booleans
@HideInInspector
var aimed : boolean;
@HideInInspector
var fire : boolean;
@HideInInspector
var canAim : boolean;
@HideInInspector
var isReload : boolean;
@HideInInspector
var noBullets : boolean;
@HideInInspector
var Recoil : boolean;
@HideInInspector
var canFire : boolean;
@HideInInspector
var singleFire : boolean;
private var motor : FPScontroller;
private var player : GameObject;
private var controller : CharacterController;
private var mouseLook : FPSMouseLook;
//make walk sway amount smaller when player is aim
//or aim mode walk sway control
private var walkSway : WalkSway;
private var defaultBobbingAmount : float;
private var managerObject : GameObject;
enum gunType {MACHINE_GUN, GRENADE_LAUNCHER, SHOTGUN, KNIFE}
var GunType : gunType;
var FlashLight : boolean;
//Use classes to make a group of variables
var weaponName : String = "";
//Aim variables
class AimVariables {
var aimPosition : Vector3 = Vector3.zero;
var smoothTime : float = 5;
var toFov : float = 45;
var aimBobbingAmount : float;
var playAnimation : boolean;
}
var Aim : AimVariables;
private var defaultFov : float;
private var defaultPosition : Vector3;
private var currentFov : float;
private var currentPosition : Vector3;
var firePoint : Transform;
//Shotgun variables
class shotGun{
var bullet : Transform;
var fractions : int = 5;
var errorAngle : float = 3;
var fireRate : float = 1;
var reloadTime : float = 2;
var fireSound : AudioClip;
var reloadSound : AudioClip;
var bulletsPerClip : int = 40;
var bulletsLeft : int;
var clips : int = 15;
var smoke : ParticleEmitter;
}
var ShotGun : shotGun;
//Grenade launcher variables
class GrenadeLauncher{
var projectile : Rigidbody;
var fireSound : AudioClip;
var reloadSound : AudioClip;
var initialSpeed = 20.0;
//Delay shot (ex. greande throw)
var shotDelay : float = 0;
var waitBeforeReload = 0.5;
var reloadTime = 0.5;
var ammoCount = 20;
}
var grenadeLauncher : GrenadeLauncher;
private var lastShot = -10.0;
//Machine gun variables
class MachineGun{
var bullet : Transform;
var muzzleFlash : GameObject;
var fireSound : AudioClip;
var reloadSound : AudioClip;
var pointLight : Light;
var fireRate = 0.05;
var bulletsPerClip : int = 40;
var clips : int = 15;
var bulletsLeft : int;
var reloadTime = 1.0;
var NoAimErrorAngle = 3.0;
var AimErrorAngle = 0.0;
}
var machineGun : MachineGun;
@HideInInspector
var errorAngle : float;
private var nextFireTime = 0.0;
//Knife variables
class Knife{
var bullet : Transform;
var fireSound : AudioClip;
var fireRate : float = 0.5;
var delayTime : float = 0;
}
var knife : Knife;
//Rotation realisn variables
class RotationReal{
var RotationAmplitude : float = 2;
var smooth : float = 7;
}
var RotRealism : RotationReal;
private var currentAnglex : float;
private var currentAngley : float;
//Smooth move variables
class SmoothMov {
var maxAmount = 0.5;
var Smooth = 3.0;
}
var SmoothMovement : SmoothMov;
private var DefaultPos : Vector3;
//Camera Recoil effect NOTE : Be sure that is your player camera is tagged as "MainCamera"
class cameraRecoil{
var recoilPower : float = 0.5;
var shakeAmount : float = 6;
var smooth : float = 3;
}
var CameraRecoil : cameraRecoil;
private var camDefaultRotation : Quaternion;
private var camPos : Quaternion;
//Awake function is always called before Start function
function Awake(){
//Find nesessary objects and scripts (Player, CharacterMotor script, and weapon projectile spawn points etc.)
player = GameObject.FindWithTag("Player");
motor = player.GetComponent(FPScontroller);
controller = player.GetComponent(CharacterController);
mouseLook = gameObject.FindWithTag("LookObject").GetComponent("FPSMouseLook");
}
function Start (){
//Aim mode walk sway control
managerObject = gameObject.FindWithTag("WeaponManager");
walkSway = managerObject.GetComponent("WalkSway");
defaultBobbingAmount = walkSway.bobbingAmount;
//Camera recoil
camDefaultRotation = camera.main.transform.localRotation;
//Aim setup
defaultFov = camera.main.fieldOfView;
defaultPosition = transform.localPosition;
//Call machineGun awake
if(GunType == gunType.MACHINE_GUN){
machineGunAwake();
}
//Call grenadelauncher awake
if(GunType == gunType.GRENADE_LAUNCHER){
grenadeLauncherAwake();
}
//Call shotgun Awake
if(GunType == gunType.SHOTGUN){
shotGunAwake();
}
//Call knife awake
if(GunType == gunType.KNIFE){
knifeAwake();
}
}
function Update (){
if(Time.timeScale < 0.01)
return;
Aiming();
RotationRealism();
SmoothMove();
//PickUpUpdate();
//input();
if(Recoil){
cameraRecoilDo();
}
//Call machine gun fixed update function
if(GunType == gunType.MACHINE_GUN){
machineGunFixedUpdate();
}
//Call grenade launcher fixed update function
if(GunType == gunType.GRENADE_LAUNCHER){
grenadeLauncherFixedUpdate();
}
//Call shotgun fixed update function
if(GunType == gunType.SHOTGUN){
shotGunFixedUpdate ();
}
if(motor.Running){
aimed = false;
}
}
//////////////////////////////////////////////////INPUT//////////////////////////////////////////////////////////////////////
function LateUpdate(){
if(Time.timeScale < 0.01)
return;
//1.Aim input
if(Input.GetButtonDown("Fire2") && canAim && !motor.Running){
aimed = !aimed;
}
//2.Fire input
//Automatic fire input
if(Input.GetButton("Fire1") && canFire && !singleFire){
fire = true;
}else{
fire = false;
}
//Single fire iputs
if(GunType == gunType.MACHINE_GUN){
//Single fire input for machine gun mode
if(Input.GetButtonDown("Fire1") && canFire && !isReload && singleFire){
machineGunFire();
}else{
machineGunStopFire ();
}
}
if(GunType == gunType.GRENADE_LAUNCHER){
//Single fire input for grenade launcher mode
if(Input.GetButtonDown("Fire1") && canFire && !isReload && singleFire){
grenadeLauncherFIre();
}
}
if(GunType == gunType.SHOTGUN){
//Single fire input for shotgun mode
if(Input.GetButtonDown("Fire1") && canFire && !isReload && singleFire){
shotGunFire ();
}
}
if(GunType == gunType.KNIFE){
if(Input.GetButtonDown("Fire1") && canFire && !isReload && singleFire){
knifeOneShot();
}
}
//3.Reload input
if(Input.GetKeyDown("r") && !isReload && machineGun.clips > 0){
if(GunType == gunType.MACHINE_GUN && machineGun.bulletsLeft != machineGun.bulletsPerClip){
machineGunReload();
}
if(GunType == gunType.SHOTGUN && ShotGun.bulletsLeft != ShotGun.bulletsPerClip){
shotGunReload();
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function firePointSetup(){
//Make fire point be directly to center of screen, to avoid out of crosshair fire bug
var tempPos : Vector3 = Camera.main.ScreenToWorldPoint( Vector3(Screen.width/2, Screen.height/2, Camera.main.nearClipPlane));
firePoint.position = tempPos;
}
///////////////////////////////////////////////MACHINE GUN FUNCTIONS///////////////////////////////////////////////////////
function machineGunAwake(){
machineGun.bulletsLeft = machineGun.bulletsPerClip;
//Deactivate muzzleFlash if we didnt
if(machineGun.muzzleFlash){
machineGun.muzzleFlash.active = false;
}
canAim = true;
canFire = true;
}
function machineGunFixedUpdate (){
//Machine gun fire
if(fire && !isReload){
machineGunFire();
}else{
machineGunStopFire();
if(machineGun.muzzleFlash){
machineGun.muzzleFlash.active = false;
}
}
if(isReload){
//motor.canRun = false;
canAim = false;
}
}
function machineGunFire (){
if (machineGun.bulletsLeft == 0)
return;
// If there is more than one bullet between the last and this frame
// Reset the nextFireTime
if (Time.time - machineGun.fireRate > nextFireTime){
nextFireTime = Time.time - Time.deltaTime;
}
// Keep firing until we used up the fire time
while( nextFireTime < Time.time && machineGun.bulletsLeft != 0)
{
machineGunOneShot();
nextFireTime += machineGun.fireRate;
}
//motor.canRun = false;
}
function machineGunStopFire (){
motor.canRun = true;
}
function machineGunOneShot () {
if(!aimed){
//Before fire, move aim point to right position
firePointSetup();
}
var oldRotation = firePoint.rotation;
firePoint.rotation = Quaternion.Euler(Random.insideUnitSphere * errorAngle) * transform.rotation;
var instantiatedProjectile;
if(!aimed){
instantiatedProjectile = Instantiate (machineGun.bullet, firePoint.position, firePoint.rotation);
}else{
var pos : Vector3 = Camera.main.ScreenToWorldPoint( Vector3(Screen.width/2, Screen.height/2, Camera.main.nearClipPlane));
instantiatedProjectile = Instantiate (machineGun.bullet, pos, firePoint.rotation);
}
firePoint.rotation = oldRotation;
lastShot = Time.time;
machineGun.bulletsLeft--;
//Play fire sound attached to a Weapon object
audio.clip = machineGun.fireSound;
audio.Play();
//Do a light effect when shoot
machineGunMuzzleFlash();
//Send message to weapon animation script
if(aimed && Aim.playAnimation){
BroadcastMessage ("Fire", SendMessageOptions.DontRequireReceiver);
}
if(!aimed){
BroadcastMessage ("Fire", SendMessageOptions.DontRequireReceiver);
}
if(Recoil){
mouseLook.Recoil(CameraRecoil.recoilPower);
machineGunCameraRecoil();
}
// Reload gun in reload Time
if(machineGun.clips > 0)
if (machineGun.bulletsLeft == 0){
noBullets = true;
yield WaitForSeconds(1);
if(!isReload){
machineGunReload();
}
}
}
function machineGunMuzzleFlash(){
if(machineGun.muzzleFlash){
machineGun.muzzleFlash.transform.localRotation = Quaternion.AngleAxis(Random.Range(0, 359), Vector3.left);
machineGun.muzzleFlash.active = true;
}
if(machineGun.pointLight){
machineGun.pointLight.enabled = true;
}
yield WaitForSeconds(0.04);
if(machineGun.muzzleFlash){
machineGun.muzzleFlash.active = false;
}
if(machineGun.pointLight){
machineGun.pointLight.enabled = false;
}
}
function machineGunReload () {
isReload = true;
aimed = false;
canAim = false;
BroadcastMessage ("Reloading", machineGun.reloadTime, SendMessageOptions.DontRequireReceiver);
//Play reload sound
audio.clip = machineGun.reloadSound;
audio.Play();
// Wait for reload time first - then add more bullets!
yield WaitForSeconds(machineGun.reloadTime);
// We have a clip left reload
if (machineGun.clips > 0)
{
var difference = machineGun.bulletsPerClip-machineGun.bulletsLeft;
if(machineGun.clips > difference ){
machineGun.clips = machineGun.clips - difference;
machineGun.bulletsLeft = machineGun.bulletsLeft + difference;
}else{
machineGun.bulletsLeft = machineGun.bulletsLeft + machineGun.clips;
machineGun.clips = 0;
}
noBullets = false;
isReload = false;
canAim = true;
motor.canRun = true;
}
}
function machineGunCameraRecoil(){
camPos = Quaternion.Euler (Random.Range(0, -CameraRecoil.shakeAmount), Random.Range(-CameraRecoil.shakeAmount, CameraRecoil.shakeAmount), 0);
yield WaitForSeconds(0.05);
camPos = camDefaultRotation;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////GRENADE LAUNCHER FUNCTIONS////////////////////////////////////////////
function grenadeLauncherAwake(){
canAim = true;
canFire = true;
}
function grenadeLauncherFixedUpdate (){
//GrenadeLauncher fire
if(fire && !isReload){
grenadeLauncherFIre();
//motor.canRun = false;
}else{
motor.canRun = true;
}
}
function grenadeLauncherFIre (){
// Did the time exceed the reload time?
if (grenadeLauncher.ammoCount == 0 || !canFire)
return;
// If there is more than one bullet between the last and this frame
// Reset the nextFireTime
if (Time.time - grenadeLauncher.reloadTime > nextFireTime){
nextFireTime = Time.time - Time.deltaTime;
}
// Keep firing until we used up the fire time
while( nextFireTime < Time.time && grenadeLauncher.ammoCount > 0)
{
grenadeLauncherOneShot();
nextFireTime += grenadeLauncher.reloadTime;
}
//motor.canRun = false;
}
function grenadeLauncherOneShot (){
if(grenadeLauncher.shotDelay > 0){
//Send message to weapon animation script
if(aimed && Aim.playAnimation){
BroadcastMessage ("Fire", SendMessageOptions.DontRequireReceiver);
}
if(!aimed){
BroadcastMessage ("Fire", SendMessageOptions.DontRequireReceiver);
}
if(Recoil){
mouseLook.Recoil(CameraRecoil.recoilPower);
grenadeLauncherCameraRecoil();
}
grenadeLauncherReload();
yield WaitForSeconds(grenadeLauncher.shotDelay);
}
// create a new projectile, use the same position and rotation as the Launcher.
var instantiatedProjectile = Instantiate(grenadeLauncher.projectile, firePoint.position, firePoint.rotation);
// Give it an initial forward velocity. The direction is along the z-axis of the missile launcher's transform.
instantiatedProjectile.velocity = transform.TransformDirection(Vector3 (0, 0, grenadeLauncher.initialSpeed));
// Ignore collisions between the missile and the character controller
var c : Collider;
for(c in transform.root.GetComponentsInChildren(Collider))
Physics.IgnoreCollision(instantiatedProjectile.collider, c);
lastShot = Time.time;
grenadeLauncher.ammoCount--;
audio.clip = grenadeLauncher.fireSound;
audio.Play();
if(grenadeLauncher.shotDelay == 0){
//Send message to weapon animation script
if(aimed && Aim.playAnimation){
BroadcastMessage ("Fire", SendMessageOptions.DontRequireReceiver);
}
if(!aimed){
BroadcastMessage ("Fire", SendMessageOptions.DontRequireReceiver);
}
if(Recoil){
mouseLook.Recoil(CameraRecoil.recoilPower);
grenadeLauncherCameraRecoil();
}
if(grenadeLauncher.ammoCount > 0){
grenadeLauncherReload();
}
}
}
function grenadeLauncherReload(){
isReload = true;
yield WaitForSeconds(grenadeLauncher.waitBeforeReload);
aimed = false;
BroadcastMessage ("Reloading", grenadeLauncher.reloadTime, SendMessageOptions.DontRequireReceiver);
//Play reload sound
audio.clip = grenadeLauncher.reloadSound;
audio.Play();
yield WaitForSeconds(grenadeLauncher.reloadTime);
isReload = false;
}
function grenadeLauncherCameraRecoil(){
camPos = Quaternion.Euler (Random.Range(-CameraRecoil.shakeAmount*1.5, -CameraRecoil.shakeAmount), Random.Range(CameraRecoil.shakeAmount/3, CameraRecoil.shakeAmount/2), 0);
yield WaitForSeconds(0.1);
camPos = camDefaultRotation;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////SHOTGUN FUNCTIONS/////////////////////////////////////////////////////////
function shotGunAwake(){
ShotGun.bulletsLeft = ShotGun.bulletsPerClip;
if(ShotGun.smoke){
ShotGun.smoke.emit = false;
}
canAim = true;
canFire = true;
}
function shotGunFixedUpdate (){
if(fire && !isReload){
shotGunFire();
}else{
shotGunStopFire();
}
if(isReload){
//motor.canRun = false;
canAim = false;
}
}
function shotGunFire (){
if (ShotGun.bulletsLeft == 0)
return;
// If there is more than one bullet between the last and this frame
// Reset the nextFireTime
if (Time.time - ShotGun.fireRate > nextFireTime)
nextFireTime = Time.time - Time.deltaTime;
// Keep firing until we used up the fire time
while( nextFireTime < Time.time && ShotGun.bulletsLeft != 0)
{
shotGunOneShot();
nextFireTime += ShotGun.fireRate;
}
//motor.canRun = false;
}
function shotGunStopFire (){
motor.canRun = true;
}
function shotGunOneShot () {
//Before fire, move aim point to right position
firePointSetup();
var oldRotation = firePoint.rotation;
for (var i : int = 0;i < ShotGun.fractions; i++) {
firePoint.rotation = Quaternion.Euler(Random.insideUnitSphere * ShotGun.errorAngle) * transform.rotation;
var instantiatedProjectile = Instantiate (ShotGun.bullet, firePoint.position, firePoint.rotation);
}
firePoint.rotation = oldRotation;
lastShot = Time.time;
//Play fire sound attached to a Weapon object
audio.clip = ShotGun.fireSound;
audio.Play();
ShotGun.bulletsLeft--;
//Send message to weapon animation script
if(aimed && Aim.playAnimation){
BroadcastMessage ("Fire", SendMessageOptions.DontRequireReceiver);
}
if(!aimed){
BroadcastMessage ("Fire", SendMessageOptions.DontRequireReceiver);
}
shotGunSmokeEffect();
if(Recoil){
shotGunCameraRecoil();
mouseLook.Recoil(CameraRecoil.recoilPower);
}
// Reload gun in reload Time
if(ShotGun.clips > 0)
if (ShotGun.bulletsLeft == 0){
noBullets = true;
yield WaitForSeconds(1);
if(!isReload){
shotGunReload();
}
}
}
function shotGunReload () {
isReload = true;
aimed = false;
BroadcastMessage ("Reloading", ShotGun.reloadTime, SendMessageOptions.DontRequireReceiver);
//Play reload sound
audio.clip = ShotGun.reloadSound;
audio.Play();
// Wait for reload time first - then add more bullets!
yield WaitForSeconds(ShotGun.reloadTime);
// We have a clip left reload
if (ShotGun.clips > 0){
var difference = ShotGun.bulletsPerClip-ShotGun.bulletsLeft;
if(ShotGun.clips > difference ){
ShotGun.clips = ShotGun.clips - difference;
ShotGun.bulletsLeft = ShotGun.bulletsLeft + difference;
}else{
ShotGun.bulletsLeft = ShotGun.bulletsLeft + ShotGun.clips;
ShotGun.clips = 0;
}
noBullets = false;
isReload = false;
canAim = true;
motor.canRun = true;
}
}
function shotGunSmokeEffect(){
if(!ShotGun.smoke)
return;
ShotGun.smoke.emit = true;
yield WaitForSeconds(0.3);
ShotGun.smoke.emit = false;
}
function shotGunCameraRecoil(){
camPos = Quaternion.Euler (Random.Range(-CameraRecoil.shakeAmount*1.5, -CameraRecoil.shakeAmount), Random.Range(CameraRecoil.shakeAmount/3, CameraRecoil.shakeAmount/2), 0);
yield WaitForSeconds(0.1);
camPos = camDefaultRotation;
}
//////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////KNIFE FUNCTIONS///////////////////////////////////
function knifeAwake(){
canAim = false;
canFire = true;
}
function knifeOneShot () {
if (Time.time > knife.fireRate + lastShot){
//Before fire, move aim point to right position
firePointSetup();
//Play fire sound attached to a Weapon object
audio.clip = knife.fireSound;
audio.Play();
BroadcastMessage ("Fire", SendMessageOptions.DontRequireReceiver);
yield WaitForSeconds(knife.delayTime);
var instantiatedProjectile = Instantiate (knife.bullet, firePoint.position, firePoint.rotation);
lastShot = Time.time;
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////AIM FUNCTIONS////////////////////////////////////
function Aiming(){
//Change camera FOV and weapon transform to aim values
if(aimed && !motor.Running){
currentPosition = Aim.aimPosition;
currentFov = Aim.toFov;
errorAngle = machineGun.AimErrorAngle;
walkSway.bobbingAmount = Aim.aimBobbingAmount;
//mouseLook.sensitivityX = mouseLook.defaultSensitivityX/1.1;
//mouseLook.sensitivityY = mouseLook.defaultSensitivityY/1.1;
} else {
currentPosition = defaultPosition;
currentFov = defaultFov;
errorAngle = machineGun.NoAimErrorAngle;
walkSway.bobbingAmount = defaultBobbingAmount;
//mouseLook.sensitivityX = mouseLook.defaultSensitivityX;
//mouseLook.sensitivityY = mouseLook.defaultSensitivityY;
}
//Change weapon position and camera FOV when player aim or no aim
transform.localPosition = Vector3.Lerp(transform.localPosition, currentPosition, Time.deltaTime/Aim.smoothTime);
camera.main.fieldOfView = Mathf.Lerp(camera.main.fieldOfView, currentFov, Time.deltaTime/Aim.smoothTime);
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function cameraRecoilDo(){
camera.main.transform.localRotation = Quaternion.Slerp(camera.main.transform.localRotation, camPos, Time.deltaTime * CameraRecoil.smooth);
}
function RotationRealism (){
//ROTATION REALISM
var Xinput=Input.GetAxis("Mouse X");
var Yinput=Input.GetAxis("Mouse Y");
var currentAngley : float;
var currentAnglex : float;
if(Mathf.Abs(Xinput)>0.1){
if(Xinput < 0.1){
//Left
currentAngley = -RotRealism.RotationAmplitude * Mathf.Abs(Xinput);
}
else if(Xinput > 0.1){
//Right;
currentAngley = RotRealism.RotationAmplitude * Mathf.Abs(Xinput);
}
} else {
//Center
currentAngley = 0;
}
if(Mathf.Abs(Yinput)>0.1){
if(Yinput < 0.1){
//Down
currentAnglex = RotRealism.RotationAmplitude * Mathf.Abs(Yinput);
}
else if(Yinput > 0.1){
//Up
currentAnglex = -RotRealism.RotationAmplitude * Mathf.Abs(Yinput);
}
} else {
//Center
currentAnglex = 0;
}
var target = Quaternion.Euler (currentAnglex, currentAngley, 0);
transform.localRotation = Quaternion.Slerp(transform.localRotation, target, Time.deltaTime * RotRealism.smooth);
}
function SmoothMove (){
//var MoveOnX : float = -Input.GetAxis("Horizontal");
var MoveOnY = controller.velocity.y;
var m : float;
var MoveOnZ : float = -Input.GetAxis("Vertical");
/*
if (MoveOnX > SmoothMovement.maxAmount)
MoveOnX = SmoothMovement.maxAmount;
if (MoveOnX < -SmoothMovement.maxAmount)
MoveOnX = -SmoothMovement.maxAmount;
*/
if(MoveOnY > SmoothMovement.maxAmount+1)
m = -SmoothMovement.maxAmount;
if(MoveOnY < -SmoothMovement.maxAmount-1)
m = SmoothMovement.maxAmount;
if (MoveOnZ> SmoothMovement.maxAmount)
MoveOnZ = SmoothMovement.maxAmount;
if (MoveOnZ < -SmoothMovement.maxAmount)
MoveOnZ = -SmoothMovement.maxAmount;
//var NewGunPos = new Vector3 (defaultPosition.x+ MoveOnX, defaultPosition.y + m, defaultPosition.z+ MoveOnZ);
var NewGunPos = new Vector3 (transform.localPosition.x, transform.localPosition.y + m, transform.localPosition.z + MoveOnZ);
transform.localPosition = Vector3.Lerp (transform.localPosition, NewGunPos, Time.deltaTime * SmoothMovement.Smooth);
}
function selectWeapon(){
canFire = true;
if(GunType != gunType.KNIFE){
canAim = true;
}
aimed = false;
BroadcastMessage ("takeIn");
}
function deselectWeapon(){
aimed = false;
isReload = false;
canFire = false;
canAim = false;
isReload = false;
BroadcastMessage ("takeOut");
}
}
@script RequireComponent (AudioSource)
@script AddComponentMenu ("FPS system/Weapon System/WeaponScript")