创建了门的预制件,并将预制门添加到场景中。这个预制门有一个动画师。问题是当我试图改变动画师在场景中第二扇门上的x,y,z位置时,它改变了第一扇门。
我尝试复制门并更改位置x,y,z,但它更改了第一个门的动画。
我只是有一个脚本,发挥动画师。
预期的结果应该是,我可以根据需要拖放门,而无需为每个门创建单独的动画师。看起来我需要创建每扇门的动画师,这也可能需要我为每扇门创建新的脚本。这似乎很笨拙,因为我应该能够添加门,只需改变动画中x,y,z的位置。
发布于 2019-04-17 13:46:35
问题是,他们的Animator
组件使用相同的AnimatorController
资产,该资产对其状态使用特定的AnimationClip
资产引用。
我不知道是否有更简单的方法来实现,但我会这样做:
AnimatorController
资源(CTRL+D)以及要更改的AnimationClip
资源。AnimatorController
中单击您想要更改的相应状态,并在检查器中引用相应的克隆AnimationClip
。AnimatorController
的副本,它使用不同的AnimationClip
,但是具有相同的状态、传统等,所以你可以在Animator
组件中编辑动画和控制器individually.AnimationClip
。现在剩下的问题可能是,对于未来,如果您更改状态、转换,特别是参数,您必须分别在两个AnimatorController
资产中执行此操作。
发布于 2022-01-08 10:01:21
这可能不是因为动画制作人,而是Unity中动画的特定行为。据我所知,动画根据父对象来动画变换属性。因此,将捕获预置的第一个父对象,并将其transform属性用于动画。但我对此解释不是很确定--实际的行为在Unity的源代码中有所涉及。我发现的一个常见的解决方案是在对象的预置中创建一个父对象或容器。我不知道它为什么会起作用,但确实起作用了。也许是因为动画对象的父对象现在总是相同的。
父对象可以只是一个空的游戏对象。所以你预制你的门,把另一个空的游戏对象放到这个预制件中,让你的门成为这个容器的孩子,根据容器和容器本身将门的所有坐标设置为0。现在,您可以向要设置动画的对象(而不是容器)添加动画器组件,并在预置场景中为其设置动画。在此之后,您可以将此预制的副本(容器+您的动画对象内)放置在游戏场景中的任何地方-副本的所有动画将独立进行。
https://stackoverflow.com/questions/55719041
复制相似问题