Unity- 游戏结束以及重启游戏

Posted RomanBesson

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity- 游戏结束以及重启游戏相关的知识,希望对你有一定的参考价值。

文章目录

游戏结束以及重启游戏

思路:利用Canvas创建好覆盖全屏的结束页面,默认关闭。游戏结束时,玩家控制的对象发起委托,ui管理收下委托,显示游戏结束页面,停止游戏。游戏重新开始就是点击设置好的按钮,启动ui管理里的重新开始场景

建个游戏结束页面

编写委托类 游戏主角 以及 ui管理类的脚本

  • 委托类

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using System;
    
    public class EventHander : MonoBehaviour
    
        //通知游戏结束
        public static event Action GetGameOverEvent;
        public static void CallGetGameOverEvent () 
           
            GetGameOverEvent ? .Invoke();
        
    
    
    
  • 游戏主角脚本

       //青蛙是否死亡
       private bool isdead;
       //游戏结束
          if (isdead) 
          
             EventHander.CallGetGameOverEvent();
          
    

    在游戏结束的一些判断里把isdead改成true即可。

  • ui管理脚本

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;
    
    public class UiManager : MonoBehaviour
    
        //游戏结束页面的操作
        public GameObject gameOverPanel;
            
        //脚本刚被调用时使用
        private void OnEnable() 
        
            //恢复游戏速度游戏正常进行
            Time.timeScale = 1; 
            //注册接收得分的委托
            EventHander.GetPointEvent += OnGetPointEvent;
            //游戏结束的通知
            EventHander.GetGameOverEvent += OnGetGameOvervent;
        
    
        //脚本不再被使用
        private void OnDisable() 
        
            EventHander.GetPointEvent -= OnGetPointEvent;
            EventHander.GetGameOverEvent -= OnGetGameOvervent;
        
          
       ///<summary>
        ///处理游戏结束的委托
        ///</summary>
        private void OnGetGameOvervent()
        
            //显示游戏结束页面
            gameOverPanel.SetActive(true);
              //如果游戏结束页面被显示
            if (gameOverPanel.activeInHierarchy)
            
                //游戏速度放慢为0,游戏停止
                Time.timeScale = 0;
            
        
        
    
    
    

    这样游戏结束就完成了!

    开始测试之前别忘了先关闭游戏结束页面。

DLC:如何完全停止角色的操作

​ 在角色脚本里:

   //输入输出工具组件
   private PlayerInput playerInput;

   private void Awake()	
    
      //获取输入输出组件
      playerInput = GetComponent<PlayerInput>();
    

    private void Update() 
   
     if (isdead)
     
      DisbleInput();
      return;
     
   

    /// <summary>
   /// 关闭输入组件
   /// </summary>
   private void DisbleInput() 
   
      // 关闭输入组件
      playerInput.enabled = false;
   

重启游戏

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class UiManager : MonoBehaviour

    ///<summary>
    ///重启游戏
    ///</summary>
    public void RestartGame() 
    
        //重新加载之前活跃过的场景
        SceneManager.LoadScene(SceneManager.GetActiveScene().name);
    


然后把这个函数放到按钮里去。

完成!!

unity游戏倒计时结束游戏失败

参考技术A 右上角显示时钟倒计时,时间结束,游戏失败。unity游戏倒计时结束游戏失败右上角显示时钟倒计时 时间结束,游戏失败 不同主题关卡不同,远不止15关~主菜单界面选择主题,不同主题对应不同图片素材。Unity是跨平台游戏引擎开发商,是实时3D互动内容创作和运营平台。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助Unity将他们的创意变成现实。Unity平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。

以上是关于Unity- 游戏结束以及重启游戏的主要内容,如果未能解决你的问题,请参考以下文章

unity游戏倒计时结束游戏失败

钓鱼小游戏自动重启(Unity、C#)

unity3D做的翻纸牌消除游戏

我在用unity3d编一个赛车游戏,其中遇到了几个问题:

Unity游戏开发初探Unity动画优化

unity2d游戏入门开发【三】各个面板作用