【U3D小游戏】愤怒的小鸟(七)游戏暂停
布小禅 于 2022-10-12 22:11:19 发布
阅读量1.9k 收藏 3
点赞数 1
CC 4.0 BY-SA版权
文章标签:
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_52883898/article/details/127291828
前言
自己做一下小时候玩的风靡一时的愤怒的小鸟这个游戏,相信有很多人都在某一段时间沉迷过这个游戏吧~~~~
让游戏可以暂停,开始,重新开始等
1. 找素材在Image里面找到图集切割就行了
2. 做UI现在游戏页面做个暂停按钮
做成这个样子就差不多了,当然如果觉得不美观,可以自己设置
3. 做动画点击暂停按钮后,让我们上面的UI出现,可以自己添加效果,淡入淡出什么的。
首先是阿尔法值从无到有,选中最上层的游戏物体,Ctrl+6打开动画面板
新建动画,然后添加元素,然后这样
倒数第二个是x坐标,可以自行调整。
效果:
返回游戏的动画和这个相反,想必都会了
4. 敲重新开始和返回主菜单逻辑顺便把输赢界面的按钮事件写上咯
输赢界面的按钮只有两个,一个是重新开始,一个是返回主页面,都比较简单
在GameManager中
//先引入一个命名空间 using UnityEngine.SceneManagement; //写按钮事件 public class GameManager : MonoBehaviour { public void Home() { //加载主菜单场景 SceneManager.LoadScene(0); } public void Retry() { //加载当前场景,既重开游戏 SceneManager.LoadScene(2); } }然后注册事件,重复操作只展示一个
5. 暂停开始逻辑前置设置:动画状态机
先找到这玩意
然后添加一个布尔值
然后添加一个空动画,设置成默认,然后当布尔值为true的时候,播放暂停动画
为false的时候,播放start动画,播放完回到空动画
然后捏,我们直接在pause上挂一个脚本,命名看你自己就好
/** * ========================================== * FileName:#FileName# * Author:#Name# * CreatTime:#CreateTime# * NowPath:#path# * ========================================== */ using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class PausePanel : MonoBehaviour { private Animator anim; public GameObject pause; private void Awake() { anim = GetComponent<Animator>(); } /// <summary> /// 返回游戏 /// </summary> public void StartGame() { //返回游戏按钮点击后,游戏恢复,再播放动画 Time.timeScale = 1; anim.SetBool("isPause", false); pause.SetActive(true); } public void PauseButton() { //暂停按钮点击后发生的事 pause.SetActive(false); anim.SetBool("isPause", true); } /// <summary> /// 暂停游戏 /// </summary> public void PasueGame() { //动画播放完游戏暂停 Time.timeScale = 0; } }然后绑定事件,游戏暂停的函数绑定在动画播放完后
6. 看看效果游戏暂停有点慢,是因为动画播放耗时有点长