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(