Quantcast
Channel: Questions in topic: "gun"
Viewing all articles
Browse latest Browse all 592

Going crazy over simple bullets not instantiating in the correct position

$
0
0
I made a simple shooting script which will spawn a bullet prefab in the position and rotation of a bullet emitter which is infront of my gun object and is a child of my gun object. The issue I am having which I have never some across before when creating similar scripts is that at the beginning it works fine then the bullets begin spawning in weird spots. I attached a screen shot along with my shooting script and my projectile movement script. In the screen shot the highlighted object in the scene view is the bullet emitter and the white spheres are the bullets I shot traveling along their trajectory. This seems very simple straight forward but I don't know whats causing it at first I thought it was scripts dealing with recoil and weapon sway so I turned them off and it didn't fix the problem. Any advice or help would be appreciated Thank you. **This is my shooting script.** public class Gun : MonoBehaviour { public Recoil recoiler; public float fireRate = 0.5F; public GameObject bullet; public Transform bulletEmitter; private float nextFire = 0.0F; // Use this for initialization void Start () { } // Update is called once per frame void Update () { if(Input.GetMouseButtonDown(0)&& Time.time > nextFire){ //every time you fire a bullet, add to the recoil.. of course you can probably set a max recoil etc.. recoiler.recoil+= 0.1f; nextFire = Time.time + fireRate; Instantiate(bullet,bulletEmitter.position,bulletEmitter.rotation); } recoiler.recoiling(); } } **This is my projectile movement script**! #pragma strict var speed = 20.0; var time=0.0; var TravelTime=1.5; var impact : Transform; var Destroyer : Transform; function Start () { } function FixedUpdate () { time+=Time.deltaTime;//addes to the time variable based on time passed in each frame transform.Translate(Vector3.forward * speed * Time.deltaTime, Space.Self); //space.self means with respect to its own spacial coordinates. if(time > TravelTime) { Destroy(gameObject); Instantiate(Destroyer, transform.position, transform.rotation); } } function OnCollisionEnter(projectileCollision : Collision){ // Rotate the object so that the y-axis faces along the normal of the surface var contact : ContactPoint = projectileCollision.contacts[0]; var rot : Quaternion = Quaternion.FromToRotation(Vector3.up, contact.normal); var pos : Vector3 = contact.point; Instantiate(impact, pos, rot); // Destroy the projectile Destroy (gameObject); } ![alt text][1] [1]: /storage/temp/47157-capture.png

Viewing all articles
Browse latest Browse all 592

Trending Articles



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