开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

教程分享

关注:754

当前位置:游戏蛮牛 技术专区 教程分享

查看: 2199|回复: 24

[系列教程] 从零开始学基于ARKit的Unity3d游戏开发系列10

[复制链接]  [移动端链接]
排名
43126
昨日变化
10

41

主题

41

帖子

125

积分

Rank: 9Rank: 9Rank: 9

UID
257049
好友
0
蛮牛币
629
威望
0
注册时间
2017-11-30
在线时间
27 小时
最后登录
2018-2-1

专栏作家

发表于 2017-12-26 16:31:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
欢迎继续我们的学习。

在之前的课程中我们提到过,对于游戏中的角色,最好是使用prefab预设体的方式在程序中生成,而不是直接放置在场景里面。

在这一课的内容中,我们将实现这一点。

打开Unity,在Project视图中右键单击Assets,创建一个新的文件夹,将其命名为_Prefabs。之所以加下划线,之前反复强调过,是为了将开发者自己添加的游戏资源和第三方插件中的游戏资源区分开。

从Hierarchy视图中将z@walk游戏对象拖到Project视图中的_Prefabs文件夹中,从而创建一个预设体,将其更名为zombieEnemy。然后从Hierarchy视图中删除该对象。

在Hierarchy视图中点击HItCubParent对象,选择ruined_house,在Inspector视图中点击Add Component,添加一个新的脚本,并将其命名为SpawnController。

图片9.png

然后在MonoDevelop中打开该脚本文件,并更改其中的代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//1.导入UI相关的命名空间文件
using UnityEngine.UI;


public class SpawnController : MonoBehaviour {

        //2.创建到敌人的引用
        public GameObject zombie;

        //3.创建到开始游戏按钮的引用
        public Button btnStartGame;



        // Use this for initialization
        void Start () {

                //4.添加点击事件的响应
                btnStartGame.onClick.AddListener(StartInvoke);
               
        }

        //5.处理开始游戏

        void StartInvoke(){



        }

}

按照注释行的数字编号来简单解释一下:
(1)导入跟UI相关的命名空间
(2)创建了一个GameObject对象,也就是对敌人对象的引用
(3)创建了对开始游戏按钮的引用
(4)添加了对开始游戏按钮点击事件的响应机制
(5)该方法将用于处理点击事件

注意到这里我们把默认提供的Update方法删除了,因为暂时不需要用到。

接下来回到Unity编辑器,把_Prefabs文件夹中的zombieEnemy预设体拖动到ruined_house对象的Spawn Controller组件的Zombie属性处,如图所示。

图片10.png

接下来我们需要创建一个按钮。

在编辑器中的中间区域切换到Game视图。

然后在Hierarchy视图中右键单击Canvas,选择UI-Button,从而添加一个按钮,将其命名为btn_StartGame。

将按钮的文本内容更改为Start Game,并作出以下设置:
(1)将btn_StartGame按钮的Image组件的Source Image设置为SF Window
(2)设置btn_StartGame按钮的Rect Transform的Width和height为500,200
(3)设置文本字体为Jupiter
(4)设置字体大小为80
(5)设置文本的Color为纯白色。

在Hierarchy视图中选择HitCubeParent下面的ruined_house对象,并将Spawn Controller组件的Btn Start Game属性设置为刚刚添加的btn_StartGame按钮对象。

图片11.png

接下来打开SpawnController.cs,并更改其中的StartInvoke方法,修改后的代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//导入UI相关的命名空间文件
using UnityEngine.UI;


public class SpawnController : MonoBehaviour {

        //创建到敌人的引用
        public GameObject zombie;

        //创建到开始游戏按钮的引用
        public Button btnStartGame;



        // Use this for initialization
        void Start () {

                //添加点击事件的响应
                btnStartGame.onClick.AddListener(StartInvoke);
               
        }
               

        //处理开始游戏
        void StartInvoke(){

                //1.每5秒调用一次SpawnEnemy方法
                InvokeRepeating ("SpawnEnemy", 0f, 5f);

        }

        //在场景中生成敌人
        void SpawnEnemy(){

                //2.设置敌人的生成位置
                Vector3 position = new Vector3 (Random.Range (-10f, 10f), Random.Range (-3f, 3f), Random, Range (-10f, 10f));

                //3.在特定的位置生成敌人
                Instantiate (zombie, position, Quaternion.Euler (0, 0, 0));

        }

}

接下来按照注释行编号简单解释一下:

1.这里使用InvokeRepeating方法来重新调用SpawnEnemey方法。
关于InvokeRepeating方法的使用,大家可以在官方文档中搜索,https://docs.unity3d.com/ScriptReference/MonoBehaviour.InvokeRepeating.html


2.这里创建了一个Vector3类型的变量 ,从而设置了敌人的生成位置。
同样的,关于Vector3,可以在官方文档中查看
https://docs.unity3d.com/ScriptReference/Vector3-ctor.html

3.使用Instantiate方法在特定的位置生成敌人。
https://docs.unity3d.com/ScriptReference/Object.Instantiate.html


注意这里的旋转角度使用了Quaternion类型,在Unity中,使用Quaternion来代表旋转角度。

具体细节请参考官方文档:
https://docs.unity3d.com/ScriptReference/Quaternion.html

https://docs.unity3d.com/ScriptReference/Quaternion.Euler.html


现在我们可以回到Unity编辑器,点击工具栏上的Play按钮预览游戏效果。

图片12.png

当我们点击Start Game按钮后,就会有敌人出现在场景中,并开始之后的游戏逻辑。

如果一切顺利,我们已经成功的完成了本课所要学习的内容了~








回复

使用道具 举报

7日久生情
2043/5000
排名
3701
昨日变化
1

7

主题

1090

帖子

2043

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
168159
好友
4
蛮牛币
5985
威望
0
注册时间
2016-9-12
在线时间
598 小时
最后登录
2018-3-7
发表于 2017-12-26 17:00:36 | 显示全部楼层

回复

使用道具 举报

7日久生情
2530/5000
排名
3293
昨日变化
2

2

主题

1779

帖子

2530

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
241666
好友
0
蛮牛币
10181
威望
0
注册时间
2017-9-6
在线时间
359 小时
最后登录
2018-4-20
发表于 2017-12-27 06:06:58 来自Mobile--- | 显示全部楼层
感谢分享

回复

使用道具 举报

6蛮牛粉丝
1272/1500
排名
4556
昨日变化
24

3

主题

776

帖子

1272

积分

Rank: 6Rank: 6Rank: 6

UID
246489
好友
0
蛮牛币
2094
威望
0
注册时间
2017-9-28
在线时间
219 小时
最后登录
2018-4-26

活力之星迈向小康

发表于 2017-12-27 08:50:24 | 显示全部楼层
谢谢分享
[发帖际遇]: 一个袋子砸在了 ss_luck 头上,ss_luck 赚了 1 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

6蛮牛粉丝
1272/1500
排名
4556
昨日变化
24

3

主题

776

帖子

1272

积分

Rank: 6Rank: 6Rank: 6

UID
246489
好友
0
蛮牛币
2094
威望
0
注册时间
2017-9-28
在线时间
219 小时
最后登录
2018-4-26

活力之星迈向小康

发表于 2017-12-27 08:52:37 | 显示全部楼层
谢谢分享

回复

使用道具 举报

5熟悉之中
592/1000
排名
5761
昨日变化
3

1

主题

292

帖子

592

积分

Rank: 5Rank: 5

UID
243777
好友
0
蛮牛币
1911
威望
0
注册时间
2017-9-15
在线时间
93 小时
最后登录
2018-1-26
发表于 2017-12-27 09:01:50 | 显示全部楼层
谢谢分享

回复

使用道具 举报

7日久生情
2450/5000
排名
3402
昨日变化
17

0

主题

1755

帖子

2450

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
219676
好友
0
蛮牛币
2306
威望
0
注册时间
2017-7-12
在线时间
319 小时
最后登录
2018-4-26

活力之星

发表于 2017-12-27 09:20:58 | 显示全部楼层
谢谢分享

回复

使用道具 举报

排名
21738
昨日变化
16

1

主题

62

帖子

95

积分

Rank: 2Rank: 2

UID
253528
好友
0
蛮牛币
64
威望
0
注册时间
2017-11-9
在线时间
14 小时
最后登录
2018-3-22
发表于 2017-12-27 19:56:23 来自Mobile--- | 显示全部楼层
感谢分享

回复

使用道具 举报

排名
57914
昨日变化
13

0

主题

6

帖子

9

积分

Rank: 1

UID
261453
好友
0
蛮牛币
22
威望
0
注册时间
2017-12-27
在线时间
1 小时
最后登录
2017-12-29
发表于 2017-12-27 22:13:57 | 显示全部楼层
感谢楼主分享,支持

回复 支持 反对

使用道具 举报

5熟悉之中
582/1000
排名
3282
昨日变化
9

0

主题

41

帖子

582

积分

Rank: 5Rank: 5

UID
76365
好友
0
蛮牛币
1212
威望
0
注册时间
2015-3-1
在线时间
155 小时
最后登录
2018-4-26
发表于 2017-12-28 08:36:53 | 显示全部楼层
感谢分享

回复

使用道具 举报

4四处流浪
321/500
排名
24255
昨日变化
11

0

主题

130

帖子

321

积分

Rank: 4

UID
45969
好友
0
蛮牛币
325
威望
0
注册时间
2014-9-21
在线时间
177 小时
最后登录
2018-4-12
发表于 2017-12-28 10:08:41 | 显示全部楼层
哈哈哈啊哈对话动画哈哈哈哈啊

回复 支持 反对

使用道具 举报

2初来乍到
106/150
排名
17399
昨日变化
7

0

主题

50

帖子

106

积分

Rank: 2Rank: 2

UID
258416
好友
0
蛮牛币
0
威望
0
注册时间
2017-12-7
在线时间
24 小时
最后登录
2018-4-26
发表于 2017-12-28 10:44:53 | 显示全部楼层
ARKit还真是不太了解,学习了

回复 支持 反对

使用道具 举报

6蛮牛粉丝
1348/1500
排名
1778
昨日变化
5

13

主题

187

帖子

1348

积分

Rank: 6Rank: 6Rank: 6

UID
191997
好友
2
蛮牛币
4231
威望
0
注册时间
2017-2-22
在线时间
486 小时
最后登录
2018-4-26
发表于 2017-12-28 10:48:49 | 显示全部楼层
貌似很厉害的样子

回复 支持 反对

使用道具 举报

6蛮牛粉丝
1221/1500
排名
2854
昨日变化
13

0

主题

457

帖子

1221

积分

Rank: 6Rank: 6Rank: 6

UID
220310
好友
1
蛮牛币
2108
威望
0
注册时间
2017-5-2
在线时间
326 小时
最后登录
2018-4-26
发表于 2017-12-28 17:46:24 | 显示全部楼层

回复

使用道具 举报

排名
28256
昨日变化
19

0

主题

24

帖子

46

积分

Rank: 1

UID
186188
好友
0
蛮牛币
11
威望
0
注册时间
2016-11-23
在线时间
12 小时
最后登录
2018-1-15
发表于 2017-12-29 00:29:54 | 显示全部楼层

感谢楼主分享,支持

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表