Unity 2D如何动画X位置而不会弄乱Y?

时间:2016-07-13 17:37:11

标签: unity3d

Unity 2D。我有几个精灵(云)应该漂浮在天空中。基本上动画是相同的 - 它们从右到左(改变它们的X位置),但是在不同的Y位置。我无法弄清楚是否有可能通过一个动画/动画师实现这一目标,我应该为每个云创建单独的动画吗?

到目前为止,我没有重复使用一个动画师,因为他们总是崩溃到同一个Y位置。所以我最终为每个云创建了单独的动画,但这看起来有点奇怪。还有更好的方法吗?

2 个答案:

答案 0 :(得分:0)

如果你想使用动画师/动画技术 - 你可以使用单个动画师和动画片段,但你需要从动画中删除Y pos属性,就像在图片上一样,这里我们只有X变量

enter image description here

答案 1 :(得分:0)

Animator会写入对象的变换,如果对所有云使用相同的动画片段,它们将遵循您在动画中设置的相同路径。这就是为什么你所有的云共享相同的Y位置的原因;正如@Ivzhenko Oleksii所说,你需要删除动画片段中的Y属性。

您可以使用看起来像这样的脚本:

void CloudAnimation()
{
 offset += Time.deltaTime;
 newCloudPos = new Vector3 (ActualCloudPos.x - offset, ActualCloudPos.y, ActualCloudPos.z);

 ActualCloudPos = newCloudPos;
}

这样您的云将从右到左沿X轴移动。 当你的云从你的screeen中达到某种程度时,你需要这样的东西:

 ActualCloudPos = new Vector3(PlayerPos.x + 30f, RandomValueinY, 1f);

通过这种方式,您的云将在您的播放器前面显示30个单位,这要归功于功能" CloudAnimation"它将开始他的旅行穿过屏幕,看起来它正在移动。

希望它有所帮助。