Unity入门第七天:计时器/切换页面

坦克大战做的差不多了,作为收尾,讲讲计时器和如何切换页面
并附上完整的代码链接

生了一个礼拜的病,所以鸽了一个礼拜

计时器

这是在youtube上学来的,放在这个坦克大战里也一点都不突兀。

代码非常的简单

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class Timer : MonoBehaviour
{
#先设立计时器的最大值,现在的时间,和显示他的文本,是否时间结束
[SerializeField] private float maxTime;
[SerializeField] private float currentTime;
[SerializeField] private Text timeDisplay;
[SerializeField] private bool isTimeOver;

#初始化:让显示文本等于最大时间
private void Awake(){
currentTime = maxTime;
timeDisplay.text = maxTime.ToString();
}
private void Update()
{
if(!isTimeOver){
#如果没有到时间,就每秒递减
currentTime -= Time.deltaTime;
#同步到显示文本
timeDisplay.text = ((int)currentTime).ToString();
}

//如果小于5秒,字体颜色更加醒目(红)
if (currentTime <= 5){
timeDisplay.color = new Vector4(200,0,0,255);//Red, green, blue, alpha
}
//小于0秒,时间结束
if(currentTime <= 0){
isTimeOver = true;
}
}
}

切换页面

操作具体是W键选1,S键选2,空格确认。

但主要方法是:SceneManager.LoadScene(1);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement; ##这个必须要加

public class Option : MonoBehaviour
{
//选项
private int choice = 1;
//实例化选项位置
public Transform posOne;
public Transform posTwo;

void Start()
{
}

void Update()
{
//如果是w就选1
if (Input.GetKeyDown(KeyCode.W))
{
choice = 1;
transform.position = posOne.position;
}
//如果是s就选2
else if (Input.GetKeyDown(KeyCode.S))
{
choice = 2;
transform.position = posTwo.position;
}

//如果是1且空格就切换到游戏
if (choice == 1 && Input.GetKeyDown(KeyCode.Space))
{
//加载游戏场景
SceneManager.LoadScene(1); #切换场景的灵魂
}
}
}

通过这个方法成功把小组作业的两个游戏拼在一起了,很满足。
需要注意的是我们需要先导入LoadScene,具体方法是:
File -> BildSettings –> 依次按顺序托入场景 –> 叉掉

完整的程序包链接:
https://github.com/yangocean-sudo/Tank-War

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2020-2024 Yangyang Cui

请我喝杯咖啡吧~

支付宝
微信