public void SetVelocityPerSecond(float velocity) { _velocity = velocity; totalTerrainLength = MathCalculations.MaxBounds()[0]; delta = (_velocity / totalTerrainLength) * 2f; }
private float GetHitProbability(GameObject ownShip, GameObject target, double missileRange) { double totalTerrainLength = MathCalculations.MaxBounds()[0]; float missileUnityUnits = (float)(missileRange / totalTerrainLength) * 2f; float distance = Vector3.Distance(ownShip.transform.position, target.transform.position); if (distance <= missileUnityUnits) { Vector3 targetDir = target.transform.position - ownShip.transform.position; float angle = Vector3.Angle(targetDir, ownShip.transform.forward); //Is in semi sphere cone if (angle > 90f) { float directionalProbability = angle / 180f; float distanceProbability = 1 - (distance / missileUnityUnits); return(distanceProbability * directionalProbability); } } return(0f); }