来自预制件的对象的动画有问题



所以让我先说一下,我是很新的团结,这是我的第一个星期,实际上lol,我找不到任何东西可以回答我的问题。

无论如何,我有这个像砰砰物体,有3个动画状态粉碎,重置,等待。它就像你通常看到的那样上下波动只是因为等待的时间。它是通过添加位置属性,然后上下移动y来实现的。我觉得很简单,没有比这更好的了。就像我想要的那样。

,但当我把它做成预制件,并尝试制作更多的时候,副本的动画具有与原始动画相同的x和y。所以即使我可以在游戏开始和动画播放时改变它们的基本默认位置,它们也会与制作预制件的第一个原始位置完美重叠。当我试图改变复制动画的x坐标时,它会更新所有复制动画的x坐标。即使我删除预制件,只是用CTRL + d手动复制,也会发生这种情况(我不确定这是否有什么不同?)。我想这是因为它们都共享相同的3个动画,所以当你改变动画时,它会改变所有的动画,这是有道理的。

但是我真的不想为我制作的每个副本制作3个单独的动画,我觉得肯定有更好的方法。我最初的想法是它们会共享相同的动画,但就像在对象本身中一样,像位置这样的动画值是对象所独有的,因此它们可以在每个对象之间有所不同。

将包含一个链接和图片,以便进一步传达我在这里所做的事情,这样更容易理解。https://i.stack.imgur.com/baEi8.jpg

您想要更改localPosition而不是世界位置。这个线程对此有一些讨论,但基本上你需要使用从Animator获得的x, y, z作为localPosition的偏移量。

伪代码:transform.localPosition.y += animators position.y

https://forum.unity.com/threads/playing-animation-local-to-position-in-unity.53832/post - 489101

特别注意:使用动画器是相当沉重的。对于像这样简单的东西,我建议只编写脚本。

相关内容

  • 没有找到相关文章

最新更新