射击类项目(数据的持久化保存)整理五

这篇博客详细介绍了Unity中GameManager.cs脚本的实现,包括游戏的暂停和非暂停逻辑,以及开始新游戏、保存游戏和加载游戏的功能。在暂停时,游戏显示UI菜单,允许玩家选择操作;非暂停状态下,游戏正常进行。新游戏会更新怪物生命周期,重置分数和射击次数。游戏保存和加载使用了不同的数据序列化方式,如二进制、Json和Xml。
摘要由CSDN通过智能技术生成

1.GameManager.cs 游戏管理器
该脚本控制游戏的暂停、非暂停状态(当游戏处于非暂停状态时,才能开枪射出子弹)。游戏暂停时呼出UI面板,可以选择开始新游戏、保存游戏、加载上次保存的游戏、退出游戏,游戏运行时可以涉及怪物,射中怪物后调用怪物刷新机制。

游戏刚开始是处于暂停状态

	private void Awake()
	{
		//游戏开始时是暂停的状态
		Pause();
	}

暂停状态

	private void Pause()
	{
		isPaused = true;
		menuGO.SetActive(true);
		Time.timeScale = 0;
		Cursor.visible = true;//显示鼠标
	}

非暂停状态

	private void UnPause()
	{
		isPaused = false;
		menuGO.SetActive(false);
		Time.timeScale = 1;
		Cursor.visible = false;//隐藏鼠标
	}

开始新游戏按钮的功能逻辑

	public void NewGame()
	{
		//对每一个位置的物体都调用更新生命周期方法
		foreach (GameObject targetGO in targetGOs)
		{
			targetGO.GetComponent<TargetManager>().UpdateMonsters();
		}
		UIManager._instance.shootNum = 0;
		UIManager._instance.score = 0;
		UIManager._instance.ShowMessage("");
		UnPause();
	}

退出游戏

	public void QuitGame()
	{
		Application.Quit();
	}

保存游戏 具体怎么保存在其他博客中已写

	public void SaveGame()
	{
		//SaveByBin();//以二进制形式保存
		//SaveByJson();//以Json形式保存
		SaveByXml();//以Xml形式保存
	}

加载游戏 具体怎么加载在其他博客中已写

	public void LoadGame()
	{
		//LoadByBin();//加载二进制文件
		LoadByJson();//加载Json文件
		//LoadByXml();//加载Xml文件
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值