Altro mio antico articolo che ripropongo, revisionato, volentieri!
—
Qualche tempo fa 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.
Non è forse incredibile? 😀
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, scrivete sul FORUM!