Disparar y municion

Aquí dejo el script para disparar:


public var SplashObject : GameObject;
public var UseRotation : boolean = false;

var punto : GameObject;
var punto_prefab : GameObject;

function Update () {

if (Input.GetKey(KeyCode.Mouse0)){
var hit : RaycastHit;
if (Physics.Raycast(Camera.main.transform.position, Camera.main.transform.forward, hit, Mathf.Infinity)){

punto = Instantiate(punto_prefab, hit.point, transform.rotation);
punto.rigidbody.AddRelativeForce(Vector3(0,0,15),ForceMode.Impulse);

var pos : Vector3 = hit.point;
var rot : Quaternion = Quaternion.identity;
if (UseRotation){
rot = Quaternion.FromToRotation(Vector3.up, hit.normal);
}
Instantiate (SplashObject, pos, rot);
}
}
}

Punto_prefab es un prefab en el que debes poner una esfera, pequeña, invisible (quitándole el mesh renderer en el inspector), con rigidbody. Esto servirá para que cuando dispares a otros objetos, estos se muevan.

Esto dispara como una metralleta, continuadamente. Si quieres que dispare como una pistola solo debes cambiar el GetKey por GetKeyDown.
Esto era para disparar sin tener en cuenta la munición. Con munición, sería el siguiente:

public var SplashObject : GameObject;
public var UseRotation : boolean = false;

var punto : GameObject;
var punto_prefab : GameObject;

var ammo : float;
var HP : int;
var totalAmmo : float;

var recarga : int;

function Update () {

if(totalAmmo > 0 && Input.GetKeyDown(KeyCode.R) ){
if(totalAmmo >= recarga){
ammo = recarga;
}
else{
ammo = totalAmmo;
}
}

if (Input.GetKey(KeyCode.Mouse0) && ammo > 0 && totalAmmo > 0){
ammo -= 5*Time.deltaTime;
totalAmmo -= 5*Time.deltaTime;
var hit : RaycastHit;
if (Physics.Raycast(Camera.main.transform.position, Camera.main.transform.forward, hit, Mathf.Infinity)){

punto = Instantiate(punto_prefab, hit.point, transform.rotation);
punto.rigidbody.AddRelativeForce(Vector3(0,0,15),ForceMode.Impulse);

var pos : Vector3 = hit.point;
var rot : Quaternion = Quaternion.identity;
if (UseRotation)
rot = Quaternion.FromToRotation(Vector3.up, hit.normal);
Instantiate (SplashObject, pos, rot);
}
}
}
La variable recarga debes asignarla en el inspector, es la cantidad de balas que tendrás en el arma cuando recargues pulsando R. Y eso es todo!

Penulis : Oscar ~ Sebuah blog yang menyediakan berbagai macam informasi

Artikel Disparar y municion ini dipublish oleh Oscar pada hari . Semoga artikel ini dapat bermanfaat.Terimakasih atas kunjungan Anda silahkan tinggalkan komentar.sudah ada 0 komentar: di postingan Disparar y municion