123456789101112131415161718192021222324252627282930313233343536373839404142 |
- // Copyright (c) 2025 TerraByte Inc.
- //
- // A new utility class that uses [InitializeOnLoad] to safely cache data
- // from Unity's main thread that is needed by background threads.
- using System.IO;
- using UnityEngine;
- using UnityEditor;
- using UnityEngine.Scripting;
- using Terra.Arbitrator.Settings;
- namespace Terra.Arbitrator.Services
- {
- [Preserve]
- [InitializeOnLoad]
- public static class MainThreadDataCache
- {
- /// <summary>
- /// A thread-safe, cached path to the project's root directory.
- /// </summary>
- public static string ProjectRoot { get; private set; }
- public static string UserName { get; private set; }
- public static string EmailAddress { get; private set; }
- public static string AuthUsername { get; private set; }
- public static string AuthPassword { get; private set; }
- static MainThreadDataCache()
- {
- ProjectRoot = Directory.GetParent(Application.dataPath)?.FullName;
- EditorApplication.update += UpdatePrefValues;
- UpdatePrefValues();
- }
- private static void UpdatePrefValues()
- {
- UserName = EditorPrefs.GetString(BetterGitSettings.UsernameKey, string.Empty);
- EmailAddress = EditorPrefs.GetString(BetterGitSettings.EmailKey, string.Empty);
- AuthUsername = EditorPrefs.GetString(BetterGitSettings.AuthUsernameKey, string.Empty);
- AuthPassword = EditorPrefs.GetString(BetterGitSettings.AuthPasswordKey, string.Empty);
- }
- }
- }
|