Logging.cs 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using System;
  2. using System.Threading.Tasks;
  3. using UnityEngine;
  4. namespace Logging
  5. {
  6. public class Logging : MonoBehaviour
  7. {
  8. public float writeInterval = 1f;
  9. private float prevLogTimestamp;
  10. private FileLogger logger;
  11. private Task previousLogUpdateTask = Task.CompletedTask;
  12. private void Awake()
  13. {
  14. gameObject.SetActive(GameManager.LOG_TO_FILE);
  15. }
  16. private void Start()
  17. {
  18. logger = FileLogger.Instance;
  19. }
  20. private void Update()
  21. {
  22. if(!previousLogUpdateTask.IsCompleted) return;
  23. var time = Time.time;
  24. var dif = time - prevLogTimestamp;
  25. if (dif >= writeInterval)
  26. {
  27. prevLogTimestamp = time;
  28. previousLogUpdateTask = logger.UpdateRegisteredLogs();
  29. }
  30. }
  31. private async void OnDestroy()
  32. {
  33. await logger.UpdateRegisteredLogs();
  34. FileLogger.DestroyInstance();
  35. }
  36. }
  37. }