【问题标题】:Scripting Efficiency: One script for multiple children, or one script for each?脚本效率:一个脚本用于多个孩子,还是每个脚本?
【发布时间】:2021-07-07 23:32:18
【问题描述】:

如果标题不够解释,我有很多带有脚本的部分,其中许多部分的脚本是克隆的。在我看来,与同时运行多个脚本来完成相同任务相比,仅让一个脚本监控在组/模型中使用相同脚本的所有部分会更有效且使用更少的处理器时间。

在结构上,它是每个部件(父)一个脚本(子)与一个脚本(父)用于许多相同的部件及其相同的功能(子)。

此外,在维护和更改方面,更改一个脚本比更改多个脚本要容易得多。例如,在一组中,我有 80 个部分,每个部分都运行相同的脚本。比如说,要改变一块砖在触摸 80 个或更多脚本时造成的损坏程度是一件很痛苦的事情。

感谢您的想法和建议!

【问题讨论】:

    标签: lua scripting roblox


    【解决方案1】:

    我认为在决定一个脚本与多个脚本时,您可以考虑一些性能因素...例如,是否有任何无限循环或繁重的进程可以在一个集中的地方完成?在自包含模型中与大型复杂管理器类​​相比,此代码是否更简单?你个人对代码结构的偏好是什么?等等

    但是,如果您关心的是可维护性,那么 Roblox 有一个功能可以让这变得更容易。它被称为Packages。它允许您制作模型,将其作为包发布,然后对其进行克隆。如果对任何克隆进行了更改,那么您可以发布这些更改,并且您可以立即更新所有克隆。

    【讨论】:

    • 对于提到的脚本,它们一直在等待触摸,所以这是一个无限循环,对吧?是的,当它是一对一而不是经理课程时,它会简单得多,但这不是不可避免的吗?我个人的偏好是效率和可维护性。我认为,我将不得不查看包,因为它似乎是某些场景的优雅解决方案。如果我对 LUA 有更多了解,我可能会看到它如何全面使用,但此时,用包替换主类脚本将意味着制作多个包。
    • 另外,我想尽量减少脚本引起的延迟。
    • 如果您使用触摸事件,那么这些不是无限循环,而是事件订阅。这些只是在引擎中调用事件时触发的函数。它们非常轻巧。您始终可以使用MicroProfiler 来分析性能
    • 一如既往,非常感谢您的帮助!谢谢!
    • 您好 Kylaaa,我需要就一些 Roblox 问题私下与您沟通,但我不知道如何。无法在此处向您发送消息,我在 Roblox 上的好友请求未被接受。你能联系我(@ru_gr8ful)吗?谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-06-18
    • 2019-07-04
    • 2013-04-18
    • 2023-01-13
    • 1970-01-01
    • 1970-01-01
    • 2016-11-18
    • 1970-01-01
    相关资源
    最近更新 更多