RequiresPlayerNearby.cs
using Sandbox;
public sealed class RequiresPlayerNearby : Component, Component.ITriggerListener
{
int playersNearby;
void ITriggerListener.OnTriggerEnter( GameObject other )
{
// did we get triggered by a player?
var playerController = other.GetComponent<PlayerController>();
if ( playerController is null ) return;
// enable all children
foreach ( var child in GameObject.Children )
{
child.Enabled = true;
}
playersNearby++;
}
void ITriggerListener.OnTriggerExit( GameObject other )
{
if ( other.GetComponent<PlayerController>() is null ) return;
playersNearby--;
if ( playersNearby == 0 )
{
foreach ( var child in GameObject.Children )
{
child.Enabled = false;
}
}
}
}