Unity3d Survival Shooter Tutorial 学习笔记(八)---游戏结束

1.在HUDCanvas下新建Image:ScreenFader

设置为全屏显示,且颜色设置为浅蓝

Unity3d Survival Shooter Tutorial 学习笔记(八)---游戏结束_第1张图片

Unity3d Survival Shooter Tutorial 学习笔记(八)---游戏结束_第2张图片

2.添加GameOverText

并设置Text参数:

Unity3d Survival Shooter Tutorial 学习笔记(八)---游戏结束_第3张图片

3.调整HUDCanvas顺序,与就是渲染顺序:

Unity3d Survival Shooter Tutorial 学习笔记(八)---游戏结束_第4张图片

Unity3d Survival Shooter Tutorial 学习笔记(八)---游戏结束_第5张图片

4.初始化时,把GameOverText和ScreenFader的透明度设置为0:

Unity3d Survival Shooter Tutorial 学习笔记(八)---游戏结束_第6张图片

5.把Animator Controller用在UI上,使得UI动起来!

Unity3d Survival Shooter Tutorial 学习笔记(八)---游戏结束_第7张图片

create GameOverClip:

Unity3d Survival Shooter Tutorial 学习笔记(八)---游戏结束_第8张图片

unity会自动生成HUDCanvas的Animator Controller

Unity3d Survival Shooter Tutorial 学习笔记(八)---游戏结束_第9张图片

Unity3d Survival Shooter Tutorial 学习笔记(八)---游戏结束_第10张图片

GameOver时,

GameOverText透明度由0增强到1

GameOverText大小变大

ScoreText大小变小

ScreenText颜色透明度由0增强到1

1)按住红色框框住的点把所有那一列的关键帧拖到30帧:

Unity3d Survival Shooter Tutorial 学习笔记(八)---游戏结束_第11张图片

2)把白线拖到20帧处,选择GameOverText.Scale,在20帧处添加关键帧

Unity3d Survival Shooter Tutorial 学习笔记(八)---游戏结束_第12张图片

3)点击左上角红色圆圈,record按钮,此时就可以改变20帧处ameOverText.Scale的值

Unity3d Survival Shooter Tutorial 学习笔记(八)---游戏结束_第13张图片

同理,改变其他变量在20帧处的值:

Unity3d Survival Shooter Tutorial 学习笔记(八)---游戏结束_第14张图片

4)按播放键就可以看到渐变动画了:

Unity3d Survival Shooter Tutorial 学习笔记(八)---游戏结束_第15张图片

5)由于我们并不想游戏一开始就播放动画,所以我们把它整体移到30帧后:

Unity3d Survival Shooter Tutorial 学习笔记(八)---游戏结束_第16张图片

Unity3d Survival Shooter Tutorial 学习笔记(八)---游戏结束_第17张图片

6)出来的动画时一直循环播放的,所以我们需要把Loop Tome关掉

Unity3d Survival Shooter Tutorial 学习笔记(八)---游戏结束_第18张图片

7)设置HUDCanvas状态机:

添加一个New State,当玩家输掉时,才触发GameOver触发器,播放GameOver动画:

Unity3d Survival Shooter Tutorial 学习笔记(八)---游戏结束_第19张图片

8)给Hierarchy里的HUDCanvas添加脚本GameOverManager.cs:

using UnityEngine;

public class GameOverManager : MonoBehaviour
{
    public PlayerHealth playerHealth;


    Animator anim;


    void Awake()
    {
        anim = GetComponent();
    }


    void Update()
    {
        if (playerHealth.currentHealth <= 0)
        {
            anim.SetTrigger("GameOver");
        }
    }
}

 

你可能感兴趣的:(Unity3d)