This is a very simple question but... can you give me a script so when i hit a key it shoots a certan game object.
Thanks!!!
(LEAVE INSTRUCTIONS!)
This is a very simple question but... can you give me a script so when i hit a key it shoots a certan game object.
Thanks!!!
(LEAVE INSTRUCTIONS!)
public var snowballPrefab : Transform;
public var snowballSpeed : float = 6000;
function Update(){
if(Input.GetButton("Fire1"))
{
if(!snowballPrefab || !snowballSpeed)
{
Debug.Log("[Shoot] 'bulletPrefab' or 'bulletSpeed' is undefined");
}else{
var snowballCreate = Instantiate(snowballPrefab, GameObject.Find("SSpawnPoint").transform.position, Quaternion.identity);
snowballCreate.rigidbody.AddForce(transform.forward * snowballSpeed);
}
}
}
Try this, replace snowball with your game object. I am still trying to find out a better way:)
dont ask for scripts use the references and learn it yourself
put A empty game object in front of your gun ( where u want to shoot from) and name it “spawnPoint” then attach this script:
var fireRate : float = 0.1;
var Prefab: Transform;
private var nextFire = 0.0;
var speed : float = 50;
function Update () {
if(Input.GetKey("mouse 0")&&Time.time > nextFire){
nextFire = Time.time + fireRate;
var copy = Instantiate(Prefab,GameObject.Find("spawnPoint").transform.position,transform.rotation);
copy.rigidbody.velocity = transform.TransformDirection(Vector3.forward * speed);
}
}
to the player, you can edit the fire rate, in the inspecter panel make sure to when it says prefab, add a game object there, such as a cube or sphere.
// attach this script with your gun and put an empty game object as a child of gun which work as spawn point of bullet
public class AutoFire : MonoBehaviour {
public float frequency = 10;
public float coneAngele = 1.0f;
public bool firing = false;
public float hitSoundVolume = 5f;
public GameObject muzzleFlash;
public AudioClip soundHit;
private float _lastFireTime = -1;
private RaycastHit _hitInfo;
private Quaternion _coneRandomRotation;
private Vector3 _force;
private GameObject _bullet;
private Transform _spawnPoint;
RaycastHit hitInfo;
void Start () {
if(muzzleFlash) muzzleFlash.active = false;
_force = new Vector3(0,0,0);
_bullet=Resources.Load("Prefabs/bullet", typeof(GameObject))as GameObject;
if(!_bullet){
Debug.LogError("keep bullet prefab in Resources/Prefabs/bullet");
}
foreach(Transform tr in transform){
if(tr){
_spawnPoint=tr;
}
}
}
// Update is called once per frame
void Update () {
if (firing) {
if (Time.time > _lastFireTime + 1 / frequency) {
//coneRandomRotation= Quaternion.Euler (Random.Range(-coneAngele, coneAngele), Random.Range(-coneAngele, coneAngele),0);
_coneRandomRotation = Quaternion.Euler(0, 0, 0);
GameObject go= Instantiate(_bullet,_spawnPoint.position,Quaternion.Euler(Vector3.zero)) as GameObject;
SimpleBulletOrMissile bulletOrMissile = go.GetComponent<SimpleBulletOrMissile>();
_lastFireTime = Time.time;
Physics.Raycast (go.transform.position, go.transform.up,out _hitInfo,Mathf.Infinity,-5);
if (_hitInfo.transform)
{
print(_hitInfo.transform.tag+"hitted");
Health targetHealth = _hitInfo.transform.GetComponent<Health>();
if (targetHealth)
{
//kill or health damage of target
}
if (_hitInfo.rigidbody)
{
//if want to apply force on enemy
hitInfo.rigidbody.AddForceAtPosition(_force, hitInfo.point, ForceMode.Impulse);
}
AudioSource.PlayClipAtPoint(soundHit, _hitInfo.point, hitSoundVolume);
bulletOrMissile.dist = _hitInfo.distance;
}
else {
bulletOrMissile.dist = 50;
}
}
}
if(Input.GetMouseButton(0)){
OnStartFire();
}
if(Input.GetMouseButtonUp(0)){
OnStopFire();
}
}
void OnStartFire() {
if (Time.timeScale == 0)
return;
firing = true;
if(muzzleFlash) muzzleFlash.active = true;
if (audio) audio.Play();
}
void OnStopFire() {
firing = false;
if(muzzleFlash) muzzleFlash.active = false;
if (audio) audio.Stop();
}
//attach this script with bullet
public class SimpleBulletOrMissile : MonoBehaviour {
public float speed = 10;
public float lifeTime = 0.5f;
public float dist = 100;
private float _spawnTime = 0.0f;
private Transform _tr;
// Use this for initialization
void OnEnable () {
_tr = transform;
_spawnTime = Time.time;
}
// Update is called once per frame
void Update () {
_tr.position += _tr.forward * speed * Time.deltaTime;
dist -= speed * Time.deltaTime;
if (Time.deltaTime > _spawnTime + lifeTime || dist < 0) {
// print("Destroy form bullet");
Destroy(gameObject);
}
}