unity碰撞计数_Unity Demo教程系列——Unity塔防游戏(三)塔(Shooting Enemies)

37993ae77c93ad93d2514c41ad8c8f2a.png

b577745d2bee7ee7b1d500cb7a70b6a7.png

200+篇教程总入口,欢迎收藏:

放牛的星星:[教程汇总+持续更新]Unity从入门到入坟——收藏这一篇就够了​zhuanlan.zhihu.com
c724d135ebb469582c3e34ec560e0ee0.png
本文重点内容:
1、把塔放入面板
2、借助物理手段瞄准敌人
3、尽可能长的时间追踪他们
4、用激光束射击它们

这是有关创建简单塔防游戏的系列教程的第三部分。 它涵盖了塔的创作以及它们如何瞄准和射击敌人。

本教程是CatLikeCoding系列的一部分,原文地址见文章底部。

本教程是用Unity 2018.3.0f2制作的。

f1d893606af046e117065c6eeb9a9694.png
(敌人感受到了高温)

1 建造塔

墙壁只会通过增加敌人行进的路径来减慢敌人的速度。 但是游戏的目标是在敌人到达目的地之前消灭它们。 这可以通过在面板上放置射击塔来完成的。

1.1 瓦片内容

塔是瓦片内容的另一种类型,因此将它们的条目添加到GameTileContent。

18579ecd89dea063ef15695b99a7c33d.png

在本教程中,我们仅支持一种塔,因此可以通过给GameTileContentFactory一个对塔架预制件的引用来实现,也可以通过Get实例化。

e7b291864d9a2492b89489fc2e615228.png

但是塔需要射击,因此它们将需要更新并需要自己的代码。 为此目的创建一个Tower类,以扩展GameTileContent。

b5856f98f2f3f3f6b2db8ed1bc38e880.png

通过将工厂字段的类型更改为Tower,可以强制Tower预制组件包含此组件。 由于它仍然算作GameTileContent,因此我们无需更改其他任何内容。

a7f6418f5dc74505ad7573ef958f6fff.png

1.2 预制体

为塔创建一个预制件。你可以从复制墙预置开始,用塔组件替换它的GameTileContent组件,并将其类型设置为塔。为了使塔与墙体相适应,保持现有的立方体墙体作为塔的基础。然后再在上面放一个立方体来代表塔。我把它的比例设置为0.5。再在上面放一个相同大小的立方体,代表炮塔,这是瞄准和射击的部分。

3530e276438f47b686a40368d4c89a7f.png

862afb0b075b50a0374251da6cd23cff.png
三个立方体组成了塔

塔会旋转,因为它有一个碰撞器,物理引擎需要追踪它。但我们不需要那么精确,因为我们使用塔碰撞器只是为了选择单元格。可以凑合用一个近似值。移除塔架立方体的碰撞器,调整塔身立方体的碰撞器,让它覆盖两个。

9643a3a68bdd6d8e082b605c2df9bb07.png

dfcb6d2a6a8bd3951d63a4f815ca4e60.png
塔立方体碰撞器

我们的塔会发射激光束。 有许多种方法可以可视化它,但是我们仅使用拉伸后的半透明立方体来形成光束。 每个塔将需要一个自己的光束,因此将其添加到塔的预制件中。 将其放置在塔内,以便默认情况下处于隐藏状态,并使其较小,例如0.2。 使它成为预制根的子节点,而不是转塔立方体的子节点。

b27997a858da3c10f747905336212692.png

3121f3a4c1526a3db670ea7b843c2c11.png
隐藏激光束立方体

给激光束适当的材质。 我只是使用标准的半透明黑色材质,并关闭了所有反射,同时给其提供红色。

4adef7a9a04d01dd746d8ef1e2c411ee.png

1aa70750baea171572235e1edfc5da9c.png
激光束材质

确保激光束立方体没有碰撞器,同时关闭阴影投射和接收。

874f31c9f3da9080196d512083087778.png
激光束不需要和阴影交互

塔预制完成后,将其添加到工厂。

43aabfbba1fc5f17815c978a62a11ae6.png
塔在工厂中引用

1.3 放置塔

我们通过另一个切换方法添加和移除塔。可以简单地复制游戏板。ToggleWall并更改方法的名称和内容类型。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值