首先大家来了解下PlayerPrefs:
适用设备:Mac OSX、Linux、Windows、Web player
存储机制:Key-Value
可存储变量类型:int,float,string
静态方法:setFloat :存储float类型的数据
setInt:存储int类型的数据
setString:存储string类型的数据
Deleteall:删除所有数据
getFloat:通过key值获取float类型的数据
getInt:通过key值获取int类型的数据
getString:通过key值获取String类型的数据
HasKey:判断是否在该key值得数据
现在开始给大家做demo来演示单机版的登录界面功能
1首先建立三个场景,命名为Scene1和Scene2和Scene3
2在Scene1中建立登录界面,先建立一个Plane命名为BG,然后建立2个InputFile,分别改名为Account和Password ,Account作为输入账号,Password作为输入密码,然后建立俩个Button,将俩个Button改名为Login和Register,一个是登录按钮,一个是注册按钮,然后让大家看下效果图,
大概就是这个效果,由于自己太懒,就没找素材,大家将就着看吧,我相信大家可以领悟到其中的精髓
3然后在Scene2中建立和Scene1中一样的界面,(你可以把Scene1中的Canvas做成预设体,然后打开Scnene2场景,将预设体直接拖进去,这样是不很简单!!)但是你要把登录和注册按钮上的Text改下 ,直接上图
这样场景就搭建完了,下面进入我们枯燥的脚本环节
将该脚本赋给场景Scene1下的BG,由于本人喜欢用鼠标点击事件,所以大家记得把Button都加上点击事件呦!
添加场景命名空间和UI的命名空间
//账号InputField Account;
//密码InputField PassWord;
//登陆按钮Button Bit_Lagin;
//注册按钮Button Bit_Register;
//public GameObject Plane1;
public GameObject Plane2;
void Awake(){Account = transform .FindChild ("Account").GetComponent();
PassWord = transform.FindChild ("PassWord").GetComponent();
Bit_Lagin = transform.FindChild ("Login").GetComponent();
Bit_Register = transform.FindChild ("Register").GetComponent();
Plane1.SetActive (false );
Plane2.SetActive (false );
}
void Start(){
//DontDestroyOnLoad (GetComponent());music = GetComponent();
music.clip = ac;DontDestroyOnLoad (this .gameObject );}
void Update(){
}
////// 鼠标点击事件
/// 当账号和密码都不为空时跳转场景,当有一个为空时就会出现Plane1
///public void LoginBtn(){music.Play ();
if (Account.text != "" && PassWord.text != "" ) {
Plane2.SetActive (true
);
if (Account .text == PlayerPrefs .GetString ("m_usename") && PassWord .text == PlayerPrefs .GetString ("m_passworld"))
{
print ("账号密码输入成功");
Plane2.SetActive (false );
SceneManager.LoadScene ("Scene3");
}} else {
Plane1.SetActive (true);
}}
public void ClosePlane1(){Plane1.SetActive (false );
Plane2.SetActive (false );
}
public void Register(){
SceneManager.LoadScene ("Scene2");
}
将该脚本赋给Scene2,记得加场景的命名空间,和UI的命名空间,
记得Button点击事件呦
public InputField m_usename;
public InputField m_passworld;
// Use this for initialization
void Start () {AS = GetComponent();
}
// Update is called once per frame
void Update () {}
//////如果注册成功,点击注册按钮跳转回登陆界面
///
public void RegisterBtn (){
if (m_usename.text != "" && m_passworld.text != "") {
PlayerPrefs.SetString ("m_usename", m_usename.text);PlayerPrefs.SetString ("m_passworld", m_passworld.text);
SceneManager.LoadScene ("Scene1");
} else {
print ("账号和密码都不注册你还想玩游戏");
}}
////// 如果不想注册,点击取消按钮跳转到登陆界面
/////trueif this instance cancel ; otherwise,false.
public void CancelBtn (){
SceneManager.LoadScene ("Scene1");
}
最后记得把场景都放到Building Seting里面
可能由于粘贴的原因,会出现错误,
如果想学的同学可以加我的QQ841909433,记得表明加我的原因,我会耐心的为你们讲解的