Unity3D制作3dRPG游戏——登录系统
Unity3D制作3dRPG游戏——登录系统
⽬录
设定辅助摄像机(登录界⾯背景)
在unity中操作,复制⼀个原本指向主⾓的摄像机,把其⾝上挂载的上⼀步控制镜头的代码⼀出,选定⼀个位置,在菜单栏GameObject-
>Align with view。
UI界⾯设计
整体为⼀个Canvas
账号和密码两个输⼊框为UI–>Input Field,可进⾏设置初始提⽰⽂本,和输⼊后⽂本类型(例如设置密码栏输⼊时为“*******”)
登录按钮为Button
另外设置⼏个普通text⽤来显⽰提⽰信息(例如登录失败,账号密码不能为空等)
编写代码GameManage思路过程
⾸先注意添加需要的using语句,UI操作的using UnityEngine.UI和读取txt操作的using System.IO
确定使⽤MVC架构单例模式创建好构造函数。
声明主⾓的相关资源(控制主⾓和摄像机的显⽰)和登录操作所需的相关资源
编写⼀个重置函数,并在Start()中调⽤,即每次启动该项⽬都从重置函数中所写的情况开始运⾏。包括关闭主摄像机和主⾓的显⽰(利⽤SetActive(true/false)来改变相关变量)。
编写⽅法检测相关输⼊框中的内容,根据情况显⽰信息。
创建⼀个txt⽂件⽤来存放登录信息。
编写⼀个⽅法,遍历整个txt⽂档,并跟从输⼊框中得到的信息⽐对,⽐对正确即可完成登录。
编写登录成功函数,登录成功后,让辅助摄像机关闭,打开主摄像机和主⾓显⽰,⽅法和重置函数相同。
代码GameManage和实现登录操作
在unity中创建空物体重命名GameManage。
把代码GameManage.cs挂载给空物体GameManage。并把unity中相关变量的物体拖拽⾄代码中对应的地⽅。
在两个Input Field的属性列表中,把GameManage拖拽到On Value Changed()和On End Edit()中,分别选定好相对应的函数(⽤户名选择⽤户名相关的函数,密码选择密码相关的函数)。
在button的属性列表中,把GameManage拖拽到On Click()中,选定点击按钮进⾏运⾏的函数。
另外,为了使登录成功后,UI界⾯跟随辅助摄像机同时消失,在Canvas下新建⼀个Plane,把所有⽤到的UI元素全都放置在Plane下,在代码中加⼊控制Plane显⽰消失的语句(SetActive(true/false))。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System.IO;
public class GameManage : MonoBehaviour
{
#region单例模式
//MVC架构单例模式
public static GameManage Index;
生生世世爱/// <summary>
/// 构造函数
/
在梦里吻的脸是什么歌// </summary>
GameManage()//当这个代码出现的时候,⾸先运⾏这个函数{
Index =this;
}
#endregion
#region关于主⾓的资源
[Header("主摄像机")]
//主摄像机
public GameObject MainCame;
[Header("⾓⾊")]
//⾓⾊
public GameObject Players;
#endregion
#region关于登录
[Header("登录相机")]
//登录相机
public GameObject LoginCame;
//⽤户名输⼊
public InputField UserName;
//密码输⼊
public InputField PassWord;
//检测⽤户名
public Text UserNameTest;
//检测密码
public Text PassWordTest;
//登陆失败提⽰
public Text FailTips;
//登录界⾯
public GameObject Login;
#endregion
// Start is called before the first frame update
void Start()
{
Res();
查一下我的韵达快递}
// Update is called once per frame
void Update()
{
}
//复位函数
private void Res()
{
//关闭主摄像机,关闭主⾓显⽰,打开从摄像机,显⽰UI界⾯ MainCame.SetActive(false);
Players.SetActive(false);
LoginCame.SetActive(true);
Login.SetActive(true);
}
public void OnChanged()
{
Debug.Log("我的值改变了");举重49公斤级是什么意思
}
public void OnUserEnd()
{
if(string.))
{
< ="⽤户名不能为空";
}
}
public void OnPassWordEnd()
{
if(string.))
{
< ="密码不能为空";
}
}
//按下登录按钮
public void OnLoginButton()
{
if(string.))
{
< ="⽤户名为空";
}
if(string.))
{
< ="密码为空";
}
else
{
Debug.Log("您输⼊的账号是"+ +"/r您输⼊的密码是"+ );
//⽹络游戏本环节是想服务器请求登录,⽐较数据库中的账号密码是否匹配
if(, ))
{
Debug.Log("登陆成功");
LoginIsOK();
}
else
{
< ="登陆失败";
Debug.Log("登陆失败");
}
}
}
bool LoginGame(string User,string Pass)
{
//把txt中的信息读出穿个⼀个新的string变量
string[] allUser = File.ReadAllLines(Application.dataPath +"/");
//遍历整个读取到的txt中的信息
for(int i =0; i < allUser.Length; i++)
{
string[] Use = allUser[i].Split(':');
贵州贵阳旅游景点if(Use[0]== User)
{
//⽤户名正确
if(Use[1]== Pass)
祝老师节日快乐的句子{
//完全正确
return true;
}
else
{
< ="密码错误";
return false;
}
}
else
{
< ="⽤户名不存在";
return false;
}
}
return false;
}
//登录成功
void LoginIsOK()
{
//打开主摄像机,⾓⾊显⽰,关闭从摄像机和UI显⽰ LoginCame.SetActive(false);
MainCame.SetActive(true);
Players.SetActive(true);
Login.SetActive(false);
}
}
Unity3D开发RPG游戏—登录操作的实现
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论