我目前正在研究2D像素Jump'n'Run。我希望玩家能够“购买”玩家角色的新皮肤。我有多个精灵表。它们都具有相同的结构。我正在使用精灵动画。
如何在运行时更改子画面?我找到了以下解决方案,但是它占用大量资源:
好的, 朱利安
答案 0 :(得分:0)
之所以在视频中占用大量资源是因为所有子画面都加载到每个LateUpdate()
中,每帧一次。该脚本看起来像在抓取精灵表中的所有精灵,并在每一帧加载它们,因此,如果spriteSheetName
发生更改,它将在下一帧更新渲染器。
我认为这不是必需的,他在视频中提到它只是用作示例。我要做的是将其移出LateUpdate()
方法并移入其自己的方法,该方法仅在用户想要更改Sprite-Sheet时才可以调用。因此,您不必一味地从每个页面的sprite-sheet加载sprite,而是仅在用户选择时加载它们。
这应该可以大大减少此脚本的强度,因为您没有将所有的sprite加载到sprite-sheet中,也没有在每个帧上循环通过其每个渲染器。