SetNet.Projectiles
1.2.0
dotnet add package SetNet.Projectiles --version 1.2.0
NuGet\Install-Package SetNet.Projectiles -Version 1.2.0
<PackageReference Include="SetNet.Projectiles" Version="1.2.0" />
<PackageVersion Include="SetNet.Projectiles" Version="1.2.0" />
<PackageReference Include="SetNet.Projectiles" />
paket add SetNet.Projectiles --version 1.2.0
#r "nuget: SetNet.Projectiles, 1.2.0"
#:package SetNet.Projectiles@1.2.0
#addin nuget:?package=SetNet.Projectiles&version=1.2.0
#tool nuget:?package=SetNet.Projectiles&version=1.2.0
SetNet.Projectiles
Server-authoritative travelling projectiles (arrows, rockets, grenades) for SetNet — with the same pluggable hit test as SetNet.Hitscan.
Each tick a projectile advances and sweeps the segment from its old to its new position through your IHitDetector, so it can't tunnel through thin targets. It replicates nothing — you read positions / handle Hit and send your own way.
using SetNet.Projectiles;
using SetNet.Hitscan;
// same IHitDetector you use for hitscan (yours, or the shipped detectors)
var world = new ProjectileSystem(detector, new ProjectileOptions
{
Gravity = new Vec3(0, -9.81f, 0), // omit for straight-line shots
});
world.Hit += (p, hit) => Damage(hit.TargetId!, ((Weapon)p.Tag!).Damage);
world.Expired += p => { /* fizzle out */ };
world.Spawn(new ProjectileSpawn
{
Origin = muzzle, Direction = aimDir, Speed = 40f,
OwnerId = "player", MaxDistance = 100, LifetimeMs = 5000, Tag = weapon,
});
- Bring your own hit detection via
IHitDetector(seeSetNet.Hitscan) — targets, world geometry, or your own physics. - Sweep, don't teleport — the per-step raycast catches fast projectiles vs thin targets.
- Gravity / ballistics —
ProjectileOptions.Gravitycurves the path; velocity updates each step. - Lifetime & range —
LifetimeMs/MaxDistanceauto-expire. - Auto-ticks — implements
SetNet.Ticks.ITickable: setnew TickScheduler().MakeCurrent()and it drives itself (channelprojectiles@Hz); orUseInternalTimer, or callUpdate(dtMs)from your loop.
Projectile: Position/Velocity/OwnerId/Traveled/Alive/Tag. Events: Spawned, Hit(Projectile, HitResult), Expired(Projectile).
Depends on SetNet.Hitscan + SetNet.GeoData + SetNet.Ticks. No wire. License: MIT.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- SetNet.GeoData (>= 1.2.0)
- SetNet.Hitscan (>= 1.2.0)
- SetNet.Ticks (>= 1.2.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.2.0 | 94 | 8/5/2026 |