Quantcast
Channel: Questions in topic: "addforce"
Viewing all articles
Browse latest Browse all 1264

Instantiating bullet and moving forward with rigidbody

$
0
0
Hello i have a script for the players shooting, the original script works fine (script 1). But when i try to add a bullet spread i rotate it with a random value on the y axis but it doesnt rotate and instead just goes one way, even if i rotate the player. (script 2) Any help is welcome. **UPDATE** I changed the code a bit and now it works, but it doesnt go where the player looks nextFire = Time.time + fireRate; //spawn bullet ammo--; GameObject spawnedBullet2 = Instantiate (bulletPrefab) as GameObject; spawnedBullet2.GetComponent ().laserDamage = damage; spawnedBullet2.transform.position = spawnPos.transform.position; Rigidbody rb1 = spawnedBullet2.GetComponent (); //spawnedBullet2.transform.rotation = transform.rotation; Quaternion rot = new Quaternion(transform.rotation.x, spawnPos.transform.rotation.y + Random.Range (-recoil, recoil), spawnPos.transform.rotation.z, 2); spawnedBullet2.transform.rotation = rot; rb1.AddForce (spawnedBullet2.transform.forward * 1000); //rb1.velocity = spawnedBullet2.transform.forward * force; (Script 2) using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class ShootScript : MonoBehaviour { public string weaponName = "null"; public GameObject bulletPrefab; public float force; public float fireRate; public Transform spawnPos; public float recoil; public float damage; float nextFire; public float ammo; public float maxAmmo; public Text ammoP1; public Text ammoP2; void Start () { ammo = maxAmmo; } void FixedUpdate () { //fix ammo if (ammo > maxAmmo) { ammo = maxAmmo; } if (ammo < 0) { ammo = 0; } //shoot if (this.tag == "P1") { //text ammoP1.text = ammo.ToString("F0"); if (ammo > 0) { if (Input.GetKey (KeyCode.Space) && Time.time > nextFire) { nextFire = Time.time + fireRate; //spawn bullet ammo--; GameObject spawnedBullet2 = Instantiate (bulletPrefab) as GameObject; spawnedBullet2.GetComponent ().laserDamage = damage; spawnedBullet2.transform.position = spawnPos.transform.position; Rigidbody rb1 = spawnedBullet2.GetComponent (); //spawnedBullet2.transform.rotation = transform.rotation; spawnedBullet2.transform.rotation = new Quaternion (spawnPos.transform.rotation.x, spawnPos.transform.rotation.y + Random.Range (-recoil, recoil), spawnPos.transform.rotation.z, 0); rb1.AddForce (spawnedBullet2.transform.forward * 1000); //rb1.velocity = spawnedBullet2.transform.forward * force; } } } if (this.tag == "P2") { //text ammoP2.text = ammo.ToString("F0"); if (ammo > 0) { if (Input.GetKey (KeyCode.Space) && Time.time > nextFire) { nextFire = Time.time + fireRate; //spawn bullet ammo--; GameObject spawnedBullet2 = Instantiate (bulletPrefab) as GameObject; spawnedBullet2.GetComponent ().laserDamage = damage; spawnedBullet2.transform.position = spawnPos.transform.position; Rigidbody rb1 = spawnedBullet2.GetComponent (); //spawnedBullet2.transform.rotation = transform.rotation; spawnedBullet2.transform.rotation = new Quaternion (spawnPos.transform.rotation.x, spawnPos.transform.rotation.y + Random.Range (-recoil, recoil), spawnPos.transform.rotation.z, 0); rb1.AddForce (spawnedBullet2.transform.forward * 1000); //rb1.velocity = spawnedBullet2.transform.forward * force; } } } } }

Viewing all articles
Browse latest Browse all 1264

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>