Unity经验分享——如何实现黑洞吸附效果

今天给大家带来一个很简单实用的效果,

模拟黑洞吸附的效果,

学完了这个效果过后,我们可以自己发挥做一些很有意思的东西出来,比如被吸入黑洞,吸入传送门,或者技能的吸附效果等,我们都可以通过这个原理来实现。而且是纯C#代码版本的。很简单的。废话不多说,先上效果图:

从图中我们可以看出,白色Cube是黑洞,然后黑洞的吸附口我设置在cube左边的面中心。最左边是一个球,本来是圆的,然后被黑洞吸附,一直吸附进入黑洞消失。好了,接下来我们来说说这个黑洞吸附效果的原理。也是比较简单易懂的。

大家首先要知道的是untiy的渲染流程,一个物体是怎么被摄像机观察到,然后显示在屏幕上的。我们都知道一个3D的物体被渲染在屏幕上面,是经过了一系列的操作、流程的。比如首先得到物体的顶点数据,然后根据对应shader算法来进行渲染,最终就会出现在屏幕。然后我们一般情况下unity场景面板是默认按照shader来渲染的,所以你看到的是“有血有肉”的物体。然后我们也可以看物体的网格。如下图:

 

你选择一下渲染模式就能改变了,为啥要说这个呢?因为我们待会需要用到它。刚才说了我们的物体之所以是渲染出这个样子,主要是根据顶点来的。然后就到了我们今天的核心原理了,就是通过让顶点进行移动,让他们都向一个点进行移动,最终就能实现我们想要的效果。C#版本代码如下:

直接循环让所有的顶点都进行移动即可。至于结束的操作,我们可以利用时间来做,估算一个时间值,到了这个时间就停下函数调用即可。最终效果图如下:

 

猜你喜欢

转载自blog.csdn.net/Unity_RAIN/article/details/126268244