My bullet not hit target bullet is miss the mark

My bullet is not hit target object. target is miss the mark

var enemy:Transform;
var speed:float=0.2;
var bullet:Transform;
var bulletPivot:Transform;
var distance:float=10;

var fireRate:float=0.5;
var i=fireRate;
var fireDirection:Vector3=Vector3.zero;
var fireSpeed:float=150;

var fireAudio:AudioSource;

function Update () {
fireNow();
}

function fireNow(){
var dist=Vector3.Distance(enemy.transform.position,transform.position);

    if (dist<distance){
       if(i>0){
         i-=Time.deltaTime;
       }

       if(i<=0){

         var bulletClone=Instantiate(bullet,bulletPivot.position,Quaternion.identity);

         fireDirection = enemy.transform.position-transform.position;

         bulletClone.transform.rigidbody.AddForce (fireDirection*Time.deltaTime*fireSpeed);

         i=fireRate;

         fireAudio.audio.Play();
       }



    }


}

From what I see here, you’re using:

 bulletClone.transform.rigidbody.AddForce (fireDirection*Time.deltaTime*fireSpeed);

To give the bullet some velocity. However, if it does not have Rigidbody.useGravity set to false; Your bullet will drop as it flies and will not hit the target.

Additionally you are firing your shot with variable force, depending on how distant the target is from the player. I would recommend reading ShootingWeaponScript for some ideas on how to get this to work.

Hope this helps.

Thanks.

Edit: Also, you don’t have to use Time.deltaTime in Addforce. The unity engine takes care of that for you.

useGravity is no problem. My bullet is not shot target. I need basic calculate target position script.

I solved the problem of ^_^. Pivot position is not -transform.position.

fireDirection = enemy.transform.position-bulletPivot.transform.position;