Skip to content

Commit c00db12

Browse files
authored
fix: sdk billboard ignoring virtual cameras (#6756)
1 parent 34ec29d commit c00db12

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

Explorer/Assets/DCL/SDKComponents/Billboard/System/BillboardSystem.cs

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,25 @@ public BillboardSystem(World world, IExposedCameraData exposedCameraData) : base
2626

2727
protected override void Update(float t)
2828
{
29-
var cameraRotationAxisZ = Quaternion.Euler(0, 0, exposedCameraData.WorldRotation.Value.eulerAngles.z);
30-
Vector3 cameraPosition = exposedCameraData.WorldPosition;
29+
// Get the active camera position and rotation from CinemachineBrain if available,
30+
// otherwise fall back to exposedCameraData values (player camera)
31+
Vector3 cameraPosition;
32+
Quaternion cameraRotation;
33+
34+
var activeVirtualCamera = exposedCameraData.CinemachineBrain?.ActiveVirtualCamera;
35+
if (activeVirtualCamera != null)
36+
{
37+
var cameraTransform = activeVirtualCamera.VirtualCameraGameObject.transform;
38+
cameraPosition = cameraTransform.position;
39+
cameraRotation = cameraTransform.rotation;
40+
}
41+
else
42+
{
43+
cameraPosition = exposedCameraData.WorldPosition;
44+
cameraRotation = exposedCameraData.WorldRotation.Value;
45+
}
46+
47+
var cameraRotationAxisZ = Quaternion.Euler(0, 0, cameraRotation.eulerAngles.z);
3148
UpdateRotationQuery(World, cameraPosition, cameraRotationAxisZ);
3249
}
3350

0 commit comments

Comments
 (0)