前言:
游戏中往往少不了 “子弹 ”,子弹常常需要带着小尾巴,今天我们就来了解并简单在Unity中实现子弹拖尾效果。
初步实现:
- 第一步我们还是新建一个场景,这里我们选择2D与黑底摄像机方便观察。
- 然后创建一个空对象作为子弹的父级,再新建2个子对象作为子弹本体和尾巴。
- 接下来我们在Trail上添加Trail Renderer组件,它就说Unity为我们提供的实现拖尾的核心。
- 好,这个时候我们直接在Scene窗口拖动以下Bullet对象,不做其他任何操作,可以看到如下,尾巴已经出来了。
- Unity的使用者都知道,我们非常讨厌粉色。那么第一件事就说干掉它,那么展开 Trail Renderer - Materals,添加Default-Particle作为临时材质。
-
此时再拖动场景的子弹,观察一下,虽然粉色被我们用临时材质替换掉了,但是我们发现了不那么像正经拖尾的两个问题:
a. 尾巴不会随着时间消失。
b. 尾巴宽度不会产生变化。 -
第一个问题:上图中你可以看到一个Time变量,它意味着拖尾存在多少秒,子弹那种高速物体,我们通常设置在0 - 1之间即可。
-
第二个问题:也是上图中你可以看到一条叫做Width的红线,它意味着拖尾粗细的变化曲线,你可以在任意地方拖动它,成为你希望的曲线。
-
此时再去拖动我们的子弹,可以看到拖尾的雏形已经实现了。
深入了解:
-
我们注意到上图中的这根尾好像不那么清晰,检查 Trail Renderer - Aligment,可以看到有两个选项 View 和 TransformZ,我们默认使用的View,它意味着轨迹是朝向摄像机的,或者朝向Z轴。 修改以后再看看有什么变化吧。
-
通常我们都需要让尾巴多姿多彩一些,注意到最开始我们使用了一个Unity自带的默认材质。实际上我们可以选择一个或多个其他材质,来让尾巴看上去不那么单调,你当然也可以通过前面文章学习到的Shader知识来自己制作一个材质。
-
试试给拖尾赋一些不一样的材质看看效果吧。
总结:
项目中,自定义材质往往会遇到一些新手困惑问题,如果你只是一个美术,想单纯的画一张拖尾图片替换上去该如何操作呢?
- 如果你已经有了一个固定材质,尝试切换到Particle粒子系统自带的Unlit - Shader,此时更换Albedo中对应的贴图即可。
- 注意!该贴图如果含有透明通道(大多数子弹拖尾图都带有透明部分)则需要修改它的渲染模式,具体官方解释参考如下:
- Opaque- 默认值,适用于没有透明区域的普通实体对象。
- Cutout - 允许您创建透明效果,在不透明和透明区域之间具有硬边。在此模式下,没有半透明区域,纹理要么 100% 不透明,要么不可见。这在使用透明度创建材料形状(例如树叶或有孔和破布的布料)时非常有用。
- Transparent - 适用于渲染逼真的透明材料,例如透明塑料或玻璃。在这种模式下,材质本身将采用透明度值(基于纹理的 alpha 通道和色调颜色的 alpha),但是反射和照明高光将保持完全清晰可见,就像真正的透明材质一样。
- Fade - 允许透明度值完全淡出对象,包括它可能具有的任何镜面高光或反射。如果您想要为对象淡入或淡出设置动画,则此模式很有用。它不适合渲染逼真的透明材料,如透明塑料或玻璃,因为反射和高光也会淡出。<