首页 > 其他分享 >游戏管理器(1)

游戏管理器(1)

时间:2023-01-05 13:40:35浏览次数:46  
标签:管理器 游戏 GUI 30 new Screen Rect


游戏管理器(1)

现在的游戏中还缺少显示游戏信息的UI和游戏失败的状态提示,我们将创建一个游戏管理器来处理这些东西。

1)创建GameManager.cs角本:


1. UnityEngine;  
2. System.Collections;
3.
4.
5. class GameManager : MonoBehaviour {
6.
7. public static GameManager Instance;
8.
9. //得分
10. public int m_score= 0;
11.
12. //纪录
13. public static int m_hiscore= 0;
14.
15. //主角
16. protected Player m_player;
17.
18. // 背景音乐
19. public AudioClip m_musicClip;
20.
21. // 声音源
22. protected AudioSource m_Audio;
23.
24. void Awake()
25. {
26. Instance= this;
27. }
28.
29. // Use this for initialization
30. void Start () {
31.
32. m_Audio= this.audio;
33.
34. // 获取主角
35. GameObject obj= GameObject.FindGameObjectWithTag("Player");
36. if (obj != null)
37. {
38. m_player= obj.GetComponent<</span>Player>();
39. }
40.
41. }
42.
43. // Update is called once per frame
44. void Update () {
45.
46. // 循环播放背景音乐
47. if (!m_Audio.isPlaying)
48. {
49. m_Audio.clip= m_musicClip;
50. m_Audio.Play();
51.
52. }
53.
54. // 暂停游戏
55. if (Time.timeScale >0 && Input.GetKeyDown(KeyCode.Escape))
56. {
57. Time.timeScale= 0;
58. }
59. }
60.
61. void OnGUI()
62. {
63. // 游戏暂停
64. if (Time.timeScale== 0)
65. {
66. // 继续游戏按钮
67. if (GUI.Button(new Rect(Screen.width * 0.5f - 50, Screen.height * 0.4f, 100, 30), "继续游戏"))
68. {
69. Time.timeScale= 1;
70. }
71.
72. // 退出游戏按钮
73. if (GUI.Button(new Rect(Screen.width * 0.5f - 50, Screen.height * 0.6f, 100, 30), "退出游戏"))
74. {
75. // 退出游戏
76. Application.Quit();
77. }
78. }
79.
80. int life= 0;
81. if (m_player != null)
82. {
83. // 获得主角的生命值
84. life= (int)m_player.m_life;
85. }
86. else // game over
87. {
88.
89. // 放大字体
90. GUI.skin.label.fontSize= 50;
91.
92. // 显示游戏失败
93. GUI.skin.label.alignment= TextAnchor.LowerCenter;
94. GUI.Label(new Rect(0, Screen.height * 0.2f, Screen.width, 60), "游戏失败");
95.
96. GUI.skin.label.fontSize= 20;
97.
98. // 显示按钮
99. if (GUI.Button(new Rect(Screen.width * 0.5f - 50, Screen.height * 0.5f, 100, 30), "再试一次"))
100. {
101. // 读取当前关卡
102. Application.LoadLevel(Application.loadedLevelName);
103. }
104. }
105.
106. GUI.skin.label.fontSize= 15;
107.
108. // 显示主角生命
109. GUI.Label(new Rect(5, 5, 100, 30), "装甲 " + life);
110.
111. // 显示最高分
112. GUI.skin.label.alignment= TextAnchor.LowerCenter;
113. GUI.Label(new Rect(0, 5, Screen.width, 30), "纪录 " + m_hiscore);
114.
115. // 显示当前得分
116. GUI.Label(new Rect(0, 25, Screen.width, 30), "得分 " + m_score);
117.
118. }
119.
120. // 增加分数
121. public void AddScore( int point )
122. {
123. m_score += point;
124.
125. // 更新高分纪录
126. if (m_hiscore <</span>m_score)
127. m_hiscore= m_score;
128. }

标签:管理器,游戏,GUI,30,new,Screen,Rect
From: https://blog.51cto.com/u_8378185/5990793

相关文章

  • 网页游戏为什么容易赚钱?(From:07073)
    网页游戏为什么容易赚钱?商业就是这样2012-10-0817:47作者:​​董晓常​​我们刚刚经历了惊讶的9月,现在又在享受一个可能更加惊讶的10月。从商业上来说,一个让人惊讶......
  • uniapp + vue 实现色弱测试小游戏
    最终的效果:点击色块中不同的色块,跳到下一关准备一些静态数据,放到js目录下,在vue文件中引入即可//在1到比1大的任意整数之间随机取一个整数exportconstgetRandom......
  • 为什么游戏公司应该选择 Cloud Spanner 来支持他们的游戏?
    普华永道最近的一份报告指出,全球游戏行业是过去几年经历显着增长的行业之一,到2026年该行业(不包括电子竞技)的价值有望达到3210亿美元。过去仅三年时间,该行业就增加了5......
  • 利用GUI制作拼图小游戏
    JFrame表示窗体JMenuBar表示菜单,JMenu表示菜单中的字,JMenuitem表示目录JLabel表示管理文字和图片的文字JFrame,JMenuBar,JLabel称为组件利用空参构造对对象进行初始化:pu......
  • 选择游戏开发工具的原则
    本文首发于微信公众号【小蚂蚁教你做游戏】,欢迎关注领取更多学习做游戏的原创教程资料,每天学点儿游戏开发知识。嗨!大家好,我是小蚂蚁。昨天为了给我的精致1010游戏方便的增加......
  • c# 游戏设计:地图移动
    想实现一个小游戏,先做地图移动。步骤记录如下:1、百度到一张大的迷宫地图,放在项目的debug目录下,备用。2、创建一个winform项目,不添加任何界面元素。3、添加数据成员如下:......
  • 《Unity 2D与3D手机游戏开发实战》上架了。
    新书上架了。这本书主要是Unity开发的入门,附带了一个简单的2D例子,一个3DRPG的简单例子和一个尽可能用插件实现的射击游戏的例子。书很薄,不过因为是彩页印刷,价钱不是那么实......
  • 简述游戏地图制作过程(一)
      概述以三国地图为例子,给大家介绍下策略游戏的地图设计方法,主要包括原型搭建,地形细化,动线设计。 原型搭建首先明确地图基础规则:地图由格子组成,单个格子带地形属......
  • 远离勒索病毒,如何在Linux上安装活字格低代码服务管理器?
    活字格低代码开发平台由可视化设计器和服务管理器构成,开发者使用设计器构建Web应用,测试无误后即可将应用进行打包,并发布到服务管理器上。服务管理器会加载设计器发布的应用......
  •   4个步骤教你一天之内学会制作游戏
     想自己做游戏? Unity,Unreal等游戏引擎上手难度太高,代码学习得头大,美术成本太高一个立绘500元,没有人手把手教你,也没有同伴一起讨论? 指路:易次元官网的创作学院。想自......