当你在Unity中按下“播放”按钮时,会发生什么?

5
一旦您点击“播放”按钮,软件背后会发生什么事情?此时代码已经编译完成准备就绪。因此,当我按下“播放”按钮时,代码将被执行。除此之外,还有哪些事情会发生呢?
作为一项作业,我想了解这个问题。谢谢:)

有趣的是,我在谷歌上搜索了很久也没有找到任何关于它的资料。可能与魔法和萨满教有关。几乎可以确定,即使在脚本中更改一个字符,Unity也会生成一个新的构建。这与Android Studio或许多其他IDE默认情况下所做的相同。我唯一能帮助你的是,如果你按下暂停按钮,然后再按下播放按钮,Unity将执行所有Awake()函数,并在可能的情况下执行OnEnable() + Start()函数。然后它将执行Update()一次。之后才会暂停。我知道这并不是太多的信息,请在找到好答案后发布回复。 - Nika Kasradze
我相信当你只是点击播放时,什么都没有被“构建”。这是完全不同的流程。 - Fattie
2个回答

3

这正是我一直在寻找的!你是怎么找到它的?我花了一整天在谷歌上搜索这个!! - Rishi
令人惊讶的是,恐怕这个回答实际上与问题完全没有关联。这里提供的两个链接完全是关于Unity的运行循环的内容。对比起实际的构建过程来说,“编辑器中的‘播放’模拟器”是如何工作的完全是个谜。我完全不知道:例如,脚本是解释执行的(如何执行?)还是在“编辑器播放”魔术中被编译的(因为与构建相比即时进行,也许是前者?)。 - Fattie

1
询问按下播放按钮会发生什么就像询问可口可乐的配方一样。这就是他们销售的东西。你得到了这个任务,事实上你可以说任何事情,你的老师会说你错了,因为他也不知道(除非他为购买引擎源代码的公司工作)。
你可以说的是,初始化OpenGl/DirectX API,将所有事件注册到操作系统中,例如输入、应用程序数据等,然后进行所有引擎功能,将所需类注册到内存中,初始化物理,解析开场景YAML文件,创建内容并在空间中放置每个项目,如果是MonoBehaviour,则注册所有回调,所有与分析器和堆栈跟踪相关的调试代码,崩溃报告等等...
这些是明显的,如果没有使用工具来分解代码,我就无法知道正在发生什么。问题是,这违反了最终用户许可协议,因此是非法的。

我真的不能确定我的老师是否知道答案。不过我会从你的笔记中写下一些东西。请查看上面@kagkar的回答。那正是我需要的。谢谢! :) - Rishi
嗯,所以你不想知道引擎底层的运行机制,而是想了解 MonoBehaviour 的生命周期,即脚本执行顺序。没错,你已经掌握了这个知识。 - Everts
如果kagkar的回答是你需要的,那么你要么完全误解了管道,要么只是打错了问题。 - Fattie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接