我目前正在开发 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/