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[].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。
Unity设置播放模式下始终先执行指定的场景的更多相关文章
- 在命令符模式下编译并执行Java程序
对于Java初学者,建议使用纯文本文件来编写Java程序,并在命令符模式下使用工具程序编译和执行Java程序.使用javac工具编译.java,使用java工具执行.class.(推荐sublime编 ...
- Unity非运行模式下实现动画播放/回退工具
实现效果 核心功能 支持选定模型(带Animator)在非运行模式下,播放/暂停/停止动作. 支持动作单帧前进,单帧回退(帧时间默认0.05f,可以代码设置). 支持滚动条拖拽,将动作调整到指定时间. ...
- Unity在OpenGL模式下Shader编译报错
报错信息 GLSL compilation failed: 0(21) : error C7528: OpenGL reserves names containing '__' 双击报错VS自动打开V ...
- preg_replace函数/e 模式下的代码执行+一道例题
目录 例一 例二 补充 看一道ctf题-----[BJDCTF2020]ZJCTF,不过如此 参考链接 例一 源码: <?php preg_replace('/(.*)/ei', 'strtol ...
- iOS 7 UITableview 在Plain模式下 设置背景颜色无效
在iOS6的时候,设置Plain模式下table的颜色 通过[self.table setBackgroundColor:[UIColor red]]; 就可以看到一个满身通红的tableView 但 ...
- vue-music 关于Player (播放器组件)--播放模式
播放器播放模式有三种,顺序播放,单曲循环,随机播放,定义在vuex 中的字段为 mode.点击切换播放模式的图标.切换模式判断是否为随机播放,如果是随机播放模式,则取得sequenceList 列表数 ...
- vs2010中release模式下调试程序
debug模式调试信息全,但是速度很慢,在数据量比较大的时候非常影响调试效率,release模式速度快,但是没有调试信息.所以在编译的时候很多编译器会提供一种折中的编译方式,在release下提供调试 ...
- 命令行以及Python交互模式下python程序的编写
一.命令行模式 在Windows开始菜单选择“命令提示符”,就进入到命令行模式,它的提示符类似C:\>: 二.Python交互模式 在命令行模式下敲命令python,就看到类似如下的一堆文本输出 ...
- XCTF-ics-05(文件包含+preg_replace函数/e修正符下的代码执行漏洞)
记一道preg_replace函数/e模式下的代码执行漏洞利用的题. 只有设备维护中心页面可以进入,页面没有什么可点击的,查看源代码,发现这里有个参数. 拼接到url,页面显示index,拼接/etc ...
随机推荐
- 一起学Hadoop——MapReduce原理
一致性Hash算法. Hash算法是为了保证数据均匀的分布,例如有3个桶,分别是0号桶,1号桶和2号桶:现在有12个球,怎么样才能让12个球平均分布到3个桶中呢?使用Hash算法的做法是,将1 ...
- JMeter高并发场景下存在请求无数据
- 工具Maven
Maven 1.使用Maven后每个jar包只在本地仓库中保存一份,需要jar包的工程只需要维护一个文本形式的jar包的引用——我们称之为“坐标”. 2.Maven就可以替我们自动的将当前jar包所依 ...
- 026 UI调试
读了这篇文档,感觉蛮好玩的.粘贴一下链接: http://www.cnblogs.com/Wayou/p/chrome-console-tips-and-tricks.html
- 爬虫3 requests基础之 乱码编码问题
import requests res = requests.get('http://www.quanshuwang.com') res.encoding = 'gbk' print(res.text ...
- gradle3.0新命令
摘抄原文https://mp.weixin.qq.com/s/6UZhaI9cILJiPGYHkXd73g No1: Implementation compile 指令被标注为过时方法,而新增了两个依 ...
- java接口签名(Signature)实现方案
预祝大家国庆节快乐,赶快迎接美丽而快乐的假期吧!!! 一.前言 在为第三方系统提供接口的时候,肯定要考虑接口数据的安全问题,比如数据是否被篡改,数据是否已经过时,数据是否可以重复提交等问题.其中我认为 ...
- Mac终端下的svn使用教程
1.将文件checkout到本地目录 1 svn checkout path(path是服务器上的目录) 2 例如:svn checkout svn://192.168.1.1/svn 3 简写:sv ...
- 在windows上安装redis并设置密码
在windows上安装redis Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的Web应用程序的完美解决方案. Redis从它的许多竞争继承来的三个主要特点: Redi ...
- DataGrid绑定DataTable出错
直接用DataGrid.ItemSource = DataTable.DefaultView时会出现以下错误: target element is 'TextBlock' (Name=''); tar ...