< Summary

Class:HUDCanvasCameraModeController
Assembly:UIHelpers
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Helpers/UIHelpers/HUDCanvasCameraModeController.cs
Covered lines:12
Uncovered lines:0
Coverable lines:12
Total lines:31
Line coverage:100% (12 of 12)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
HUDCanvasCameraModeController(...)0%110100%
UpdateCanvas(...)0%330100%
Dispose()0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Helpers/UIHelpers/HUDCanvasCameraModeController.cs

#LineLine coverage
 1using System;
 2using UnityEngine;
 3using UnityEngine.Assertions;
 4
 5/// <summary>
 6/// This helper will prepare the canvas to work in screen space or camera space if the proper DataStore is set
 7/// </summary>
 8public class HUDCanvasCameraModeController : IDisposable
 9{
 10    internal readonly Canvas canvas;
 11    internal readonly BaseVariable<Camera> hudCameraVariable;
 12
 27113    public HUDCanvasCameraModeController(Canvas canvas, BaseVariable<Camera> hudCameraVariable)
 14    {
 27115        Assert.IsNotNull(canvas);
 27116        Assert.IsNotNull(hudCameraVariable);
 17
 27118        this.canvas = canvas;
 27119        this.hudCameraVariable = hudCameraVariable;
 27120        this.hudCameraVariable.OnChange += UpdateCanvas;
 27121        UpdateCanvas(this.hudCameraVariable.Get(), null);
 27122    }
 23
 24    internal void UpdateCanvas(Camera newCamera, Camera oldCamera)
 25    {
 27326        canvas.renderMode = newCamera == null ? RenderMode.ScreenSpaceOverlay : RenderMode.ScreenSpaceCamera;
 27327        canvas.worldCamera = newCamera;
 27328    }
 29
 48630    public void Dispose() { hudCameraVariable.OnChange -= UpdateCanvas; }
 31}