Method RefreshNameplateScreenPosition
- Namespace
- GrindFest
- Assembly
- GrindFest.dll
RefreshNameplateScreenPosition()
Projects this label to screen space and places its compare half. Called once per frame from TooltipManager's render callback, NOT from Update.
Why the render callback: Cinemachine moves the camera in LateUpdate, so a WorldToScreenPoint done
during Update uses the previous frame's camera - the label trails the object it points at by exactly one
frame of camera motion. Measured 2026-09-23 while the hero was running: 0.06 units of drift per frame
from Update, 0.0000 over 8 of 8 frames from a render-time hook.
This is also the ONLY place the comparison half is placed, and it has to be driven from HERE (the item being compared) rather than from the half itself: the half carries the OTHER item's InteractiveBehaviour, whose own label does not exist while simply holding Ctrl - driving it through that item did nothing at all, so the half kept a stale position and the two halves of one comparison ended up far apart (measured 2026-09-23 with Ctrl+Alt on a Stick: the comparison sat on the item and the Stick's own label was pushed 189 px away, which reads as "the comparison stopped working").
public void RefreshNameplateScreenPosition()