Hey guys. I am trying to integrate a shooting script into my unity scene! I have applied it to my weapon and have followed the way it is set out. After a number of hours trying to find a way to get around the problem I finally decided to just post here.
The error is: NullReferenceException
WeaponScriptNEW.Update () (at Assets/Scripts/Proper FPS Scripts/WeaponScriptNEW.js:217)
The script is very lengthy so I will just post all the variables and also where the error is pointing to!
/**
* Script written by OMA [www.armedunity.com]
**/
@script ExecuteInEditMode()
enum fireMode { none, semi, auto, burst, launcher}
@HideInInspector
var currentMode = fireMode.semi;
var firstMode = fireMode.semi;
var secondMode = fireMode.launcher;
enum Ammo { Magazines, Bullets }
var ammoMode : Ammo = Ammo.Magazines;
var canReloadLauncher : boolean = false;
var soundDraw : AudioClip;
var soundFire : AudioClip;
var soundReload : AudioClip;
var soundEmpty : AudioClip;
var switchModeSound : AudioClip;
var weaponAnim : GameObject;
var Concrete : GameObject;
var Wood : GameObject;
var Metal : GameObject;
var Dirt : GameObject;
var Blood : GameObject;
var untagged : GameObject;
var layerMask : LayerMask;
var muzzleFlash : Renderer;
var muzzleLight : Light;
var damage : int = 50;
var bulletsPerMag : int = 50;
var magazines : int = 5;
private var fireRate : float = 0.1;
var fireRateFirstMode : float = 0.1;
var fireRateSecondMode : float = 0.1;
var reloadTime : float = 3.0;
var reloadAnimSpeed : float = 1.2;
var drawTime : float = 1.5;
var range : float = 250.0;
var force : float = 200.0;
//Weapon accuracy
private var baseInaccuracy : float;
var baseInaccuracyAIM : float = 0.005;
var baseInaccuracyHIP : float = 1.5;
var inaccuracyIncreaseOverTime : float = 0.2;
var inaccuracyDecreaseOverTime : float = 0.5;
private var maximumInaccuracy : float;
var maxInaccuracyHIP : float = 5.0;
var maxInaccuracyAIM : float = 1.0;
private var triggerTime : float = 0.05;
//Aiming
var hipPosition : Vector3;
var aimPosition : Vector3;
private var aiming : boolean;
private var curVect : Vector3;
var aimSpeed : float = 0.25;
//Field Of View
var zoomSpeed : float = 0.5;
var FOV : int = 40;
private var bulletsLeft : int = 0;
private var m_LastFrameShot : int = -10;
private var nextFireTime : float = 0.0;
@HideInInspector
var reloading : boolean;
private var draw : boolean;
private var weaponCamera : GameObject;
private var mainCamera : GameObject;
private var playing : boolean = false;
@HideInInspector
var selected : boolean = false;
private var player : GameObject;
private var isFiring : boolean = false;
private var bursting : boolean = false;
//Burst
var shotsPerBurst : int = 3;
var burstTime : float = 0.07;
//GUI
var mySkin : GUISkin;
//Launcher
var projectilePrefab : Rigidbody;
var projectileSpeed = 30.0;
var projectiles = 20;
var launchPosition : GameObject;
var fireLauncherAnimGO : GameObject;
var soundReloadLauncher : AudioClip;
private var launcjerReload : boolean = false;
var launcherReloadTime : float = 2.0;
var reloadlauncher : String = "reloadlauncher";
private var rocket : GameObject;
//KickBack
var kickGO : Transform;
var kickUpside : float = 0.5;
var kickSideways : float = 0.5;
//Crosshair Textures
var crosshairFirstModeHorizontal : Texture2D;
var crosshairFirstModeVertical : Texture2D;
var crosshairSecondMode : Texture2D;
private var adjustMaxCroshairSize : float = 6.0;
//Switch Weapon Fire Modes
private var canSwicthMode : boolean = true;
function Start(){
weaponCamera = GameObject.FindWithTag("WeaponCamera");
mainCamera = GameObject.FindWithTag("MainCamera");
player = GameObject.FindWithTag("Player");
muzzleFlash.enabled = false;
muzzleLight.enabled = false;
bulletsLeft = bulletsPerMag;
currentMode = firstMode;
fireRate = fireRateFirstMode;
aiming = false;
if(firstMode == fireMode.launcher){
rocket = GameObject.Find("RPGrocket");
}
if(ammoMode == Ammo.Bullets){
magazines = magazines * bulletsPerMag;
}
}
// This is within the function Update!
if(aiming){
maximumInaccuracy = maxInaccuracyAIM;
baseInaccuracy = baseInaccuracyAIM;
mainCamera.camera.fieldOfView -= FOV * Time.deltaTime/zoomSpeed;
if(mainCamera.camera.fieldOfView < FOV){
mainCamera.camera.fieldOfView = FOV;
}
weaponCamera.camera.fieldOfView -= 40 * Time.deltaTime/zoomSpeed;
if(weaponCamera.camera.fieldOfView < 40){
weaponCamera.camera.fieldOfView = 40;
}
}else{
maximumInaccuracy = maxInaccuracyHIP;
baseInaccuracy = baseInaccuracyHIP;
mainCamera.camera.fieldOfView += 60 * Time.deltaTime/0.5; // This is where the error is pointing to!
if(mainCamera.camera.fieldOfView > 60){
mainCamera.camera.fieldOfView = 60;
}
weaponCamera.camera.fieldOfView += 50 * Time.deltaTime/0.5;
if(weaponCamera.camera.fieldOfView > 50){
weaponCamera.camera.fieldOfView = 50;
}
}
I can’t save nor enable/disable anything within the inspector. I will be very grateful if anyone can help me! Thank you.