- Home /
Shooting automativly without using GetButton?
Is it possible to do this? I am making a touch application so i cannot use a keyboard or a mouse, but i need my cannon to shoot by it self. All reserach i have done has to do with "getButton" to make a thing shoot. Can this be done automaticly?
Well, if you had a thing which says 'GetButton', all that does is tell the cannon to fire. If you get rid of that 'if(GetButton)' bit, then it will fire all the time! Isn't that what you want? I'd have thought firing all the time would be simpler than checking for input, first.
It seemed more complicated, but i switched over to another code. It just sends the object flying and then teleports it back to original position without any speed increase from the last time it was sent away. Its basicly an infinite loop of a ball going for 3 seconds and then teleporting back to its original position and doing it all over again. Sent away, teleported back, sent away and so on...
Heres the code:
var speed : float = 2.0;
var timer : float = 0;
var endTime : float = 5;
var initialPos : Vector3;
function Start(){
initialPos = transform.position;
}
function Update() {
transform.position += Time.deltaTime * speed * transform.forward;
timer += Time.deltaTime;
if (timer >= endTime){
transform.position = initialPos;
timer = 0;
}
}
Answer by MonkeyAssassin8 · Oct 28, 2011 at 12:47 PM
If it's for an AI, use a timer and linecasting, like this:
var shootTimer : float = 0;
var fireRate : float = 1;
function Update(){
var layermask = 1<<8; //8 is the layer number to be ignored
layermask = ~layermask;
if(!Physics.Linecast(transform.position, player.gameObject.transform.position, layermask)){
//this draws a line from the attatched object(cannon) to the player, ignoring
//any colliders on layer 8. (The player should be on layer 8).
//If the cannon can see the player, look at it
transform.LookAt(player.gameObject.transform);
if(shootTimer > 0){
shootTimer -= Time.deltaTime;
}
if(shootTimer <= 0){
//shoot at player (either using projectiles or raycastHit)
shootTimer = fireRate;
}
}
}
Your answer
Follow this Question
Related Questions
Slow automatic shooting script? 2 Answers
Raycast damage script 2 Answers
How can I make a gun automatic? 2 Answers
How to make canon shooting?,How to make automatic canon shooting? 0 Answers
Ultimate FPS not working correctly. 0 Answers