ExampleComponents/Gun.cs
public sealed class Gun : Component
{
[Property] public GameObject ObjectToSpawn { get; set; }
protected override void OnUpdate()
{
if ( IsProxy )
return;
var pc = Components.GetInAncestors<PlayerController>();
if ( !pc.IsValid() )
return;
var lookDir = pc.EyeAngles.ToRotation();
if ( Input.Pressed( "Attack1" ) )
{
var pos = WorldPosition + Vector3.Up * 40.0f + lookDir.Forward.WithZ( 0.0f ) * 50.0f;
var o = ObjectToSpawn.Clone( pos );
o.Enabled = true;
var p = o.Components.Get<Rigidbody>();
p.Velocity = lookDir.Forward * 500.0f + Vector3.Up * 540.0f;
o.NetworkSpawn();
}
}
}