Da un pò mi sono addentrato nel mondo di Unity 3D. Sapete, la grafica 3D mi ha sempre affascinato, sapete perché? E’ possibile, grazie alle vostre mani e alla vostra immaginazione, creare qualsiasi cosa. Fiumi, laghi, mari, monti, pianure, persone, oggetti. Qualsiasi cosa. Come preferite, come la desiderate.
Oggi vi propongo uni script (lo ammetto, l’ho trovato sul web, non sono così bravo) che permette di sparare (unico colpo o tipologia mitragliatore) per dei giochi di tipo FPS, ovvero Sparatutto in terza persona.
Ecco lo script:
//the bullet we are shooting must have a rigidbody
var Bullet : Transform;
//the speed the bullet is shot at
var Speed = 16000;
//where the bullet spawns (most likely the tip of the gun)
var spawnPoint : Transform;
//if we shoot like a machinegun or not
var RapidFire = false;
//if we shoot every click or not
var SingleFire = true;
//this is only used if rapid fire is set to true
private var shooting = false;
//RateOfFire private
var Counter = Time.deltaTime;
var RateOfFire = 0.250000;function FixedUpdate ()
{
//if single fire is set to true
if(SingleFire==true){
//we are using the left mouse button to shoot
if(Input.GetButtonUp(“Fire1”)){
//we create the bullet
var shot =Instantiate(Bullet, spawnPoint.transform.position, Quaternion.identity);
//we add the speed
shot.rigidbody.AddForce(transform.forward * Speed); } }
if(RapidFire ==true){
if(Input.GetButtonDown(“Fire1”)){
shooting=true;
}
if(Input.GetButtonUp(“Fire1”)){
shooting=false;
}
if(shooting==true){ Counter += Time.deltaTime;
if(RateOfFire
<
Counter){
var shotRapid =Instantiate(Bullet, spawnPoint.transform.position,
Quaternion.identity);
//we add the speed
shotRapid.rigidbody.AddForce(transform.forward * Speed);
Counter=0; } } } }
E’ scritto in Javascript, quindi per usarlo dovrete aprire un file .java vuoto e incollarlo dentro. Vi spiego brevemente cosa fa.
Assegna un RigidBody al proiettile, perché è bene che sia un corpo rigido, quindi che sia sottoposto alla legge di gravità ecc., poi imposta la velocità del proiettile (variabile speed), avete la variabile RapidFire che serve a stabilire se volete un monocolpo oppure un fucile mitragliatore, lo script poi imposta di sparare con il tasto sinistro del mouse (vedere Input.GetButtonUp) ecc.
Provatelo per capire di cosa è capace! Per dubbi o domande, scriveteci sul FORUM!