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

扫一扫,访问微社区

教程分享

关注:730

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

查看: 1579|回复: 23

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

[复制链接]  [移动端链接]
排名
41227
昨日变化
37

38

主题

38

帖子

117

积分

Rank: 9Rank: 9Rank: 9

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

专栏作家

发表于 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日久生情
1634/5000
排名
4105
昨日变化
26

7

主题

846

帖子

1634

积分

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

UID
168159
好友
3
蛮牛币
5168
威望
0
注册时间
2016-9-12
在线时间
495 小时
最后登录
2018-1-19

迈向小康锦衣玉食

发表于 2017-12-26 17:00:36 | 显示全部楼层

回复

使用道具 举报

7日久生情
2087/5000
排名
4416
昨日变化
36

2

主题

1531

帖子

2087

积分

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

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

回复

使用道具 举报

6蛮牛粉丝
1048/1500
排名
6372
昨日变化
49

2

主题

725

帖子

1048

积分

Rank: 6Rank: 6Rank: 6

UID
246489
好友
0
蛮牛币
1791
威望
0
注册时间
2017-9-28
在线时间
155 小时
最后登录
2018-1-19

活力之星

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

回复

使用道具 举报

6蛮牛粉丝
1048/1500
排名
6372
昨日变化
49

2

主题

725

帖子

1048

积分

Rank: 6Rank: 6Rank: 6

UID
246489
好友
0
蛮牛币
1791
威望
0
注册时间
2017-9-28
在线时间
155 小时
最后登录
2018-1-19

活力之星

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

回复

使用道具 举报

5熟悉之中
573/1000
排名
5699
昨日变化
1

1

主题

294

帖子

573

积分

Rank: 5Rank: 5

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

回复

使用道具 举报

6蛮牛粉丝
1128/1500
排名
6085
昨日变化
40

0

主题

803

帖子

1128

积分

Rank: 6Rank: 6Rank: 6

UID
219676
好友
0
蛮牛币
573
威望
0
注册时间
2017-7-12
在线时间
145 小时
最后登录
2018-1-19
发表于 2017-12-27 09:20:58 | 显示全部楼层
谢谢分享

回复

使用道具 举报

排名
24836
昨日变化
11

0

主题

64

帖子

86

积分

Rank: 2Rank: 2

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

回复

使用道具 举报

排名
55311
昨日变化
26

0

主题

6

帖子

9

积分

Rank: 1

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

回复 支持 反对

使用道具 举报

4四处流浪
373/500
排名
4896
昨日变化
30

0

主题

40

帖子

373

积分

Rank: 4

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

回复

使用道具 举报

3偶尔光临
299/300
排名
23158
昨日变化
10

0

主题

118

帖子

299

积分

Rank: 3Rank: 3Rank: 3

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

回复 支持 反对

使用道具 举报

排名
23158
昨日变化
1667

0

主题

30

帖子

55

积分

Rank: 2Rank: 2

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

回复 支持 反对

使用道具 举报

6蛮牛粉丝
1056/1500
排名
2229
昨日变化
7

11

主题

142

帖子

1056

积分

Rank: 6Rank: 6Rank: 6

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

回复 支持 反对

使用道具 举报

5熟悉之中
901/1000
排名
3680
昨日变化
28

0

主题

328

帖子

901

积分

Rank: 5Rank: 5

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

回复

使用道具 举报

排名
26959
昨日变化
21

0

主题

24

帖子

46

积分

Rank: 1

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

感谢楼主分享,支持

回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐 上一条 /1 下一条

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