Endiss
1
Okay so i’m new in unity and got some problem with shooting bullet in direction of shooter. Could someone help me solve this out?
Here are my classes:
using UnityEngine;
using System.Collections;
public class characterCombat : MonoBehaviour {
#region --Pubs--
public GameObject ammo;
public string weaponName = "H&K";
public int weaponMinDmg = 4;
public int weaponMaxDmg = 15;
#endregion
#region --Privs--
#endregion
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if(Input.GetKeyDown(KeyCode.F))
{
Vector3 playerPosition = new Vector3(transform.position.x,transform.position.y,transform.position.z);
Instantiate(ammo,playerPosition,transform.rotation);
}
}
}
using UnityEngine;
using System.Collections;
public class bulletMove : MonoBehaviour {
#region --Pubs--
public int bulletRange;
public float bulletSpeed;
public GameObject shooter;
#endregion
#region --Privs--
private Vector3 startPos;
private Quaternion rotation;
#endregion
// Use this for initialization
void Start () {
shooter = GameObject.FindGameObjectWithTag("Player");
startPos = shooter.transform.position;
rotation = shooter.transform.rotation;
}
// Update is called once per frame
void Update () {
float distance = Vector3.Distance(startPos,transform.position);
Debug.Log(distance);
float move = bulletSpeed * Time.deltaTime;
transform.Translate(startPos * move);
if(distance >=bulletRange)
{
Destroy(gameObject);
}
}
}
I think the only change you have to make is on line 55:
transform.Translate(transform.forward * move);
This assumes that you want the bullet coming from the shooter. Your question says, " direction of shooter," which says towards the shooter. If you want the bullet to go towards the shooter, then there are a few more changes to make.
Note the typical way most folks shoot a bullet is to add a Rigidbody (which uses Unity’s physics engine).
Endiss
3
Could you show me of example how to shoot bullet with rigidbody?