200+篇教程总入口,欢迎收藏:
放牛的星星:[教程汇总+持续更新]Unity从入门到入坟——收藏这一篇就够了zhuanlan.zhihu.com本文重点内容:
1、把塔放入面板
2、借助物理手段瞄准敌人
3、尽可能长的时间追踪他们
4、用激光束射击它们
这是有关创建简单塔防游戏的系列教程的第三部分。 它涵盖了塔的创作以及它们如何瞄准和射击敌人。
本教程是CatLikeCoding系列的一部分,原文地址见文章底部。
本教程是用Unity 2018.3.0f2制作的。
1 建造塔
墙壁只会通过增加敌人行进的路径来减慢敌人的速度。 但是游戏的目标是在敌人到达目的地之前消灭它们。 这可以通过在面板上放置射击塔来完成的。
1.1 瓦片内容
塔是瓦片内容的另一种类型,因此将它们的条目添加到GameTileContent。
在本教程中,我们仅支持一种塔,因此可以通过给GameTileContentFactory一个对塔架预制件的引用来实现,也可以通过Get实例化。
但是塔需要射击,因此它们将需要更新并需要自己的代码。 为此目的创建一个Tower类,以扩展GameTileContent。
通过将工厂字段的类型更改为Tower,可以强制Tower预制组件包含此组件。 由于它仍然算作GameTileContent,因此我们无需更改其他任何内容。
1.2 预制体
为塔创建一个预制件。你可以从复制墙预置开始,用塔组件替换它的GameTileContent组件,并将其类型设置为塔。为了使塔与墙体相适应,保持现有的立方体墙体作为塔的基础。然后再在上面放一个立方体来代表塔。我把它的比例设置为0.5。再在上面放一个相同大小的立方体,代表炮塔,这是瞄准和射击的部分。
塔会旋转,因为它有一个碰撞器,物理引擎需要追踪它。但我们不需要那么精确,因为我们使用塔碰撞器只是为了选择单元格。可以凑合用一个近似值。移除塔架立方体的碰撞器,调整塔身立方体的碰撞器,让它覆盖两个。
我们的塔会发射激光束。 有许多种方法可以可视化它,但是我们仅使用拉伸后的半透明立方体来形成光束。 每个塔将需要一个自己的光束,因此将其添加到塔的预制件中。 将其放置在塔内,以便默认情况下处于隐藏状态,并使其较小,例如0.2。 使它成为预制根的子节点,而不是转塔立方体的子节点。
给激光束适当的材质。 我只是使用标准的半透明黑色材质,并关闭了所有反射,同时给其提供红色。
确保激光束立方体没有碰撞器,同时关闭阴影投射和接收。
塔预制完成后,将其添加到工厂。
1.3 放置塔
我们通过另一个切换方法添加和移除塔。可以简单地复制游戏板。ToggleWall并更改方法的名称和内容类型。