Unity设置播放模式下始终先执行指定的场景

通过我们使用Unity开发游戏,是在PC/Mac上。而一个游戏通常也会有很多的场景,比如A、B、C、D三个场景,正常流程下的执行顺序是 A –> B –> C –> D。在具体一点,比如 A —— 启动场景、B —— 资源加载场景、C —— 登录场景、D —— 战斗场景。

游戏先启动 –> 加载资源 –> 登录 –> 进入战斗,而往往我们可能会选中战斗场景,然后调试战斗场景,而此时点Play按钮,运行Unity时,它会直接启动战斗场景,如果你忘记选中 A 场景再点启动,可能控制台就会报错,影响开发效率。如何解决呢?

Unity提供了相应不的API —— EditorSceneManager https://docs.unity3d.com/ScriptReference/SceneManagement.EditorSceneManager.html

[MenuItem("BuildTools/PlayModeUseFirstScene", true)]
static bool ValidatePlayModeUseFirstScene()
{
    Menu.SetChecked("BuildTools/PlayModeUseFirstScene", EditorSceneManager.playModeFirstScene != null);
    return !EditorApplication.isPlaying;
}

[MenuItem("BuildTools/PlayModeUseFirstScene")]
static void UpdatePlayModeUseFirstScene()
{
    if (Menu.GetChecked("BuildTools/PlayModeUseFirstScene"))
    {
        EditorSceneManager.playModeFirstScene = null;
    }
    else
    {
        SceneAsset scene = AssetDatabase.LoadAssetAtPath<SceneAsset>(EditorBuildSettings.scenes[0].path);
        EditorSceneManager.playModeFirstScene = scene;
    }
}

路径的话,你可以参考官方示例写死,不过这里建议使用构建设置中的默认配置。

EditorBuildSettings 的 scenes 就是 File –> Build Settings 中 Scenes In Build中的列表

https://docs.unity3d.com/ScriptReference/EditorBuildSettings-scenes.html

这样无论你当前编辑的是哪个场景,只要重新运行,都将执行第一个场景。上图中就是“Scenes/Title Screen”这个场景了。

因为这个是给编辑器写扩展插件,所以适当地了解插件的编写还是有必要的。经常使用的两类:

1、菜单:右键菜单、导航菜单栏扩展(包括子菜单);

2、窗口

其它的的API,如拖拽、Help、Tools,需要用到的时候再去查看官方提供的API。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Web项目聚集地

三周学会小程序第二讲:客户端代码准备和功能详解

通过上一讲大家已经申请了小程序了,这一讲我们主要讲解三部分,小程序开发工具使用,客户端代码准备,和基础的客户端讲解,并且运行第一预览版本。

12620
来自专栏计算机编程

【vue随手笔记】Vue与ios UIwebview 和 Android webview 交互

89630
来自专栏守候书阁

webpack+vue项目实战(三,配置功能操作页和组件的按需加载)

上篇文章(webpack+vue项目实战(二,开发管理系统主页面)),实现了,侧边栏的一个操作,点击侧边栏的一些操作,最重要的就是路由的切换。看了上一篇的伙伴也...

14720
来自专栏Jack-Cui

Jetson TX1开发笔记(二):TX1开发前必做的几件事

嵌入式平台: Jeston TX1     在上篇博客中,博主已经使用Jetpack3.0为Jetson TX1刷了最新的系统。但是,在开发前,个人感觉有几个...

36060
来自专栏Windows Community

Windows 8.1 应用再出发 - 创建我的第一个应用

转眼间Windows 8.1已经发布了四个多月,之前因为开发需要对Windows 8.1新特性进行过零散的学习和使用,一直没有静下心来系统的学习过。近日部门有几...

368120
来自专栏IMWeb前端团队

开源跨平台移动项目Ngui【入门】

Ngui简介 这是一个GUI的排版显示引擎和跨平台的GUI应用程序开发框架,基于NodeJS/OpenGL,这也是第一个在移动端Android/iOS融合Nod...

25470
来自专栏Wordpress专用主机|主题模板|必备插件

腾讯云服务器如何安装宝塔面板

对于很多wordpress爱好者来讲,会优先选择服务器而不是虚拟主机。毕竟服务器在性能以及可控性上很不小的优势。

3.7K100
来自专栏河湾欢儿的专栏

客户端和浏览器端交互模型

26110
来自专栏张戈的专栏

博客文章重新启用评论,附一键填写评论中用户信息代码生成工具

博客关闭评论近一个月的时间,总体的感觉很是安逸,不过看了留言板的反馈,感觉关闭评论对一些真正需要帮助的朋友还是带来了些许不方便,思前考后,决定再次开放评论。 但...

36670
来自专栏代码小睿

Atom 备份神器 —— Sync Settings

  当 Atom 的扩展越装越多,配置也越来越偏离了系统默认设置时,一旦电脑重装后需要复原开发环境,这将是一件比较头疼的事,但今天发现一个扩展,可以解决这一问题...

299100

扫码关注云+社区

领取腾讯云代金券