Add visibility requirement when selecting runtime targets

This commit is contained in:
2026-04-25 18:03:58 +02:00
parent cddbd0aa74
commit 0e4fbb2480

View File

@@ -5854,12 +5854,14 @@ export class RuntimeHost {
options: {
exclude?: RuntimeTargetReference | null;
maxDistanceFromPlayer?: number;
requirePlayerVisibility?: boolean;
} = {}
): RuntimeTargetCandidate | null {
const exclude = options.exclude ?? null;
const maxDistanceFromPlayer = options.maxDistanceFromPlayer ?? null;
const requirePlayerVisibility = options.requirePlayerVisibility ?? false;
const playerEyePosition =
maxDistanceFromPlayer === null
maxDistanceFromPlayer === null && !requirePlayerVisibility
? null
: this.currentPlayerControllerTelemetry?.eyePosition ?? null;
let bestCandidate: RuntimeTargetCandidate | null = null;
@@ -5883,6 +5885,14 @@ export class RuntimeHost {
continue;
}
if (
requirePlayerVisibility &&
(playerEyePosition === null ||
!this.isRuntimeTargetVisibleFrom(playerEyePosition, candidate))
) {
continue;
}
const screenPoint = this.resolveRuntimeTargetScreenPoint(candidate.center);
if (