How to make mortar like trajectory directed at enemy position
I am very much hard stuck on this problem and have run out of ideas on how to make it work. I tried Vector3.Distance and using floats but nothing seems to work. Any help or hint at how to make mortar trajectory is appreciated. The system is basic, There is a tower that shoots mortar ammunition at the enemy position. How can i make a system that knows what elevation the mortar is, the mass of the bomb including gravity and velocity, and knowing when the bomb is gonna hit the ground for that accuracy. The code i have currently is very messy because im testing things.
public void ShootMortar() { GameObject go = Instantiate(MortarBomb, MortarExit.position,
MortarExit.transform.rotation); go.GetComponent()._towerr = this; go.GetComponent().damage = this.Damage; go.GetComponent().Radius = this.ExplosionRadius; go.GetComponent().Target = null;
Vector3 g1 = new Vector3(0, MortarExit.transform.position.y, 0);
Vector3 g2 = new Vector3(0, MortarExit.transform.position.y, 0);
float Distance = Vector3.Distance(MortarExit.transform.position, Target.transform.position);
float height = MortarExit.transform.position.y - Target.transform.position.y;
float c = Mathf.Sqrt(Mathf.Abs(Mathf.Pow(Distance, 2) - Mathf.Pow(height, 2)));
Debug.Log("c:" + c + "height:" + height + "Distance" + Distance);
go.GetComponent<Rigidbody>().AddForce(Vector3.forward * c, ForceMode.Impulse);
go.GetComponent<Rigidbody>().AddForce(Vector3.up * (c * 5), ForceMode.Impulse);
}