初学者教程: Unity 5 猜数字游戏






4.57/5 (4投票s)
在本教程中,我们将介绍如何创建一个简单的数字猜谜游戏。用户将猜一个介于 1 和 10 之间的数字。
在本教程中,我们将介绍如何创建一个简单的数字猜谜游戏。用户将猜一个介于 1 和 10 之间的数字。
您可以在以下链接中在线玩该游戏: http://www.adefwebserver.com/unity/numberguesserapp/
计算机将告诉用户他们猜的数字是太高还是太低。
当用户正确猜出数字时,计算机将通知他们,用户可以按空格键重新开始游戏。
创建游戏
第一步是下载并安装 Unity 5。
打开 Unity 并创建一个 新项目。
将项目命名为 NumberGuesser,选择 2D,然后单击 创建项目 按钮。
项目打开后,单击 Main Camera。然后在 Inspector 中,单击背景颜色。
当 Color 弹出窗口打开时,将点拖到颜色面板的左上角,将颜色更改为 白色。
单击 Close 按钮关闭 Color 弹出窗口。
从菜单栏中,选择 GameObject,然后选择 UI,再选择 Text。
此时会显示一个带有 Text 对象和 EventSystem 的 Canvas。
按住 Alt 键并右键单击并拖动以缩小(或单击场景并使用鼠标滚轮滚动缩小)。
缩小直到可以看到 Text Box。
单击 Text Box 并将其拖到 Canvas 上。
确保选择了 Rect 工具。
选择 Text Box,然后在 Inspector 中
- 将 Width 设置为 400,将 Height 设置为 50
- 将 Text 设置为:Guess a number between 1 and 10
- 将 Alignment 设置为 centered
单击 Play 按钮。
文本将显示出来。
再次单击 Play 按钮停止程序并返回设计模式。
为游戏创建代码
选择 Text Box,在其属性(在 Inspector 中)中,选择 Add Component。
向下滚动列表底部,然后选择 New Script 旁边的箭头。
为 Name 输入 TextController,确保为语言选择了 C Sharp,然后单击 Create and Add 按钮。
将创建 TextController 脚本并显示在 Assets 文件夹中。
该脚本还将附加到 TextBox。
在 Assets 文件夹中双击 TextController 脚本将其打开。
Visual Studio 将启动……
脚本编辑器将打开。
将所有代码更改为以下内容:
using UnityEngine; using UnityEngine.UI; using System.Collections; public class TextController : MonoBehaviour { public Text objText; int intRandomNumber; int intGuessedNumber; // Use this for initialization void Start() { } // Update is called once per frame void Update () { } }
基本上,我们添加了两个稍后将使用的变量(intRandomNumber 和 intGuessedNumber)以及一个我们将用于与游戏屏幕上的 Text 元素通信的公共属性(objText)。
保存页面……
切换回 Unity 编辑器,单击 Hierarchy 中的 Text 对象以选中它。
将 Hierarchy 中的 Text 拖到附加到 TextBox 的 Text Controller 中 Obj Text 属性旁边的框中。
(这会将 Text Box 设置为我们创建的脚本中的 objText 属性。该脚本将设置 Text Box 的文本)
切换回 Visual Studio 并添加以下方法
private void InitializeGame() { // Pick a random number intRandomNumber = Random.Range(1, 10); // Set the text to start the game objText.text = "Guess a number between 1 and 10"; }
接下来,更新 Start 方法(该方法将在程序启动时运行一次)为以下代码(以调用我们刚刚创建的 InitializeGame 方法)
void Start() { InitializeGame(); }
如果您已安装 Visual Studio Tools for Unity,则可以设置断点(通过单击代码文件左侧的灰色区域),然后选择 Attach to Unity……
切换回 Unity 编辑器并单击 Play 按钮……
……然后您将命中断点。
您可以按 F5 继续,您将切换回 Unity 游戏。
暂时,只需从 Visual Studio 的 Debug 菜单中选择 Stop Debugging。
将 Update 方法更改为以下代码
// Update is called once per frame void Update() { // Hitting the spacebar always restarts the game if (Input.GetKeyDown(KeyCode.Space)) { InitializeGame(); } }
每当按下 空格键 时,这将调用 InitializeGame 方法。
该方法将为用户选择一个新的随机数来猜测。
将以下代码添加到 Update 方法中
// Detect that a keystroke was pressed if (Input.anyKeyDown) { // Test to see if the keystroke was a number if (int.TryParse(Input.inputString, out intGuessedNumber)) { if (intRandomNumber > intGuessedNumber) { objText.text = string.Format("You guessed {0}. You are too low" , intGuessedNumber); } if (intRandomNumber < intGuessedNumber) { objText.text = string.Format("You guessed {0}. You are too high" , intGuessedNumber); } if (intRandomNumber == intGuessedNumber) { objText.text = string.Format("You guessed {0}. \n You are correct! \n (press spacebar to continue)" , intGuessedNumber); } } }
这将检测用户按下了哪个键,并将该数字与 InitializeGame 方法中创建的随机数进行比较。
如果猜对了数字,系统会提示用户按空格键重新开始游戏。
链接
注释
运行示例代码需要 Unity 5(或更高版本)。