C#本地化注册登录
//引入头文件:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
[Serializable]//序列化
public class Message//定义类
{
public string Accounttext;
public string Passwordtext
}
[Serializable]//序列化
public class Messagelist
{
public List<Message> list = new List<Message>();
}
public class Login : MonoBehaviour {
public InputField Account;
public InputField Password;
public Button LoginBt;
public Button SingoinBt;
public string Accounttext;
public string Passwordtext;
public string Path="D://message.txt";
public Messagelist ml;
public Image warning;
public Text warningtext;
void Start ()
{
LoginBt.onClick.AddListener(LoginFunction);
SingoinBt.onClick.AddListener(SingoinFunction);
ml = new Messagelist();
}
bool IsNull()//判断是否为空
{
if (Account.text == string.Empty)//有对象,但对像没有值
{
warning.gameObject.SetActive(true);
warningtext.text = "账号不能为空";
return true;
}
if (Password.text == string.Empty)
{
warning.gameObject.SetActive(true);
warningtext.text = "密码不能为空";
return true;
}
Accounttext = Account.text;
Passwordtext = Password.text;
return false;
}
void LoginFunction()
{
if (IsNull())
{
return;
}
if (FileFunction(Path,true))
{
return;
}
for (int i = 0; i <ml.list.Count; i++)
{
if (ml.list[i].Accounttext == Accounttext)
{
if (ml.list[i].Passwordtext == Passwordtext)
{
print("登录成功");
//跳转场景
return;
}
else
{
warning.gameObject.SetActive(true);
warningtext.text = "密码错误";
return;
}
}
else if (i ==ml. list.Count - 1)
{
warning.gameObject.SetActive(true);
warningtext.text = "账号不存在,请先注册";
}
}
}
void SingoinFunction()
{
if (IsNull())
{
return;
}
if (FileFunction(Path))
{
for (int i = 0; i < ml.list.Count; i++)
{
if (ml.list[i].Accounttext == Accounttext)
{
warning.gameObject.SetActive(true);
warningtext.text = "账号已存在";
return;
}
}
}
Message m = new Message();
m.Accounttext = Accounttext;
m.Passwordtext = Passwordtext;
ml.list.Add(m);
//创建流
FileStream fs = new FileStream("D://message.txt", FileMode.OpenOrCreate);
//二进制读取流
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs, ml);
fs.Flush();
fs.Close();
fs.Dispose();
warning.gameObject.SetActive(true);
warningtext.text = "注册成功";
}
bool FileFunction(string s,bool flag=false)
{
FileStream fs = new FileStream(s, FileMode.OpenOrCreate);//创建流
BinaryFormatter bf = new BinaryFormatter();//二进制读取流
if (fs.Length != 0)
{
ml = (Messagelist)bf.Deserialize(fs);
if (!flag)
{
fs.Flush();
fs.Close();
fs.Dispose();
return true;
}
}
else if(flag)
{
warning.gameObject.SetActive(true);
warningtext.text = "账号不存在,请先注册";
fs.Flush();
fs.Close();
fs.Dispose();
return true;
}
fs.Flush();
fs.Close();
fs.Dispose();
return false;
}
}