首先介绍一下要用到的几个组件:
1、InputField组件(输入框)
2、Button组件(按钮)
3、Slider组件(进度条)
如果想了解各个组件的详细属性的话给你们分享一下大佬整理的。
InputField:https://blog.csdn.net/weixin_38211198/article/details/89739013
Button:https://blog.csdn.net/weixin_38211198/article/details/89644141
Slider:https://blog.csdn.net/weixin_38211198/article/details/89735906
GreAmbWang大佬太强了,这是我们学习的榜样!!!
—————————————————————————————————
接下来开始实际操作登录界面和加载界面的制作过程
首先我们准备三个场景
分别命名为:logo、loadui和mian
1、在logo场景中添加两个InputField组件和一个Button组件:
编写account代码:
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class account : MonoBehaviour
{
//定义账号文本框
public InputField accountInput;
//定义密码文本框
public InputField passwordInput;
//定义登录成功提示
public GameObject yes;
//定义登录失败提示
public GameObject no;
//自定义OnBtton方法
public void OnBtton()
{
//accountNumber用于接收账号文本框中的内容
string accountNumber = accountInput.text;
//passwordNumber用于接收密码文本框中的内容
string passwordNumber = passwordInput.text;
//判断玩家输入的账号和密码是否正确
if (accountNumber == "123" && passwordNumber == "123")
{
//成功提示
yes.SetActive(true);
//加载到loadui场景中去
SceneManager.LoadSceneAsync("loadui");
StartCoroutine(Disappear());
}
else
{
//失败提示
no.SetActive(true);
//开启携程
StartCoroutine(Disappear());
}
}
//定义Disapper携程
IEnumerator Disappear()
{
//等待两秒回调
yield return new WaitForSeconds(2);
//关闭成功和失败的提示
yes.SetActive(false);
no.SetActive(false);
}
}
把脚本挂载到logo场景中的一个物体上
同时设置Button组件上的点击事件:
把刚刚挂载了account脚本的物体拖拽到On Click()上面选择OnBtton()方法就可以了。
我们来运行一下:
在账号出输入:123,密码输入:1234(设置密码为不可见的方法把密码文本框的属性Content Type的值改为:password,这时你在输入密码就会出现****了!)
与我们在脚本中的账号密码不符合所以提示登录失败了。
我们在试一下输入正确的账号与密码,看它会不会跳到loadui场景:
这就说明我们输入的账号与密码是正确的所以跳到加载画面了。
**
2、loadui场景添加一张背景图片在添加Slider组件:
**
编写loading脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class loading : MonoBehaviour
{
public Slider m_slider;
public Text load;
void Start()
{
//开启携程
StartCoroutine(StartLoading());
}
IEnumerator StartLoading()
{
//定义起始点的值
int from = 0;
//定义终点的值
int to = 100;
//异步操作加载main场景
AsyncOperation op = SceneManager.LoadSceneAsync("main");
//允许场景激活设置为flase
op.allowSceneActivation = false;
while (from < to)
{
from++;
//进度条的累加
m_slider.value = from * 0.01f;
//显示的加载进度
load.text = from.ToString() + "%";
//判断from的值大于90的&from能被3|5整除的时候将等待一秒在回调
if (from >= 90 && (from % 3 == 0 || from % 5 == 0))
{
yield return new WaitForSeconds(1);
}
else
{
//等待帧结束回调
yield return new WaitForEndOfFrame();
}
}
//允许场景激活设置为true
op.allowSceneActivation = true;
}
}
把loading脚本挂载到load场景中的一个物体上:
我们来运行一下:(不会做动图,我就多截图!)
能够切换到mian场景就说明我们成功了!
3、main场景添加字体提示就ok了
—————————————————————————————————
各个场景切换之间需要要切换的场景Scenes In Build的一下:
快捷键:Ctrl+Shift+B
如果没有吧场景Build的一下的话场景是没法切换的,也会报错!
有什么地方需要改进的话麻烦大佬指出,我去改进一下!谢谢!