Unity教程

在这篇文章中,我们将聊聊如何用 JSON 在 Unity 中实现数据持久化,基于我的项目代码总结经验。

数据持久化的实现

我的项目通过 LoginMager 单例类管理登录和注册数据,用 JSON 保存到本地。以下是核心实现:

  • JSON 数据的加载与保存
    用工具类处理 JSON 文件的读写:
    1
    2
    loginData = jsonInstance.Instance.LoadJson<LoginData>("LoginData", JsonType.NewTonJson);
    jsonInstance.Instance.SaveJson(loginData, "LoginData");

    登录与注册的实现

我的登录和注册功能靠 LoginPanelRegisterPanel 完成,逻辑清晰且用户友好:

  • 登录逻辑
    检查输入并验证合法性:
    1
    2
    3
    4
    5
    6
    7
    8
      if (User_Name.text.Length <= 6 || User_PassWord.text.Length <= 6) { /* 显示提示 */ }
    if (LoginMager.Instance.RegisterIslegal(User_Name.text, User_PassWord.text)) { /* 保存并跳转 */ }


    **注册逻辑**
    检查用户名重复并保存:
    ```csharp
    if (LoginMager.Instance.RegisterDic(Input_UserName.text, Input_Password.text)) { /* 清理并返回登录 */ }

Toggle 控件应用
用 Toggle 实现记住密码和自动登录:

1
RememberTog.onValueChanged.AddListener((isOn) => { if (!isOn) AutoLoginTog.isOn = false; });

服务器选择的实现

  • 按钮事件绑定
    用 Lambda 表达式简化点击事件:
    1
    Rightbut.onClick.AddListener(() => { LoginMager.Instance.loginData1.ServerID = Nowinfos.id; });
    • 服务器选择动态生成
      动态创建按钮并更新信息:
      1
      2
      3
      GameObject rightbut = Instantiate(Resources.Load<GameObject>("UI/Right_But"));
      Right_But RigBut = rightbut.GetComponent<Right_But>();
      RigBut.RightButInfo(nowInfo);