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。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值