Unity3D入门:手把手教你开发你的第一款游戏——Roll-a-Ball

发布时间:2024-05-25 16:58:05 浏览量:180次

今天我们来讲一讲Unity3D游戏引擎开发的入门第一课。我们将教大家开发一款简单的游戏——Roll-A-Ball。

游戏的内容很简单,通过键盘的“W”、“A”、“S”、“D”键或方向键来控制一个小球的移动,让小球去收集食物,每收集一个食物得分加一,当把所有的食物吃完后赢得胜利!

下面是这款游戏的最终效果:

一、创建游戏工程

双击打开桌面上的Unity图标,点击右上角的“New”新建一个Unity Project,填好项目名及选择路径,再点击“Create Project”按钮来创建项目。

在“Assets”目录下新建一个文件夹“Scenes”用来保存“场景”,创建方法是在“Project”窗口中的“Assets”目录下右键“Create”→“Folder”,并将其重命名为“Scenes”。

在键盘上使用快捷键“Ctrl+S”保存“场景”,填入场景名,点击“保存”

二、创建基本场地和小球

接下来我们将创建小球滚动的场地和一个小球。

2.1、创建场地

在“Hierarchy”窗口下右键“3D Object”→“Plane”,将其重命名为“Ground”,也就是“地面”的意思,然后在“Inspector”窗口下找到“Transform”组件,按照下图填入相应的数据

同样的,在“Hierarchy”窗口下右键“3D Object”→“Cube”,将其重命名为“Wall”,也就是“墙”的意思,然后在“Inspector”窗口下找到“Transform”组件,并按下图填入相应数据

选中“Hierarchy”窗口下面的“Wall”游戏物体,按三下快捷键“Ctrl+D”,这样就能复制出另外三个“墙”(整个场地的四面都要有墙)

选中“Wall (1)”,将其“Transform”组件的“Position”属性改为“X=10”;

选中“Wall (2)”,点击“Transform”组件最右边的“设置图标”,选择“Reset”,再将“Scale”改为“X=20”,将“Position”改为“Y=0.5,Z=-10”;

选中“Wall (3)”,点击“Transform”组件最右边的“设置图标”,选择“Reset”,并将“Scale”改为“X=20”,将“Position”改为“Y=0.5,Z=10”。

然后全选所有的“Wall”(从“Wall”到“Wall (3)”),并将它们拖放到“Ground”下面,此时效果如下图:

到这一步算是把整个基本的场地建完了,不过为了让效果好看一点,可以为其加上颜色。

在“Assets”下新建文件夹“Materials”,用来存放“材料”。随后定位到“Materials”文件夹下,在“Project”窗口下右键“Create”→“Material”创建材料并重命名为“Ground”,选中“Ground”并在右侧“Inspector”窗口下选取一个你喜欢的颜色,最后将材料“Ground”拖到“Hierarchy”窗口下的游戏物体“Ground”上应用此材料。

2.2、创建小球

接下来我们创建此游戏的主角小球,在“Hierarchy”窗口下右键“3D Object”→“Sphere”并将其重命名为“Player”,按下图在其“Transform”组件中填入相应的数据

三、控制小球的移动及相机跟随

3.1、小球的移动

想要控制小球移动,首先得为小球添加“Rigidbody”组件。步骤如下:首先选中“Player”,然后在右侧点击“Add Component”按钮,再在搜索框中输入“Rigidbody”,然后选择“Rigidbody”

随后在“Assets”目录下创建一个名为“Scripts”的文件夹,定位到此文件夹下,右键“Create”→“C# Script”,并将此脚本命名为“Player”,然后将其拖入游戏物体“Player”中

双击“Player”脚本,它会打开代码编辑器,将“Player.cs”文件的内容修改如下:

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class Player : MonoBehaviour {

private Rigidbody rb;

public int force = 5;

// Use this for initialization

void Start () {

// 获得小球的刚体组件(Rigidbody)

rb = GetComponent<Rigidbody>();

}

// Update is called once per frame

void Update () {

// 水平方

热门课程推荐

热门资讯

请绑定手机号

x
确定