unity-game-engine - Unity - 如何在运行时更改玩家 Sprite 表?

标签 unity-game-engine animation sprite sprite-sheet

我目前正在开发 2D 像素 Jump'n'Run。我希望玩家能够为玩家角色“购买”新皮肤。我有多个 Sprite 表。它们都具有相同的结构。我正在使用 Sprite 动画。

如何在运行时更改 Sprite 表?我找到了以下解决方案,但它非常占用资源:https://youtu.be/HM17mAmLd7k?t=1818

真诚的, 朱利安

最佳答案

视频中资源如此密集的原因是因为所有 Sprite 都在每个 LateUpdate() 中加载,每帧加载一次。该脚本看起来像是抓取 sprite-sheet 中的所有 sprite 并在每一帧加载它们,这样如果 spriteSheetName 发生更改,它将更新下一帧的渲染器。

我认为这是没有必要的,并且在视频中他提到这只是用作示例。我要做的就是将其从 LateUpdate() 方法中移出并移入其自己的方法中,该方法仅在用户想要更改 sprite-sheet 时才可以调用。因此,您不必在每一帧中盲目地从 Sprite 表中加载 Sprite ,而只需在用户选择它时才加载它们。

这应该会大大降低该脚本的强度,因为您不会加载 Sprite 表中的所有 Sprite 并在每个帧上循环遍历它们的每个渲染器。

关于unity-game-engine - Unity - 如何在运行时更改玩家 Sprite 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53539664/

相关文章:

silverlight - Windows Phone 7 页面转换性能不佳(卡顿)

javascript - 使用prototype和script.aculo.us创建滚动图像

c++ - 通过 DeltaTime 控制 Sprite 序列

python - 如何在Pygame中根据角度移动 Sprite

python - 当 pygame Sprite 遇到尾部时,如何检测并结束游戏(使用 screen.get_at)?

android - 在 Unity 中检测 Oculus Quest 1 和 2 耳机

c# - iOS 上的 Unity Google Cardboard 显示问题

c# - 我如何创建一个游戏内系统,让我可以用光标绘制线条,作为可步行的地形

javascript - 如何处理每个时刻状态下的动画滚动事件?

c# - 控制 Unity 3D 游戏中广告之间的时间