Fix issue with tooltip not updating on scene reload.
This commit is contained in:
@@ -19,6 +19,7 @@ namespace FlaxEditor.States
|
||||
private readonly List<Guid> _scenesToLoad = new List<Guid>();
|
||||
private readonly List<Scene> _scenesToUnload = new List<Scene>();
|
||||
private Guid _lastSceneFromRequest;
|
||||
private bool _sameSceneReload = false;
|
||||
|
||||
internal ChangingScenesState(Editor editor)
|
||||
: base(editor)
|
||||
@@ -164,10 +165,22 @@ namespace FlaxEditor.States
|
||||
{
|
||||
Assert.AreEqual(Guid.Empty, _lastSceneFromRequest, "Invalid state.");
|
||||
|
||||
// Bind events
|
||||
Level.SceneLoaded += OnSceneEvent;
|
||||
Level.SceneLoadError += OnSceneEvent;
|
||||
Level.SceneUnloaded += OnSceneEvent;
|
||||
// Bind events, only bind loading event and error if re-loading the same scene to avoid issues.
|
||||
if (_scenesToUnload.Count == 1 && _scenesToLoad.Count == 1)
|
||||
{
|
||||
if (_scenesToLoad[0] == _scenesToUnload[0].ID)
|
||||
{
|
||||
Level.SceneLoaded += OnSceneEvent;
|
||||
Level.SceneLoadError += OnSceneEvent;
|
||||
_sameSceneReload = true;
|
||||
}
|
||||
}
|
||||
if (!_sameSceneReload)
|
||||
{
|
||||
Level.SceneLoaded += OnSceneEvent;
|
||||
Level.SceneLoadError += OnSceneEvent;
|
||||
Level.SceneUnloaded += OnSceneEvent;
|
||||
}
|
||||
|
||||
// Push scenes changing requests
|
||||
for (int i = 0; i < _scenesToUnload.Count; i++)
|
||||
@@ -210,9 +223,18 @@ namespace FlaxEditor.States
|
||||
}
|
||||
|
||||
// Unbind events
|
||||
Level.SceneLoaded -= OnSceneEvent;
|
||||
Level.SceneLoadError -= OnSceneEvent;
|
||||
Level.SceneUnloaded -= OnSceneEvent;
|
||||
if (_sameSceneReload)
|
||||
{
|
||||
Level.SceneLoaded -= OnSceneEvent;
|
||||
Level.SceneLoadError -= OnSceneEvent;
|
||||
_sameSceneReload = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
Level.SceneLoaded -= OnSceneEvent;
|
||||
Level.SceneLoadError -= OnSceneEvent;
|
||||
Level.SceneUnloaded -= OnSceneEvent;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnSceneEvent(Scene scene, Guid sceneId)
|
||||
|
||||
Reference in New Issue
Block a user