Unity3D笔记之---简单的注册与登陆

来源:互联网 发布:手机淘宝怎么修改价格 编辑:程序博客网 时间:2024/06/06 03:57

今天来给大家分享一个关于Unity3D的比较简单的注册与登陆界面

    >注册与登陆界面所涉及的知识点并不是很多,第一步就是搭建一个UI界面


   














注意:

  1. 搭建UI的时候一定要先进行适配,否则的话分辨率一改变,原先的图片就会失真
  2. 尽量都放在panel上
  3. 起名子的时候一定要见名知意,方便自己知道那个是那个,对其进行操作
  4. 搭建的层次一定要准确,不然到时候有可能你的Button就用不了

   >第二步进行代码操作

1、挂在载pan_Login_Window上的脚本

using UnityEngine;using System.Collections;using UnityEngine.UI;using System;using UnityEngine.SceneManagement;/// <summary>/// 此脚本挂载在pan_Login_Window上/// </summary>public class Register : MonoBehaviour{    //  为了方便在此我就选择拖拽的方式    //  三个输入表格,为了引用表格中输入的文本    [SerializeField]    InputField m_inpfiName;    [SerializeField]    InputField m_inpufiPwd;    [SerializeField]    InputField m_ConfimPwd;    //  完成按钮    [SerializeField]    Button m_Wancheng;    //  提示文本    [SerializeField]    Text m_Tips;    //  登陆界面    [SerializeField]    GameObject m_pan_Login_Window;    //  可见密码    [SerializeField]    Toggle m_SeePwd;    private void Start()    {        m_SeePwd.onValueChanged.AddListener(OnSeePwd);        m_inpfiName.onEndEdit.AddListener(OnNameEnd);        m_ConfimPwd.onEndEdit.AddListener(OnPwdEnd);        m_Wancheng.onClick.AddListener(OnWancheng);    }    //  使密码可见    private void OnSeePwd(bool arg0)    {        //  转换密码类型        m_inpufiPwd.contentType = arg0 ? InputField.ContentType.Standard : InputField.ContentType.Password;        m_inpufiPwd.Select();    }    //  当结束编辑名字的时候,查看是否已经存在该用户名    private void OnNameEnd(string arg0)    {        if (PlayerPrefs.HasKey(m_inpfiName.text))        {            m_Tips.text = "改用户名已经存在";        }    }    private void OnPwdEnd(string arg0)    {        if (m_ConfimPwd.text!=m_inpufiPwd.text)        {            m_Tips.text = "前后用户名输入不一致";        }    }    private void OnWancheng()    {        //  playerprefs中不存在这个名字,两次密码输入一致,存入Playerprefs,到登陆界面        if (!PlayerPrefs.HasKey(m_inpfiName.text))        {            if (m_inpufiPwd.text==m_ConfimPwd.text)            {                PlayerPrefs.SetString(m_inpfiName.text, m_ConfimPwd.text);                gameObject.SetActive(false);                m_pan_Login_Window.SetActive(true);            }        }    }}
2、挂在载pan_Register_Window上的脚本

using UnityEngine;using System.Collections;using UnityEngine.UI;using System;using UnityEngine.SceneManagement;/// <summary>/// 此脚本挂载在pan_Register_Window上/// </summary>public class Register : MonoBehaviour{    //  为了方便在此我就选择拖拽的方式    //  三个输入表格,为了引用表格中输入的文本    [SerializeField]    InputField m_inpfiName;    [SerializeField]    InputField m_inpufiPwd;    [SerializeField]    InputField m_ConfimPwd;    //  完成按钮    [SerializeField]    Button m_Wancheng;    //  提示文本    [SerializeField]    Text m_Tips;    //  登陆界面    [SerializeField]    GameObject m_pan_Login_Window;    //  可见密码    [SerializeField]    Toggle m_SeePwd;    private void Start()    {        m_SeePwd.onValueChanged.AddListener(OnSeePwd);        m_inpfiName.onEndEdit.AddListener(OnNameEnd);        m_ConfimPwd.onEndEdit.AddListener(OnPwdEnd);        m_Wancheng.onClick.AddListener(OnWancheng);    }    //  使密码可见    private void OnSeePwd(bool arg0)    {        //  转换密码类型        m_inpufiPwd.contentType = arg0 ? InputField.ContentType.Standard : InputField.ContentType.Password;        m_inpufiPwd.Select();    }    //  当结束编辑名字的时候,查看是否已经存在该用户名    private void OnNameEnd(string arg0)    {        if (PlayerPrefs.HasKey(m_inpfiName.text))        {            m_Tips.text = "改用户名已经存在";        }    }    private void OnPwdEnd(string arg0)    {        if (m_ConfimPwd.text!=m_inpufiPwd.text)        {            m_Tips.text = "前后用户名输入不一致";        }    }    private void OnWancheng()    {        //  playerprefs中不存在这个名字,两次密码输入一致,存入Playerprefs,到登陆界面        if (!PlayerPrefs.HasKey(m_inpfiName.text))        {            if (m_inpufiPwd.text==m_ConfimPwd.text)            {                PlayerPrefs.SetString(m_inpfiName.text, m_ConfimPwd.text);                gameObject.SetActive(false);                m_pan_Login_Window.SetActive(true);            }        }    }}

注意:

  1. 注册登陆一般都是同一个界面,然后与游戏场景是不同场景,在运行前一定要进行Building setting,在file菜单下,把需要的场景拖进去,关闭就好
  2. 再次我运用了playerprefs,这个类的功能比较强大,可以存入,可以得到里面的数据,一旦存入,关闭程序后再运行还是存在原先存入过的数据
  3. 为了方便,所以我选择了拖拽的方式,但是一定要记得拖拽,不然就会报空引用。

此篇文章只是简单的注册与登陆,仅供大家参考,有什么问题的话,欢迎大家留言或者私信我 

原创粉丝点击