显然这是一些初学者的问题(而且我是),但这让我发疯,我找不到任何提及:
我偶尔会忘记退出播放模式并继续构建我的UI制作对象和更改,只是意识到我仍然处于播放模式并且一旦我按下播放按钮,它们就会被清除!我认为 Unity编辑器有其原因允许在播放模式下编辑脚本/场景(很高兴听到一些例子 - 也许是测试场景?)但我的主要问题是:
我有什么方法可以阻止这种行为吗?或者至少有一些技巧可以阻止我在播放模式下进行更改? (除了变得偏执和不断检查...)
谢谢
PS。 叹息时间回到Unity并重建我失去的UI ......
答案 0 :(得分:3)
其他Unity编码员在我之前遇到过这个问题,他们提出了一个简洁的解决方案。 在playmode" Playmode色彩"。
中将UI设置为不同的颜色你可以在这里阅读详细信息(最初发布于2009年,但我已经检查过它仍然可以在最新的Unity 5.3中使用):
http://answers.unity3d.com/questions/9159/best-strategies-for-not-accidently-editing-whilst.html
答案 1 :(得分:3)
没有设置可以防止在播放模式期间更改内容,但有一些方法可以减少播放模式期间丢失更改的可能性。
1 。修改 - > 偏好设置 ... - >的颜色即可。现在,在右侧将 Playmode Tint 更改为red
。这将提醒您在播放模式中进行更改。
2 。点击播放期间更改的每个组件的齿轮图标,然后点击复制组件。完成playmode后,选择要保留其更改的组件。再次单击齿轮图标,这次单击粘贴组件值。
3 。编写一个可以为您完成此操作的编辑器插件。这很难但可能。
使用事件来查找进入playmode的时间。将所有GameObject公共重要变量(例如transform
/ rigidbody
属性存储在列表中。
等待停止事件触发然后询问你自己哪个GameObjects覆盖设置。然后覆盖所选游戏对象的属性。
有用的API:
EditorApplication.isPlaying
EditorApplication.isPaused
EditorApplication.isPlayingOrWillChangePlaymode
EditorApplication.playmodeStateChanged += callBackFunc;
EditorApplication.HierarchyWindowItemCallback
EditorApplication.ProjectWindowItemCallback
注意:根据Unity roadmap,一个可以让您保存游戏时间更改的功能正在构建中,很快就会发布,但上面似乎是目前唯一的方式
答案 2 :(得分:0)
您可以选择在播放模式下要保留的对象,使用Ctrl + C
复制它们,然后在返回编辑模式后将其粘贴回Ctrl + V
。然后你可以从场景中删除原件或复制@Programmer建议的各个组件的值。