UI/Player/HitMarker.razor
@using Sandbox.UI
@inherits Panel
<style>
HitMarker {
position: absolute;
width: 100%;
height: 100%;
align-items: center;
justify-content: center;
flex-direction: row;
opacity: 0;
.icon {
position: absolute;
left: 50%;
top: 50%;
transform: translateX(-50%) translateY(-50%);
transition: opacity 0.1s ease;
}
&.show {
opacity: 0.75;
}
}
</style>
<root>
<img class="icon" src="ui/crosshair/hitmarker.png" />
</root>
@code
{
public static HitMarker Current;
private RealTimeSince _timeSinceBorn;
public HitMarker()
{
Current = this;
}
public void OnHit()
{
_timeSinceBorn = 0;
}
public override void Tick()
{
base.Tick();
SetClass( "show", _timeSinceBorn < 0.05f );
}
protected override int BuildHash() => HashCode.Combine( _timeSinceBorn );
}