带有碰撞的 Unity 网格变形
Unity Mesh Deformation with Collisions
如何通过代码访问精灵的二维网格然后改变精灵的形状?
我想做一个类似Agario
的游戏
我只是想知道在通过碰撞或触发器接触物体时如何实现这种果冻形式?
I would like to see more answers.
您可以使用触发器功能联系游戏对象。该函数自动与 GameObject 的标签名称一起工作。这是您可以获得 Triger function
的方法
你还可以在游戏对象相互接触时改变它们的大小
More info about scaling
您几乎可以编写任何您想要的代码,这里是关于 Mesh of sprite
缩放不会得到您想要的那种变形。 agar.io 从头开始对变形进行编码非常困难。我可以看到多种执行此操作的方法,因此我将从最推荐到最不推荐的顺序列出它们:
从平面 3D 网格开始,将您的精灵渲染为纹理,这样您基本上就可以得到一个广告牌。然后使用碰撞事件获取contact points and use math to figure out how to move the mesh's vertices in response to the contact. You can see someone achieving that effect here and you can see a full blown tutorial for a sphere here,强烈推荐阅读。您通过接触位置从圆心获取直线并减小其长度的想法是合理的,但如果您希望它表现得像 agar.io.[=12=,实现起来会稍微复杂一些。 ]
获取 Anima2D,这是一种免费资源,可以将精灵转换为网格。然后再次使用碰撞事件获取接触点并扭曲网格。
使用 Anima2D 或具有同等功能的不同资产,并弄清楚如何使用 2D 骨骼以获得类似 agar.io 的效果。您也可以在 plane/billboard 网格上尝试 3D 骨骼。
将碰撞数据发送到顶点着色器,该着色器被编程为变形它正在渲染的东西。
如何通过代码访问精灵的二维网格然后改变精灵的形状?
我想做一个类似Agario
的游戏我只是想知道在通过碰撞或触发器接触物体时如何实现这种果冻形式?
I would like to see more answers.
您可以使用触发器功能联系游戏对象。该函数自动与 GameObject 的标签名称一起工作。这是您可以获得 Triger function
的方法你还可以在游戏对象相互接触时改变它们的大小 More info about scaling
您几乎可以编写任何您想要的代码,这里是关于 Mesh of sprite
缩放不会得到您想要的那种变形。 agar.io 从头开始对变形进行编码非常困难。我可以看到多种执行此操作的方法,因此我将从最推荐到最不推荐的顺序列出它们:
从平面 3D 网格开始,将您的精灵渲染为纹理,这样您基本上就可以得到一个广告牌。然后使用碰撞事件获取contact points and use math to figure out how to move the mesh's vertices in response to the contact. You can see someone achieving that effect here and you can see a full blown tutorial for a sphere here,强烈推荐阅读。您通过接触位置从圆心获取直线并减小其长度的想法是合理的,但如果您希望它表现得像 agar.io.[=12=,实现起来会稍微复杂一些。 ]
获取 Anima2D,这是一种免费资源,可以将精灵转换为网格。然后再次使用碰撞事件获取接触点并扭曲网格。
使用 Anima2D 或具有同等功能的不同资产,并弄清楚如何使用 2D 骨骼以获得类似 agar.io 的效果。您也可以在 plane/billboard 网格上尝试 3D 骨骼。
将碰撞数据发送到顶点着色器,该着色器被编程为变形它正在渲染的东西。