I made a copy of the game that I’m making. In the first game the player would get damage from shooting his own bullets and the bullet does shoot forward, but now in the second one it now deals damage to player and doesn’t move forward.
public class Boundary// Custom class to contain the boundary values;
{
public float xMin, xMax, zMin, zMax;
}
public class PlayerController : MonoBehaviour
{
public Rigidbody rb;
public float speed; // The speed multiplayer of the ship movement;
public Boundary boundary;// Gives the custom class a var name that can be called up within the script;
public float tilt;
public GameObject bullit;
public Transform bullitSpawn;
public float fireRate;
private float nextFire;
public GameManager GM;
public DamageScript damageScript;
public float dammageTotal;
// Start is called before the first frame update;
void Start()
{
rb = GetComponent<Rigidbody>();// Gives the rigidbody a var name that can be used in the script;
}
void Update()
{
if (Input.GetButton("Jump") && Time.time > nextFire)
{
nextFire = Time.time + fireRate;
Instantiate(bullit, bullitSpawn.position, bullitSpawn.rotation);
}
}
public void FixedUpdate()
{
// Gets direction input from unity defualt movement settings;
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
// Below is the section that controlls the movement of the ship and its movement speed;
Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);
rb.velocity = movement * speed;
// Below is the movement boundaries set for the player;
rb.position = new Vector3
(
Mathf.Clamp(rb.position.x, boundary.xMin, boundary.xMax),
6.0f,
Mathf.Clamp(rb.position.z, boundary.zMin, boundary.zMax)
);
rb.rotation = Quaternion.Euler(0.0f, 0.0f, rb.velocity.x * -tilt);
}
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Bullits"))
{
dammageTotal = damageScript.damageValue;
GM.DamageReceived(dammageTotal);
}
}
}
public class BullitMove : MonoBehaviour
{
public Rigidbody rb;
public float bulletSpeed;
// Start is called before the first frame update
void Start()
{
rb = GetComponent<Rigidbody>();
rb.velocity = transform.forward * bulletSpeed;
}
}