< Summary

Class:AvatarSystem.BaseAvatar
Assembly:AvatarSystem
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/AvatarSystem/BaseAvatar.cs
Covered lines:15
Uncovered lines:16
Coverable lines:31
Total lines:76
Line coverage:48.3% (15 of 31)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
BaseAvatar(...)0%110100%
GetArmatureContainer()0%2100%
GetMainRenderer()0%2100%
Initialize()0%6200%
FadeOut()0%6.566075%
CancelTransition()0%12300%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/AvatarSystem/BaseAvatar.cs

#LineLine coverage
 1using System.Collections;
 2using System.Collections.Generic;
 3using System.Threading;
 4using Cysharp.Threading.Tasks;
 5using UnityEngine;
 6
 7namespace AvatarSystem
 8{
 9    public class BaseAvatar : IBaseAvatar
 10    {
 011        public IBaseAvatarRevealer avatarRevealer { get; set; }
 12        private ILOD lod;
 13        private Transform avatarRevealerContainer;
 2214        private CancellationTokenSource transitionCts = new CancellationTokenSource();
 15
 16        public GameObject armatureContainer;
 017        public SkinnedMeshRenderer meshRenderer { get; private set; }
 18
 2219        public BaseAvatar(Transform avatarRevealerContainer, GameObject armatureContainer, ILOD lod)
 20        {
 2221            this.avatarRevealerContainer = avatarRevealerContainer;
 2222            this.armatureContainer = armatureContainer;
 2223            this.lod = lod;
 2224        }
 25
 26        public GameObject GetArmatureContainer()
 27        {
 028            return armatureContainer;
 29        }
 30
 31        public SkinnedMeshRenderer GetMainRenderer()
 32        {
 033            return avatarRevealer.GetMainRenderer();
 34        }
 35
 36        public void Initialize()
 37        {
 038            if (avatarRevealer == null)
 39            {
 040                avatarRevealer = UnityEngine.Object.Instantiate(Resources.Load<GameObject>("LoadingAvatar"), avatarRevea
 041                avatarRevealer.InjectLodSystem(lod);
 042            }
 43            else
 44            {
 045                avatarRevealer.Reset();
 46            }
 47
 048            meshRenderer = avatarRevealer.GetMainRenderer();
 049        }
 50
 51        public async UniTask FadeOut(MeshRenderer targetRenderer, bool withTransition, CancellationToken cancellationTok
 52        {
 153            if (avatarRevealerContainer == null)
 054                return;
 55
 156            transitionCts ??= new CancellationTokenSource();
 157            CancellationToken linkedCt = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, transitionCt
 158            linkedCt.ThrowIfCancellationRequested();
 59
 160            avatarRevealer.AddTarget(targetRenderer);
 61            //If canceled, the final state of the avatar is handle inside StartAvatarRevealAnimation
 162            await avatarRevealer.StartAvatarRevealAnimation(withTransition, linkedCt);
 63
 164            transitionCts?.Dispose();
 165            transitionCts = null;
 166        }
 67
 68        public void CancelTransition()
 69        {
 070            transitionCts?.Cancel();
 071            transitionCts?.Dispose();
 072            transitionCts = null;
 073        }
 74
 75    }
 76}