Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
*.meta

.idea
44 changes: 27 additions & 17 deletions Scene/SceneController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -118,12 +118,14 @@ private IEnumerator LoadScene() {
}
}

string _targetSceneName = SceneTypeToString(m_TargetScene);
string _targetSceneName = m_TargetScene;
// string _targetSceneName = SceneTypeToString(m_TargetScene);
SceneManager.LoadScene(_targetSceneName);
}

private bool SceneCanBeLoaded(SceneType _scene, bool _reload) {
string _targetSceneName = SceneTypeToString(_scene);
string _targetSceneName = _scene;
// string _targetSceneName = SceneTypeToString(_scene);
if (currentSceneName == _targetSceneName && !_reload) {
LogWarning("You are trying to load a scene ["+_scene+"] which is already active.");
return false;
Expand All @@ -138,24 +140,32 @@ private bool SceneCanBeLoaded(SceneType _scene, bool _reload) {
return true;
}

private string SceneTypeToString(SceneType _scene) {
switch (_scene) {
case SceneType.Game: return "Game";
case SceneType.Menu: return "Menu";
default:
LogWarning("Scene ["+_scene+"] does not contain a string for a valid scene.");
return string.Empty;
}
}
// No longer needed if scene type enums are named like the scene files in Unity
// private string SceneTypeToString(SceneType _scene) {
// switch (_scene) {
// case SceneType.Game: return "Game";
// case SceneType.Menu: return "Menu";
// default:
// LogWarning("Scene ["+_scene+"] does not contain a string for a valid scene.");
// return string.Empty;
// }
// }

private SceneType StringToSceneType(string _scene) {
switch (_scene) {
case "Game": return SceneType.Game;
case "Menu": return SceneType.Menu;
default:
LogWarning("Scene ["+_scene+"] does not contain a type for a valid scene.");
return SceneType.None;
// Dynamic enumeration so you wouldn't have to manually add case for each individual scene you create in game (just add the type in SceneType)
foreach (string name in Enum.GetNames(typeof(SceneType))) {
if (name == _scene) {
return (SceneType) Enum.Parse(typeof(SceneType), name);
}
}
return SceneType.None
// switch (_scene) {
// case "Game": return SceneType.Game;
// case "Menu": return SceneType.Menu;
// default:
// LogWarning("Scene ["+_scene+"] does not contain a type for a valid scene.");
// return SceneType.None;
// }
}

private void Log(string _msg) {
Expand Down
2 changes: 2 additions & 0 deletions Scene/SceneType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ namespace UnityCore {

namespace Scene {

// Note: Name your SceneType enumerations just like the scene files in your Unity Scenes folder
// i.e. MainMenuScene, Level01Scene, etc
public enum SceneType {
None,
Menu,
Expand Down