Unity3D 2D射击小游戏瞄准线的实现

Unity3D 2D射击小游戏瞄准线的实现

0. 前言

本片文章是对 https://www.bilibili.com/video/bv1sY411V7tx 视频中瞄准线是如何实现的一个讲解教程,欢迎大家去B站给我一键三连鸭!

这个项目的整个代码和资源已经上传到了GitHub,大家可以去看一下
链接:https://github.com/MycroftCooper/TigerShooting2DGame

1. 效果分析

Unity3D 2D射击小游戏瞄准线的实现_第1张图片
Unity3D 2D射击小游戏瞄准线的实现_第2张图片

根据视频中的瞄准线效果,我们可以分析出,它应该具有以下几个功能:

  1. 准星会时刻和玩家鼠标保持位置一致
  2. 瞄准线的另一头始终要在枪上
  3. 当准星放在敌人身上,瞄准线和准星会变红
  4. 当开火时准星会有所变化

2. 素材准备

根据以上三个功能,我们就可以知道,其实这个瞄准线的效果应该是分为瞄准线和准星两部分的
所以,我们分别准备好这两部分的素材:
Unity3D 2D射击小游戏瞄准线的实现_第3张图片

其中Line为瞄准线,而Sight为准星。

2.1 瞄准线 Line

瞄准线的素材有两种:

  1. 红线:瞄准敌人时使用
  2. 白线:没瞄上敌人时使用

准线是要做成预制体放在游戏里的,所以一张图导入Unity后按照Sprite去切就没问题
Unity3D 2D射击小游戏瞄准线的实现_第4张图片
因为是像素游戏,所以记得正确设置单位像素数网格类型过滤模式,设置如下:
Unity3D 2D射击小游戏瞄准线的实现_第5张图片

在切的时候需要注意的是,瞄准线的长度我们想让它是可变的,而且是从固定的一段开始伸缩。所以在用精灵切片的时候需要做两件事:设置平铺边界(绿色线)和锚点(设到左边),如下图所示:
Unity3D 2D射击小游戏瞄准线的实现_第6张图片

如此一来,瞄准线的素材图就导入成功了,接下来就是:

  1. 创建一个预制体
  2. 添加一个精灵渲染器
  3. 将精灵设为刚刚切好的一个瞄准线的精灵图片
  4. 设置绘制模式(只有设置成平铺才能任意伸缩)
  5. 设置图层顺序(设成-2就能保证瞄准线总是在图层的最前面了)

如下图所示:
Unity3D 2D射击小游戏瞄准线的实现_第7张图片
瞄准线的素材就准备完毕啦!

2.2 准星Sight

准星有四种素材:

  1. Sight_Off:没瞄到敌人且没开火的准星
  2. Sight_Off_Fire:没瞄到敌人还开火的准星
  3. Sight_On:瞄到敌人但没开火的准星
  4. Sight_On_Fire:瞄到敌人还开火的准星

准星实际上有两种实现方法:

  1. 也做成游戏物体加入场景中
  2. 切换游戏光标,让游戏的默认光标变为准星

这里我们采用第二种方法吧,第一种大家肯定是会的。

准星的素材图片最好不要使用精灵,而是有一种专门给准星用的格式:光标(Texture 2D)
这种格式的图片无法切图,所以最好把准星的图片自己提前切好再导入,如下图所示:
Unity3D 2D射击小游戏瞄准线的实现_第8张图片

你可能感兴趣的:(一些尝试,unity,3d,游戏引擎)