Unity 2D。我有几个精灵(云)应该漂浮在天空中。基本上动画是相同的 - 它们从右到左(改变它们的X位置),但是在不同的Y位置。我无法弄清楚是否有可能通过一个动画/动画师实现这一目标,我应该为每个云创建单独的动画吗?
到目前为止,我没有重复使用一个动画师,因为他们总是崩溃到同一个Y位置。所以我最终为每个云创建了单独的动画,但这看起来有点奇怪。还有更好的方法吗?
答案 0 :(得分:0)
答案 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"它将开始他的旅行穿过屏幕,看起来它正在移动。
希望它有所帮助。