Сделай это у меня в коде на юнити 3. Добавлен аккаунт администратора
	Данные аккаунта администратора генерируеюся и показываются при первом запуске
	При входе в аккаунт администратора доступны дополнительные функции (просмотр результатов и тд) надо чтобы это сгенерировалось и сохранялось на пк где то в защищенном виде. и еще вот что нужно мне 
4. Создан менеджер аккаунтов
	Из режима администратора можно зайти в менеджер аккаунтов
	Можно создать новый аккаунт сгенерировать логин и пароль к нему. изменить логин и пароль. удалить аккаунт. вот код который уже есть. using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using Michsky.MUIP;
using TMPro;

public class LocalAuthManager : MonoBehaviour
{
    public TMP_InputField usernameInput;
    public TMP_InputField passwordInput;
    public ButtonManager loginButton;
    public TMP_Text feedbackText;

    public ButtonManager projectButton;

    void Start()
    {
        loginButton.onClick.AddListener(OnLoginButtonClicked);
    }


    void OnLoginButtonClicked()
    {
        if (usernameInput.text == "123" && passwordInput.text == "123")
        {
            LoginSuccess();
        }
        else
        {
            feedbackText.text = "Неправильный логин или пароль.";
        }
    }

    public void LoginSuccess()
    {
        feedbackText.text = "Успешный тестовый вход!";
        projectButton.Interactable(true);
        loginButton.Interactable(false);
        usernameInput.text = "";
        passwordInput.text = "";
    }
} вот пример сохранения данных с шифрованием using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
using EasyButtons;
using UnityEngine;

/// <summary>
/// Обработчик файлов ключей: сохранение и загрузка с использованием шифрования.
/// </summary>
public static class KeyFileHandler
{
    private static readonly string encryptionKey = "YourStrongEncryptionKey123!";

    /// <summary>
    /// Сохраняет объект KeyData в зашифрованный файл.
    /// </summary>
    /// <param name="path">Путь к файлу.</param>
    /// <param name="keyData">Данные ключа для сохранения.</param>
    public static void SaveKeyToFile(string path, KeyData keyData)
    {
        try
        {
            string json = JsonUtility.ToJson(keyData);
            byte[] encryptedData = Encrypt.EncryptStringToBytes_Aes(json, encryptionKey);
            File.WriteAllBytes(path, encryptedData);
            Debug.Log("Ключ успешно сохранен: " + path);
        }
        catch (Exception ex)
        {
            Debug.LogError("Ошибка при сохранении ключа: " + ex.Message);
        }
    }

    /// <summary>
    /// Загружает объект KeyData из зашифрованного файла.
    /// </summary>
    /// <param name="path">Путь к файлу.</param>
    /// <returns>Загруженные данные ключа или null в случае ошибки.</returns>
    public static KeyData LoadKeyFromFile(string path)
    {
        try
        {
            if (File.Exists(path))
            {
                byte[] encryptedData = File.ReadAllBytes(path);
                string json = Encrypt.DecryptStringFromBytes_Aes(encryptedData, encryptionKey);
                KeyData keyData = JsonUtility.FromJson<KeyData>(json);
                Debug.Log("Ключ успешно загружен: " + keyData);
                return keyData;
            }
            else
            {
                Debug.LogError("Файл ключа не найден: " + path);
                return null;
            }
        }
        catch (Exception ex)
        {
            Debug.LogError("Ошибка при чтении ключа: " + ex.Message);
            return null;
        }
    }

}using System;
using System.Collections.Generic;
using System.IO;
using System.Security.Cryptography;
using System.Text;
using UnityEngine;

/// <summary>
/// Управляет сохранением и загрузкой информации об активированных модулях.
/// </summary>
public static class ActivationManager
{
    private static readonly string encryptionKey = "YourActivationEncryptionKey!";
    private static readonly string activationFileName = "activation.cache";

    /// <summary>
    /// Сохраняет список активированных модулей в файл.
    /// </summary>
    /// <param name="activatedModuleIds">Список идентификаторов активированных модулей.</param>
    public static void SaveActivatedModules(List<KeyData> keys)
    {
        try
        {
            string json = JsonUtility.ToJson(new ActivationData(keys));
            byte[] encryptedData = Encrypt.EncryptStringToBytes_Aes(json, encryptionKey);
            string path = Path.Combine(Application.persistentDataPath, activationFileName);
            File.WriteAllBytes(path, encryptedData);
            Debug.Log("Информация об активированных модулях сохранена.");
        }
        catch (Exception ex)
        {
            Debug.LogError("Ошибка при сохранении активации: " + ex.Message);
        }
    }

    /// <summary>
    /// Загружает список активированных модулей из файла.
    /// </summary>
    /// <returns>Список идентификаторов активированных модулей.</returns>
    public static List<KeyData> LoadActivatedModules()
    {
        try
        {
            string path = Path.Combine(Application.persistentDataPath, activationFileName);
            Debug.Log("Путь к файлу активаций: " + path);
            if (File.Exists(path))
            {
                byte[] encryptedData = File.ReadAllBytes(path);
                string json = Encrypt.DecryptStringFromBytes_Aes(encryptedData, encryptionKey);
                ActivationData data = JsonUtility.FromJson<ActivationData>(json);
                Debug.Log("Информация об активированных модулях загружена.");
                return data.keysData;
            }
            else
            {
                Debug.Log("Файл активации не найден. Возвращается пустой список.");
                return new List<KeyData>();
            }
        }
        catch (Exception ex)
        {
            Debug.LogError("Ошибка при загрузке активации: " + ex.Message);
            return new List<KeyData>();
        }
    }

} если какието вопросы будут задавай чтобы я тебя лучше направил.