Skip to content

Commit 0348692

Browse files
authored
Feat: hide screencapture camera HUD (#5637)
## What does this PR change? Closes #5616 Add possibility to hide screencapture camera HUD - created 2 new keyboard actions for this - add ESC functionality to exit camera mode - add info to shortcuts of screencapture camera HUD - add Notification logic when HUD is hidden ## How to test the changes? 1. Launch the explorer 2. Open screencapture camera by pressing C 3. Observe additional line in shortcut Info Panel describing that **U** is for **Show/Hide UI** 4. Press U and observe HUD is hidden 5. Press U again to see it back --- 1. Launch the explorer 2. Hide in-game UI by pressing U 3. Open screencapture camera by pressing C 4. Press C again to exit 5. Observe in-game UI is shown --- 1. Launch the explorer 2. Make exploratory testing by playing with hiding in-game UI (**U**), open/close screencapture camera (**C**), and hide/show its UI (**U**) ## Our Code Review Standards https://github.com/decentraland/unity-renderer/blob/master/docs/code-review-standards.md ## Copilot summary <!-- copilot:summary --> ### <samp>🤖 Generated by Copilot at 6175fcf</samp> This pull request adds new input actions and UI elements for the screenshot camera feature. It allows the user to exit the screenshot mode, toggle the visibility of the HUD, and see the shortcuts information. It also refactors and cleans up some code related to the `ScreencaptureCameraBehaviour`, the `HUDController`, and the `InputController` classes. It updates the `ScreencaptureCameraHUD` prefab and the `ScreencaptureCamera` assembly definition file. It creates new asset files and meta files for the new input actions.
1 parent f12e67e commit 0348692

File tree

14 files changed

+539
-21
lines changed

14 files changed

+539
-21
lines changed

unity-renderer/Assets/DCLServices/ScreencaptureCamera/CameraObject/Scripts/ScreencaptureCameraBehaviour.cs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ public class ScreencaptureCameraBehaviour : MonoBehaviour
6363
private ICameraReelStorageService cameraReelStorageServiceLazyValue;
6464

6565
// Cached states
66-
private bool prevUiHiddenState;
6766
private bool prevMouseLockState;
6867
private bool prevMouseButtonCursorLockMode;
6968
private Camera prevSkyboxCamera;
@@ -80,8 +79,10 @@ public class ScreencaptureCameraBehaviour : MonoBehaviour
8079

8180
private InputAction_Trigger toggleScreenshotCameraAction;
8281
private InputAction_Trigger toggleCameraReelAction;
82+
private InputAction_Trigger exitScreenshotModeAction;
8383

8484
public DataStore_Player Player { private get; set; }
85+
public bool HasStorageSpace => storageStatus.HasFreeSpace;
8586

8687
private ICameraReelStorageService cameraReelStorageService => cameraReelStorageServiceLazyValue ??= Environment.i.serviceLocator.Get<ICameraReelStorageService>();
8788
private ICameraReelAnalyticsService analytics => Environment.i.serviceLocator.Get<ICameraReelAnalyticsService>();
@@ -109,9 +110,12 @@ internal void Awake()
109110
{
110111
toggleScreenshotCameraAction = Resources.Load<InputAction_Trigger>("ToggleScreenshotCamera");
111112
toggleCameraReelAction = Resources.Load<InputAction_Trigger>("ToggleCameraReelSection");
113+
exitScreenshotModeAction = Resources.Load<InputAction_Trigger>("CloseScreenshotCamera");
112114

113115
toggleScreenshotCameraAction.OnTriggered += ToggleScreenshotCamera;
114116
toggleCameraReelAction.OnTriggered += OpenCameraReelGallery;
117+
118+
exitScreenshotModeAction.OnTriggered += CloseScreenshotCamera;
115119
}
116120

117121
private void Start()
@@ -130,6 +134,7 @@ internal void OnDestroy()
130134
{
131135
toggleScreenshotCameraAction.OnTriggered -= ToggleScreenshotCamera;
132136
toggleCameraReelAction.OnTriggered -= OpenCameraReelGallery;
137+
exitScreenshotModeAction.OnTriggered -= CloseScreenshotCamera;
133138
}
134139

135140
private void OpenCameraReelGallery(DCLAction_Trigger _) =>
@@ -237,8 +242,11 @@ private async void OpenCameraAsync()
237242
isScreencaptureCameraActive.Set(true);
238243
}
239244

245+
private void CloseScreenshotCamera(DCLAction_Trigger _) =>
246+
ToggleScreenshotCamera("Shortcut", isEnabled: false);
247+
240248
private void ToggleScreenshotCamera(DCLAction_Trigger _) =>
241-
ToggleScreenshotCamera("Shortcut", !isScreencaptureCameraActive.Get());
249+
ToggleScreenshotCamera("Shortcut", isEnabled: !isScreencaptureCameraActive.Get());
242250

243251
private void ToggleCameraSystems(bool activateScreenshotCamera)
244252
{
@@ -279,7 +287,6 @@ private void ToggleExternalSystems(bool activateScreenshotCamera)
279287
{
280288
if (activateScreenshotCamera)
281289
{
282-
prevUiHiddenState = allUIHidden.Get();
283290
allUIHidden.Set(true);
284291

285292
cameraModeInputLocked.Set(true);
@@ -289,7 +296,7 @@ private void ToggleExternalSystems(bool activateScreenshotCamera)
289296
}
290297
else
291298
{
292-
allUIHidden.Set(prevUiHiddenState);
299+
allUIHidden.Set(false);
293300
cameraModeInputLocked.Set(false);
294301
cameraLeftMouseButtonCursorLock.Set(prevMouseButtonCursorLockMode);
295302
}

unity-renderer/Assets/DCLServices/ScreencaptureCamera/CameraObject/Scripts/ScreencaptureCameraFactory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public virtual (ScreencaptureCameraHUDController, ScreencaptureCameraHUDView) Cr
2626
{
2727
ScreencaptureCameraHUDView screencaptureCameraHUDView = Object.Instantiate(viewPrefab);
2828

29-
var screencaptureCameraHUDController = new ScreencaptureCameraHUDController(screencaptureCameraHUDView, mainBehaviour, DataStore.i);
29+
var screencaptureCameraHUDController = new ScreencaptureCameraHUDController(screencaptureCameraHUDView, mainBehaviour, DataStore.i, HUDController.i);
3030
screencaptureCameraHUDController.Initialize();
3131

3232
return (screencaptureCameraHUDController, screencaptureCameraHUDView);

unity-renderer/Assets/DCLServices/ScreencaptureCamera/CameraObject/Tests/ScreencaptureCameraShould.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ public override (ScreencaptureCameraHUDController, ScreencaptureCameraHUDView) C
2121
{
2222
ScreencaptureCameraHUDView screencaptureCameraHUDView = Object.Instantiate(viewPrefab);
2323

24-
var screencaptureCameraHUDController = new ScreencaptureCameraHUDController(screencaptureCameraHUDView, mainBehaviour, DataStore.i);
24+
var screencaptureCameraHUDController = new ScreencaptureCameraHUDController(screencaptureCameraHUDView,
25+
mainBehaviour, DataStore.i, HUDController.i);
26+
2527
return (screencaptureCameraHUDController, screencaptureCameraHUDView);
2628
}
2729

unity-renderer/Assets/DCLServices/ScreencaptureCamera/ScreencaptureCamera.asmdef

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@
3737
"GUID:4307f53044263cf4b835bd812fc161a4",
3838
"GUID:15fc0a57446b3144c949da3e2b9737a9",
3939
"GUID:bd51ff2b035ce4ab4be7c38c43c88889",
40-
"GUID:a3ceb534947fac14da25035bc5c24788"
40+
"GUID:a3ceb534947fac14da25035bc5c24788",
41+
"GUID:3bdb7fe910cce8d4888137cded3ba4a2"
4142
],
4243
"includePlatforms": [],
4344
"excludePlatforms": [],

unity-renderer/Assets/DCLServices/ScreencaptureCamera/UI/Prefabs/ScreencaptureCameraHUD.prefab

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2852,6 +2852,11 @@ PrefabInstance:
28522852
propertyPath: m_PreferredHeight
28532853
value: 20
28542854
objectReference: {fileID: 0}
2855+
- target: {fileID: 2418331181663010303, guid: 7ed4827c381405e458c685420f6e002b,
2856+
type: 3}
2857+
propertyPath: m_AnchoredPosition.y
2858+
value: -264
2859+
objectReference: {fileID: 0}
28552860
- target: {fileID: 2573757888587528437, guid: 7ed4827c381405e458c685420f6e002b,
28562861
type: 3}
28572862
propertyPath: m_MinWidth
@@ -2938,6 +2943,16 @@ PrefabInstance:
29382943
propertyPath: m_sharedMaterial
29392944
value:
29402945
objectReference: {fileID: 2100000, guid: 74b83fa9a54124695b9bdd8bea96fa17, type: 2}
2946+
- target: {fileID: 3588575458002850743, guid: 7ed4827c381405e458c685420f6e002b,
2947+
type: 3}
2948+
propertyPath: m_AnchoredPosition.y
2949+
value: -264
2950+
objectReference: {fileID: 0}
2951+
- target: {fileID: 3630878721520962119, guid: 7ed4827c381405e458c685420f6e002b,
2952+
type: 3}
2953+
propertyPath: m_IsActive
2954+
value: 1
2955+
objectReference: {fileID: 0}
29412956
- target: {fileID: 3720230331210976649, guid: 7ed4827c381405e458c685420f6e002b,
29422957
type: 3}
29432958
propertyPath: m_text
@@ -3037,7 +3052,7 @@ PrefabInstance:
30373052
- target: {fileID: 4986538752391755247, guid: 7ed4827c381405e458c685420f6e002b,
30383053
type: 3}
30393054
propertyPath: m_SizeDelta.y
3040-
value: 289.128
3055+
value: 319.6255
30413056
objectReference: {fileID: 0}
30423057
- target: {fileID: 4986538752391755247, guid: 7ed4827c381405e458c685420f6e002b,
30433058
type: 3}

0 commit comments

Comments
 (0)