在单个动画上更改多个精灵会影响性能吗?
Does changing multiple sprites on a single animation affect performance?
我一直在构建一个基于 2D sprite 的游戏,我希望玩家能够为其定制他们的设备。这意味着虽然我可以很好地绘制内容,但我需要确保游戏中的动画 运行 相互叠加良好。为此,我一直在准备一个游戏object,有几个children来占装备:
每个 children 运行s 一个单独的动画并且应该跟随玩家,我通过在脚本的 Update
上使用 transform.localPosition = Vector2.zero;
来完成每个人都需要,所以他们挂在 parent 的枢轴上并跟随玩家。虽然这在大多数情况下都有效,但有些时候所有 object 都不同步,因此有时 parent object(正文)出现在它应该出现的地方' 因为其他游戏 objects 应该在顶部呈现:
除此之外,为了让 children 更容易跟随 parent 的位置,我制作了大小相同的精灵,这有可能让我不得不加载很多transparent space 每个精灵。
我在尝试解决加载过多无用像素的问题时刚刚注意到的另一个问题涉及与其他 object 的定位,例如 Sword 游戏 object,它不会如果我使用不是完美正方形的精灵,请完全跟随玩家(有关详细信息,请参阅此问题How to align sprites of smaller sizes to a moving gameobject sprite? and this one Sibling sprite doesn't appear to follow main GameObject sprite even when transform.position updates)
我试图通过使剑成为英雄的 child 来解决这个问题,但即便如此,通过设置值的函数更改位置以添加到剑游戏的转换值中 object 只改变它相对于初始值的位置。我试图将剑精灵的枢轴更改为自定义值,以猜测它的中心与主游戏对齐的位置 object 并出现在正确的位置,但即使那样似乎也行不通。
我有点厌倦了我目前的流程,因为我必须为每个游戏 object 依赖几个动画,parent 和 children ,以便它们服从单个动画师(或者在剑的情况下,一个单独的动画师)中的不同层,所有这些都是为了确保不会总是发生一些同步:
我真的不介意在我正在做的事情中出现的网络,但事实上我必须跨多个层重复它并且不能真正保证所有 objects 都会由于播放了多个动画,因此出现在彼此之上,并且用空 space 加载多个精灵变得更像是一件苦差事而不是享受。
所以我想出了一个可能的解决方案:如果我可以为任何给定点(无论是只穿裤子还是穿着全套装备)使用的整个设备制作一个动画,那么有这个动画就可以保证parent 和 children 之间的同步,无需动画层或特殊函数来更新位置,或者担心枢轴或方形精灵,如果我可以在动画中设置 non-square 精灵的位置,缺点是我需要考虑每个可能的设备变化的每个动画(所以如果我每把剑、裤子、靴子等都有 3 个,那将意味着 3^6 个动画)并制作一个更复杂的网络动画师状态。然而,在这种情况下,我唯一担心的是性能,如果播放器的动画过多会影响这些加载的速度。但是为了消除提到的其他问题,我的问题归结为:
是否最好让一个游戏 object 具有在 child 个游戏 object 中更改多个精灵的动画和一个根据多个变量选择状态的动画师,或游戏 object 具有多个动画,每个动画更改一个精灵,单个或多个动画师具有多层,根据多个变量选择状态?
像这样的事情并没有真正的固定答案。这真的只取决于玩游戏时 your/the 玩家电脑的性能。抱歉,如果这不是您想要的。
我一直在构建一个基于 2D sprite 的游戏,我希望玩家能够为其定制他们的设备。这意味着虽然我可以很好地绘制内容,但我需要确保游戏中的动画 运行 相互叠加良好。为此,我一直在准备一个游戏object,有几个children来占装备:
每个 children 运行s 一个单独的动画并且应该跟随玩家,我通过在脚本的 Update
上使用 transform.localPosition = Vector2.zero;
来完成每个人都需要,所以他们挂在 parent 的枢轴上并跟随玩家。虽然这在大多数情况下都有效,但有些时候所有 object 都不同步,因此有时 parent object(正文)出现在它应该出现的地方' 因为其他游戏 objects 应该在顶部呈现:
除此之外,为了让 children 更容易跟随 parent 的位置,我制作了大小相同的精灵,这有可能让我不得不加载很多transparent space 每个精灵。
我在尝试解决加载过多无用像素的问题时刚刚注意到的另一个问题涉及与其他 object 的定位,例如 Sword 游戏 object,它不会如果我使用不是完美正方形的精灵,请完全跟随玩家(有关详细信息,请参阅此问题How to align sprites of smaller sizes to a moving gameobject sprite? and this one Sibling sprite doesn't appear to follow main GameObject sprite even when transform.position updates)
我试图通过使剑成为英雄的 child 来解决这个问题,但即便如此,通过设置值的函数更改位置以添加到剑游戏的转换值中 object 只改变它相对于初始值的位置。我试图将剑精灵的枢轴更改为自定义值,以猜测它的中心与主游戏对齐的位置 object 并出现在正确的位置,但即使那样似乎也行不通。
我有点厌倦了我目前的流程,因为我必须为每个游戏 object 依赖几个动画,parent 和 children ,以便它们服从单个动画师(或者在剑的情况下,一个单独的动画师)中的不同层,所有这些都是为了确保不会总是发生一些同步:
我真的不介意在我正在做的事情中出现的网络,但事实上我必须跨多个层重复它并且不能真正保证所有 objects 都会由于播放了多个动画,因此出现在彼此之上,并且用空 space 加载多个精灵变得更像是一件苦差事而不是享受。
所以我想出了一个可能的解决方案:如果我可以为任何给定点(无论是只穿裤子还是穿着全套装备)使用的整个设备制作一个动画,那么有这个动画就可以保证parent 和 children 之间的同步,无需动画层或特殊函数来更新位置,或者担心枢轴或方形精灵,如果我可以在动画中设置 non-square 精灵的位置,缺点是我需要考虑每个可能的设备变化的每个动画(所以如果我每把剑、裤子、靴子等都有 3 个,那将意味着 3^6 个动画)并制作一个更复杂的网络动画师状态。然而,在这种情况下,我唯一担心的是性能,如果播放器的动画过多会影响这些加载的速度。但是为了消除提到的其他问题,我的问题归结为:
是否最好让一个游戏 object 具有在 child 个游戏 object 中更改多个精灵的动画和一个根据多个变量选择状态的动画师,或游戏 object 具有多个动画,每个动画更改一个精灵,单个或多个动画师具有多层,根据多个变量选择状态?
像这样的事情并没有真正的固定答案。这真的只取决于玩游戏时 your/the 玩家电脑的性能。抱歉,如果这不是您想要的。