Unity3D开发RPG游戏—注册操作和主角状态信息保存更新实现

本文介绍了Unity3D中RPG游戏的注册操作修复和主角状态信息保存更新。修复了登录功能的遍历BUG,通过添加注册按钮实现了用户信息写入。此外,详细阐述了角色状态UI设计、状态保存代码编写思路,以及具体的游戏数据管理实现。
摘要由CSDN通过智能技术生成

Unity3D开发RPG游戏—注册操作和主角状态信息保存更新实现

登录操作BUG修复

在上篇的登录功能完成时,出现了问题:登录操作的原理为根据用户列表的txt文件遍历查找是否存在相关用户信息,存在则登录成功。但在测试中发现,只有txt文件第一行的用户信息可以被读出,即遍历和对比出现问题。编写的判断是否登录成功方法中返回值的为bool型,在遍历第一行数据时,若不符合,直接返回了false,不再遍历下面的内容,因此,在该函数开头新建一个bool型变量,只在循环体中,判断正确时,将其赋值为true,即可解决问题。

bool LoginGame(string User,string Pass)
    {
   
        bool IsOK = false; 

        string[] allUser = File.ReadAllLines(Application.dataPath + "/Date/UserList.txt");

        for (int i = 0; i < allUser.Length; i++)
            {
   
                string[] Use = allUser[i].Split(':');
                if (Use[0] == User)
                {
   
                    //用户名正确
                    if (Use[1] == Pass)
                    {
   
                        //完全正确
                        IsOK = true;
                    }

                }


            }

        return IsOK;
    }

添加注册功能

注册功能原理即为在点击登录按钮时,已固定的格式,将输入框中的用户名和密码写入用户信息列表的txt文件中。因此只需在UI界面中再添加一个button,并在其属性栏On Click()中,把GameManage代码拖拽给它,再选择好点击注册按钮要运行的函数。
该函数的代码为:

public void OnRegisterButton()
    {
   
        if (string.IsNullOrEmpty(UserName.text))
        {
   
            UserNameTest.text = "用户名为空";
        }

        if (string.IsNullOrEmpty(PassWord.text))
        {
   
            PassWordTest.text = "密码为空";
        }
        else
        {
   
            string path = Application.dataPath + "/Date/UserList.txt";//文件存放路径,保证文件存在。
            StreamWriter sw = new StreamWriter(path, true);
            sw.WriteLine(UserName.text+":"+PassWord.text);
            sw.Close();
        }
    }

注意,这里使用StreamWriter方法而不使用WriteAllLine,后者在选定已有文件的时候,写入时会直接覆盖数据。

主角状态保存和更新相关

UI界面

在界面中加入技能栏和角色头像,血条蓝条等级等UI要素。
值得一提的是,主角的血条和蓝条使用的是Slider控件,该控件可以通过更改其属性Value更改其显示的前景色显示的长短。后期通过更改这个数值实现掉血。
在这里插入图片描述

代码编写思路

首先要创建一个代码PlayerState.cs用于存储角色信息相关的变量(例如等级,血量,蓝量,经验值,金钱值,位置信息等)作为存档信息。
在GameManage代码中,登录成功后,添加代码,如果该用户是第一次登入游戏,创建该用户,该角色的状态信息,写入名为该用户名相同的txt中。再次登录时,登陆成功后,直接读出该信息并赋予其角色即可。如果游戏过程中角色升级,在代码PlayerState.cs中,编写好升级的相关属性数值变化规则,再重新写入数据即可。

具体代码和Unity中相关操作操作

在UI界面完成后,同样需要和上一篇一样,控制UI界面的显示问题,直接使用SetActive方法即可,记得要在GameManage中创建相关变量,并在Unity中拖拽相关UI模块赋值。

创建代码PlayerState.cs


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值