在一个场景中更改对象会在 2 中更改它

Changing an object in one scene changes it in 2

我正在使用 Unity,我有一个场景,其中有一个平板电脑。我复制了这个场景并改变了一些东西,但除了一些纹理改变了它的同一个场景。在第二个场景中,我将平板电脑上的动画更改为不同的动画,效果很好。但是回到第一个场景,我发现它改变了两个场景的动画。我有很多引用平板电脑对象和脚本名称的脚本,那么有没有什么办法可以解决这个问题而不必重新制作平板电脑和所有脚本?我没有对象预制件。动画完全不同。唯一共享的是对象名称和脚本。

为了解决您的问题,您需要为每个平板电脑制作两个不同的动画。

假设您将动画 1 应用于平板电脑 1 您复制了所有内容,现在您也有了带有动画 1 的平板电脑 2 现在,如果您在处理场景 2(使用平板电脑 2)时编辑动画 1,场景 1(使用平板电脑 1)将自动受到影响,因为它也引用相同的动画 1

所以你要做的是: -制作两个独立的动画:动画1和动画2 - 为每个平板电脑分配不同的动画

最后,有两种方法可以应用:

  1. 在您的代码中,您需要创建一个字段,允许您控制哪个动画或动画控制器 trigger/use(google 它)

  1. 您可以在一个控制器上添加两个动画片段,并控制一个布尔值(或整数)来选择触发哪一个,如下图所示:

首先,制作两个独立的动画:

然后,到动画师,右键单击并添加空状态,然后右键单击它并设置为图层默认状态 Link 你有两个动画

转到参数 -> 添加一个新的布尔值并使一个转换为真,另一个为假

最后,您可以在代码中执行以下操作:

添加 public bool animationtype 您可以从检查器控制(如果将其设置为真动画 1 将播放,如果假动画 2 将播放) 你可以使用:

whatevername.SetBool("whatevername", animationtype);

如果您有两个以上的动画,请考虑使用 Integer 而不是 Boolean。

感谢 Sara Kat 的出色回答,尽管这并不能解决我的问题。我犯了一个非常愚蠢的错误,我创建了一个新的动画和对象,但我使用了相同的动画控制器。如果其他人遇到此问题,请确保您创建了一个新控制器和一个新动画