public void Fire_Miss(Transform weaponSpawn, Vector3 _targetPosition, Weapon _weapon, float _UnitSize) { if (WeaponSpawns.Contains(weaponSpawn)) { var ammo = _weapon.projectile; var speed = _weapon.projectileSpeed; bool XDir = (Game.Random.Next(0, 10) > 5); bool YDir = (Game.Random.Next(0, 10) > 5); bool ZDir = (Game.Random.Next(0, 10) > 5); float X = _UnitSize; float Y = _UnitSize; float Z = _UnitSize; if (XDir) { X = -X; } if (YDir) { Y = -Y; } if (ZDir) { Z = -Z; } X = _UnitSize + _targetPosition.x; Y = _UnitSize + _targetPosition.y; Z = _UnitSize + _targetPosition.z; Vector3 ShotTarget = (new Vector3(X, Y, Z)); var heading = ShotTarget - transform.position; ShotTarget = ShotTarget + heading; ProjectileScript projectile = Instantiate(ammo, weaponSpawn.position, Quaternion.identity) as ProjectileScript; projectile.MissTarget(ShotTarget, speed); } }