飞行射击中的激光鞭效果如何实现?[已解决]

我想实现的激光效果如下图:
无双战机-激光主炮_哔哩哔哩_bilibili 和另外 25 个页面 - 个人 - Microsoft​ Edge 2021-07-08 00-02-45~2
这个激光有几个特征:
1、这个激光的效果类似于鞭子,并非笔直的激光效果。
这个激光的本体,目前我可以用Graphics实现,但只能实现纯色效果,所以有了第二点。
2、激光有一层很自然的光晕效果。
关于这一点很痛苦,查了一些资料,目前大致有两种思路。
1、用多个sprite精灵贴图去拼接,但在半透明的部分会有叠加,效果就很不理想。
2、用Graphics + shader实现,基于看到目前看到Graphics组件可以直接拖入一个材质,希望通过材质来实现这个效果,但因为之前从来没接触过shader,学得挺头疼的。

所以想请问大佬,这两种方式是否可以实现图上的激光效果,如果用shader可以的话,我就继续肝shader,或者有其他实现方式,还望大佬解惑。 :face_with_thermometer:

------效果已实现,写了个小笔记记录一下我的实现逻辑------
https://blog.csdn.net/xyj198804/article/details/118916802

5赞

第二个方案应该没问题。graphics 加一个 render texture 的 shader,可以试试。

好的谢谢大佬,我先去学学shader

可以试试用 line 组件

image 谢谢大佬,Line组件确实能实现这个效果,我先试试。

image
大佬我还想再请教一下,因为我做的是2D游戏,所有的元素都是在Canvas上的,但如果用Line组件的话,就无法在Canvas上显示出来
上面的白色方块是一个Cube,我加了 UIMeshRenderer后,是可以在Canvas显示的,但是Line组件无论加没加 UIMeshRenderer都无法在Canvas显示。
想请教一下是不是我哪里搞错了。

确实,这是一个麻烦的地方,line 组件无法应用在 2D 上。目前处理有两个方法。

  1. 参照 UIMeshRenderer 改造 line 组件,让它的数据可以往 2D 上提交
  2. line 组件单独用一个相机照射,只为了 line 的效果,逻辑和碰撞什么的还是放在你原来的 2D 上

:smiley:醍醐灌顶~感谢大佬!

LASER3

忘了回复大佬了,感谢大佬的指导,搞定了!谢谢大佬! :kissing_heart:

WOW,太酷炫了

厉害啊,很炫

大佬能搞个demo分享一下吗。。。
:beer:

大佬能搞个demo分享一下吗。。。

技术贴,顶。

牛批

围观表情包

:joy:受宠若惊
大佬不敢当,只是平常业余自学的入门者。
demo就算了 :rofl:,代码写得很不专业,怕献丑。
我晚些时候整理一下笔记发这里吧。

我把实现的逻辑效果写了个小笔记

应该还是有非常多不足的地方,还望大佬们赐教。

地址:https://blog.csdn.net/xyj198804/article/details/118916802

3赞

写的很不错,可惜公司项目还在用2.4,没有这个组件

效果很棒,[笔芯]