A game about forced loneliness, made by TACStudios
1using System; 2using System.Collections.Generic; 3using UnityEditor.DeploymentTargets; 4using UnityEditor.TestTools.TestRunner.CommandLineTest; 5using UnityEngine; 6 7namespace UnityEditor.TestRunner.TestLaunchers 8{ 9 [Serializable] 10 internal class RemotePlayerLogController : ScriptableSingleton<RemotePlayerLogController> 11 { 12 private List<LogWriter> m_LogWriters; 13 14 private Dictionary<string, DeploymentTargetLogger> m_Loggers; 15 16 private string m_DeviceLogsDirectory; 17 18 public void SetBuildTarget(BuildTarget buildTarget) 19 { 20 m_Loggers = GetDeploymentTargetLoggers(buildTarget); 21 22 if (m_Loggers == null) 23 Debug.Log("Deployment target logger could not be created"); 24 } 25 26 public void SetLogsDirectory(string dir) 27 { 28 m_DeviceLogsDirectory = dir; 29 } 30 31 public void StartLogWriters() 32 { 33 if (m_DeviceLogsDirectory == null || m_Loggers == null) 34 return; 35 36 m_LogWriters = new List<LogWriter>(); 37 38 foreach (var logger in m_Loggers) 39 { 40 m_LogWriters.Add(new LogWriter(m_DeviceLogsDirectory, logger.Key, logger.Value)); 41 logger.Value.Start(); 42 } 43 } 44 45 public void StopLogWriters() 46 { 47 if (m_LogWriters == null) 48 return; 49 50 foreach (var logWriter in m_LogWriters) 51 { 52 logWriter.Stop(); 53 } 54 } 55 56 private Dictionary<string, DeploymentTargetLogger> GetDeploymentTargetLoggers(BuildTarget buildTarget) 57 { 58 DeploymentTargetManager deploymentTargetManager; 59 60 try 61 { 62 deploymentTargetManager = DeploymentTargetManager.CreateInstance(EditorUserBuildSettings.activeBuildTargetGroup, buildTarget); 63 64 if (deploymentTargetManager == null) 65 return null; 66 } 67 catch (NotSupportedException ex) 68 { 69 Debug.Log(ex.Message); 70 Debug.Log("Deployment target logger not initialised"); 71 return null; 72 } 73 74 var targets = deploymentTargetManager.GetKnownTargets(); 75 var loggers = new Dictionary<string, DeploymentTargetLogger>(); 76 77 foreach (var target in targets) 78 { 79 if (target.status != DeploymentTargetStatus.Ready) continue; 80 81 var logger = deploymentTargetManager.GetTargetLogger(target.id); 82 logger.Clear(); 83 loggers.Add(target.id, logger); 84 } 85 86 return loggers; 87 } 88 } 89}