Unity3d Unity 3D:如何面对只有一半的牌

Unity3d Unity 3D:如何面对只有一半的牌,unity3d,Unity3d,亲爱的,因为我是新来的统一,我无法找出问题的卡面对面。 简单地说,我想翻转卡片的一部分,而不是面对整个卡片。 这就是我寻找的方式 有人能建议我如何使用unity2d/3d来实现这一点吗 这将是一个非常棒的效果。你需要把牌弯曲。您可以使用AssetStore上的一些变形器插件来执行此操作。我找到了,看一看,它是免费的 祝你的精彩比赛好运 我假设您的卡是一个3D对象。在这种情况下,有两种方法:在3D编辑器(如Blender)中烘焙动画,或者在游戏中实时执行 请记住,如果你是一个完全的初学者,第二种选

亲爱的,因为我是新来的统一,我无法找出问题的卡面对面。 简单地说,我想翻转卡片的一部分,而不是面对整个卡片。 这就是我寻找的方式

有人能建议我如何使用unity2d/3d来实现这一点吗
这将是一个非常棒的效果。你需要把牌弯曲。您可以使用AssetStore上的一些变形器插件来执行此操作。我找到了,看一看,它是免费的


祝你的精彩比赛好运

我假设您的卡是一个3D对象。在这种情况下,有两种方法:在3D编辑器(如Blender)中烘焙动画,或者在游戏中实时执行

请记住,如果你是一个完全的初学者,第二种选择可能会让你不知所措。第一个要简单得多,但我怀疑使用另一个答案所建议的插件是迄今为止最简单的

烘焙动画 我是3D艺术的新手,所以我不知道这是否是最好的方法,但你可以在卡片上添加几个骨骼,从底部边缘到顶部。这将充当一种脊椎,因此一旦将卡绑定到骨骼,移动骨骼将使卡弯曲

确保网格将其视为对象的肉体或皮肤;虽然它的内部是中空的,但由于所有3D对象都被细分,所以可以平滑地弯曲。这基本上意味着更多的顶点,我将在后面进一步讨论

然后,您只需按关键帧记录动画关键帧,并将其导出到Unity以在那里使用它。这可能是明智的做法;绝对比实时编程弯板要好

即使要控制卡的弯曲程度,也可以通过动画来实现

游戏中的实时性 但是如果你——或者其他任何人可能读到这篇文章——在游戏中下定决心要这么做,下面就是方法。可以通过置换顶点来实现此效果

顶点和几何体 顶点本质上是描述三维对象几何体的点。一个简单的矩形可能只有4个-每个角上有一个-但是,即使你将最上面的两个顶点提升到卡片上的一条边上,并将其他两个顶点留在桌子上,你也无法弯曲它,因为平面始终是直的

要避免这种情况,只需添加更多顶点。最底部的一对顶点保留在桌子上,后面的一对稍微抬起,后面的一对稍微抬起,等等。添加的顶点越多,弯曲越平滑,但弯曲过多和性能会受到影响。你只需要找到两者之间的平衡,从这段距离看,它看起来足够好,而且会杀死我的电脑

注意:您可以添加一千个顶点,大多数计算机不会有任何问题。但是如果这些卡只是游戏的一小部分,那么这些卡的处理能力就太多了。或者,如果你有数百张这样的牌,计算结果将累加起来,并使游戏的FPS下降

曲线 有许多方法可以获得所需的曲线。您可以获取正弦波的上升部分并挤压和拉伸它,或者您可以在脚本中定义并公开曲线,然后为弯曲处的每个顶点采样。我可能就是这样做的

动画曲线本质上只是一个带有x和y轴的绘图。x轴从0到1,因此需要沿弯曲到0..1范围的边映射每个顶点的位置。这很容易做到:只需将它与桌子上起始顶点的距离除以空中起始顶点和结束顶点之间的距离即可

然后,调用AnimationCurve上的Evaluate以获得其应被置换的高度,并将其与修改器浮点相乘以放大其比例并使弯曲更大。默认情况下,y轴也从0变为1。所以,如果你希望最高点是,比如说,2个单位,那么把返回值乘以2

实施 我建议您在CPU上使用C脚本执行此操作,因为您可以调用。我不会深入讨论这意味着什么,但我只知道在GPU上手动执行这项操作可能会带来巨大的痛苦。你需要这样做,使灯光和阴影正常工作

此外,着色器的难度更大

向导 Brackeys有一个关于程序地形生成的视频,也是网格变形,除了网格变形为类似地形而不是1条曲线之外。它们对初学者很友好,容易理解

我不知道它们是否被方便地组合到一个播放列表中,所以寻找它们。从Unity-Basics中的网格生成开始。您不需要创建网格,只需替换其顶点,但这有助于更好地理解