【发布时间】:2019-02-05 20:25:36
【问题描述】:
Unity 2D。我有几个精灵(云)应该很好地漂浮在天空中。基本上动画是相同的——它们从右到左(改变它们的 X 位置),但在不同的 Y 位置。我不知道是否可以通过一个动画/动画师来实现这一点,我应该为每个云创建单独的动画吗?
到目前为止,我未能重用一位动画师,因为他们总是折叠到相同的 Y 位置。所以我最终为每个云创建了单独的动画,但这看起来有点奇怪。有没有更好的办法?
【问题讨论】:
标签: unity3d
Unity 2D。我有几个精灵(云)应该很好地漂浮在天空中。基本上动画是相同的——它们从右到左(改变它们的 X 位置),但在不同的 Y 位置。我不知道是否可以通过一个动画/动画师来实现这一点,我应该为每个云创建单独的动画吗?
到目前为止,我未能重用一位动画师,因为他们总是折叠到相同的 Y 位置。所以我最终为每个云创建了单独的动画,但这看起来有点奇怪。有没有更好的办法?
【问题讨论】:
标签: unity3d
动画师编写对象的变换,如果您对所有云使用相同的动画剪辑,它们将遵循您在动画中设置的相同路径。这就是为什么你所有的云共享相同的 Y 位置的原因;正如@Ivzhenko Oleksii 所说,您需要删除动画剪辑中的 Y 属性。
您可以使用如下所示的脚本:
void CloudAnimation()
{
offset += Time.deltaTime;
newCloudPos = new Vector3 (ActualCloudPos.x - offset, ActualCloudPos.y, ActualCloudPos.z);
ActualCloudPos = newCloudPos;
}
这样,您的云将在 X 轴上从右到左移动。 当您的云到达屏幕外的某个点时,您需要执行以下操作:
ActualCloudPos = new Vector3(PlayerPos.x + 30f, RandomValueinY, 1f);
这样,您的云将出现在您的玩家面前 30 个单位,并且由于“CloudAnimation”功能,它会开始他在屏幕上的移动,看起来就像它在移动一样。
希望对你有帮助。
【讨论】: