使用PlayerPrefs来做个简单的登录功能

首先大家来了解下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,记得表明加我的原因,我会耐心的为你们讲解的

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,188评论 19 139
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,921评论 0 17
  • 暮雨纷纷扫玉阶,灯花点点恋眉睫。 竹移影动佳人泪,落笔深情纸上歇。 注:新韵
    幽小窗阅读 3,660评论 40 50
  • 地铁上看安娜卡列琳娜。 主角其实并不太吸引我,我目前最爱的是列文。 尤其是今天这一段,列文割草。 聪明却质朴的列文...
    bressanone121阅读 3,462评论 2 2

友情链接更多精彩内容