Hi there,
I’m making a game with a cannon which fires cannonballs, and want to only be able to fire a new cannonball once the current one has been destroyed (which happens if it falls of the platform).
I’m guessing I’d have to detect if the gameObject exists in the scene, then use an if statement, but i’m not sure how to integrate this into my code:
var fullWidth : float = 256;
//create a boolean flag we can use to stop and start the choosing of power
var choosing : boolean = false;
//create a private variable (not shown in inspector) to store the current set power
private var thePower : float;
//create a slot to assign my ball prefab to.
var ball : Rigidbody;
//create a slot to assign an empty game object as the point to spawn from
var spawnPos : Transform;
// create a number to multiply the force by as the value of up to 256 may not be enough to
// effectively shoot a ball forward
var shotForce : float = 5;
private var tapCountIsOne : boolean = false;
function Update () {
// detect if key is released and then call the Shoot function, passing the current
// value of 'thePower' variable into it's 'power' argument
if(Input.touchCount > 0 && tapCountIsOne == false){
Debug.Log(Input.touchCount);
tapCountIsOne = true;
Shoot(thePower);
}
if(!choosing){
//create a power variable and set it to ping pong function
//from current time to 1, and multiply that by a number (or variable holding a number)
thePower = Mathf.PingPong(Time.time, 1) * fullWidth;
//set the width of the GUI Texture equal to that power value
guiTexture.pixelInset.width = thePower;
}else if(Input.touchCount == 0){
tapCountIsOne = false;
}
}
// start the 'Shoot' custom function, establish a
// float variable to be fed with a number when function is called
function Shoot(power : float){
//stop the power being changed whilst we shoot a ball by setting choosing boolean to true
choosing = true;
//create a ball, assign the newly created ball to a var called pFab
var pFab : Rigidbody = Instantiate(ball, spawnPos.position, spawnPos.rotation);
//find the forward direction of the object assigned to the spawnPos variable
var fwd : Vector3 = spawnPos.forward;
pFab.AddForce(fwd * power*shotForce);
//pause before resuming the power bar motion
yield WaitForSeconds(2);
//reset choosing to restart the power bar motion
choosing = false;
}
My cannonball is called ball, with the tag “Player” if that helps.
Does anyone know how to do this?
Thanks in advance.