65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.57/5 (4投票s)

2015年10月25日

CPOL

4分钟阅读

viewsIcon

23217

downloadIcon

417

在本教程中,我们将介绍如何创建一个简单的数字猜谜游戏。用户将猜一个介于 1 和 10 之间的数字。

在本教程中,我们将介绍如何创建一个简单的数字猜谜游戏。用户将猜一个介于 1 和 10 之间的数字。

您可以在以下链接中在线玩该游戏: http://www.adefwebserver.com/unity/numberguesserapp/

计算机将告诉用户他们猜的数字是太高还是太低。

当用户正确猜出数字时,计算机将通知他们,用户可以按空格键重新开始游戏。

创建游戏

image

第一步是下载并安装 Unity 5

打开 Unity 并创建一个 新项目

将项目命名为 NumberGuesser,选择 2D,然后单击 创建项目 按钮。

image

项目打开后,单击 Main Camera。然后在 Inspector 中,单击背景颜色。

Color 弹出窗口打开时,将点拖到颜色面板的左上角,将颜色更改为 白色

单击 Close 按钮关闭 Color 弹出窗口。

从菜单栏中,选择 GameObject,然后选择 UI,再选择 Text

此时会显示一个带有 Text 对象和 EventSystemCanvas

按住 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 ()

    {

    }
}

image

基本上,我们添加了两个稍后将使用的变量(intRandomNumberintGuessedNumber)以及一个我们将用于与游戏屏幕上的 Text 元素通信的公共属性(objText)。

保存页面……

image

切换回 Unity 编辑器,单击 Hierarchy 中的 Text 对象以选中它。

Hierarchy 中的 Text 拖到附加到 TextBoxText ControllerObj 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 StudioDebug 菜单中选择 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 Hello World!

注释

运行示例代码需要 Unity 5(或更高版本)。


© . All rights reserved.