Add visibility requirement when selecting runtime targets
This commit is contained in:
@@ -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 (
|
||||
|
||||
Reference in New Issue
Block a user