I have everything in my script working. Except, when my player collides with my power up, It keep saying NullExceptionReference: Object reference not set to the instance of an object. This is my powerUp collision code and my FireScript Code for the GetComponent
var powerUpSound : GameObject;
function Update () {
}
function OnTriggerEnter(col : Collider)
{
if (col.gameObject.tag == "Player")
{
GameObject.Find("Player(Clone)").GetComponent(FireScript).PowerUpLaser();
Instantiate(powerUpSound, transform.position, transform.rotation);
Destroy(gameObject);
}
}
var laser : GameObject;
var fireFreq : float;
private var lastShot : float;
var laserType : int;
private var laserTimer : float;
function Update () {
if(Input.GetButtonDown("Fire1") (Time.time > lastShot + fireFreq) )
{
Fire();
audio.Play();
}
laserTimer -= 1 * Time.deltaTime;
if (laserTimer < 0)
{
laserType = 0;
}
}
function Fire()
{
lastShot = Time.time;
if (laserType == 0)
{
Instantiate(laser, transform.position, transform.rotation);
} else if (laserType == 1)
{
Instantiate(laser, transform.position, Quaternion.Euler(Vector3(0, -20)) );
yield WaitForSeconds(0.1);
Instantiate(laser, transform.position, transform.rotation);
yield WaitForSeconds(0.1);
Instantiate(laser, transform.position, Quaternion.Euler(Vector3(0, 20)) );
}else if (laserType == 2)
{
Instantiate(laser, transform.position, Quaternion.Euler(Vector3(0, 20)) );
yield WaitForSeconds(0.1);
Instantiate(laser, transform.position, transform.rotation);
yield WaitForSeconds(0.1);
Instantiate(laser, transform.position, Quaternion.Euler(Vector3(0, -40)) );
yield WaitForSeconds(0.1);
Instantiate(laser, transform.position, transform.rotation);
yield WaitForSeconds(0.1);
Instantiate(laser, transform.position, Quaternion.Euler(Vector3(0, 40)) );
}
}
function PowerUpLaser()
{
laserType += 1;
laserTimer = 6;
laserType = Mathf.Clamp(laserType,0,2);
}
popmog78:
I have everything in my script working. Except, when my player collides with my power up, It keep saying NullExceptionReference: Object reference not set to the instance of an object. This is my powerUp collision code and my FireScript Code for the GetComponent
var powerUpSound : GameObject;
function Update () {
}
function OnTriggerEnter(col : Collider)
{
if (col.gameObject.tag == "Player")
{
GameObject.Find("Player(Clone)").GetComponent(FireScript).PowerUpLaser();
Instantiate(powerUpSound, transform.position, transform.rotation);
Destroy(gameObject);
}
}
var laser : GameObject;
var fireFreq : float;
private var lastShot : float;
var laserType : int;
private var laserTimer : float;
function Update () {
if(Input.GetButtonDown("Fire1") (Time.time > lastShot + fireFreq) )
{
Fire();
audio.Play();
}
laserTimer -= 1 * Time.deltaTime;
if (laserTimer < 0)
{
laserType = 0;
}
}
function Fire()
{
lastShot = Time.time;
if (laserType == 0)
{
Instantiate(laser, transform.position, transform.rotation);
} else if (laserType == 1)
{
Instantiate(laser, transform.position, Quaternion.Euler(Vector3(0, -20)) );
yield WaitForSeconds(0.1);
Instantiate(laser, transform.position, transform.rotation);
yield WaitForSeconds(0.1);
Instantiate(laser, transform.position, Quaternion.Euler(Vector3(0, 20)) );
}else if (laserType == 2)
{
Instantiate(laser, transform.position, Quaternion.Euler(Vector3(0, 20)) );
yield WaitForSeconds(0.1);
Instantiate(laser, transform.position, transform.rotation);
yield WaitForSeconds(0.1);
Instantiate(laser, transform.position, Quaternion.Euler(Vector3(0, -40)) );
yield WaitForSeconds(0.1);
Instantiate(laser, transform.position, transform.rotation);
yield WaitForSeconds(0.1);
Instantiate(laser, transform.position, Quaternion.Euler(Vector3(0, 40)) );
}
}
function PowerUpLaser()
{
laserType += 1;
laserTimer = 6;
laserType = Mathf.Clamp(laserType,0,2);
}
Never mind , I found the problem. I had to change my gameObject.find to the PowerUp(Clone) in my game seen. I had deleted the prefab from the game seen and know I am Instantiate in the Awake function. Also, I added a powerUpPrefab: GameObject var in my gamecontroller script.