我们平时播放时一旦修改了c#的脚本总要加载进行等待,网上也缺乏如何设置,以及为什么?这样做可以达到这样的效果。
------如何设置?【默认并不会开启】
Edit->Project Settings->Editor->Enter Player Mode Options
这样就设置完了
----原理解释:
通过这样就减少了我们测试播放等待的时间了
在通过设置我们可以看到“重新加载域”和“重新加载场景”已经关闭,通过省略这个两个重新加载选项大幅提升效率。
域加载只是重新重启c#脚本,这样做是为了在应用程序后立即重现状态过程如下:
运行重启系统-->反序列化-->恢复对象
这一过程需要大量消耗,所以需要时间等待,当您重新编辑脚本时也会重新加载,重复上述操作
是否需要重新加载,有些情况是不行的
构建应用初始化场景过程如下:
程序初始化加载场景-->实例化初始对象-->开始处理第一帧
如果进行修改删除对象:
删除了对象[-->初始化加载场景-->实例化初始对象-->开始处理第一帧]重复上述过程
如果您关闭了,他将会通过一个伪过程来实现相同的效果,且不会重新进行加载。
副作用:
1、静态字段不再进行初始化,它将不会清空自己
避免这种情况应使用关键字段[RuntimeInitialzeOnLoadMethod]
关于此字段可以参见:
Unity InitializeOnLoadMethod 与 RuntimeInitializeOnLoadMethod - kingBook - 博客园 (cnblogs.com)https://www.cnblogs.com/kingBook/p/14931375.html#:~:text=Unity%20InitializeOnLoadMethod%20%E4%B8%8E%20RuntimeInitializeOnLoadMethod%201%20InitializeOnLoadMethod%20%E7%AC%AC%E4%B8%80%E6%AC%A1%E6%89%93%E5%BC%80%20Unity,%E7%BC%96%E8%BE%91%E5%99%A8%E8%BF%90%E8%A1%8C%E4%B8%80%E6%AC%A1%EF%BC%8C%E4%B9%8B%E5%90%8E%E6%AF%8F%E6%AC%A1%E8%BF%9B%E5%85%A5%20Play%20%E6%A8%A1%E5%BC%8F%E9%83%BD%E8%BF%90%E8%A1%8C%E4%B8%80%E6%AC%A1%202%20RuntimeInitializeOnLoadMethod%20%E5%9C%A8%E6%AF%8F%E6%AC%A1%E8%BF%9B%E5%85%A5%20Play%20%E6%A8%A1%E5%BC%8F%E6%97%B6%E8%BF%90%E8%A1%8C%E4%B8%80%E6%AC%A1%EF%BC%8C%E8%BF%98%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E5%8F%82%E6%95%B0%E7%A1%AE%E5%AE%9A%E5%9C%A8%E5%8A%A0%E8%BD%BD%E5%9C%BA%E6%99%AF%E4%B9%8B%E5%89%8D%E8%BF%98%E6%98%AF%E4%B9%8B%E5%90%8E%E8%B0%83%E7%94%A8%E6%96%B9%E6%B3%95%E3%80%82但是方案有点勉强
unity日本建议:避免静态变量,或用管理器管理他们
2、使用ExecutelnEditMode行为会略微发生变化,请查看官方文档查看如何解决
3、第三方的程序插件可能对此不支持
【资料来源UnityJapan】
如侵权请联系删除,保留译制版权归属。