@@ -118,12 +118,14 @@ private IEnumerator LoadScene() {
118
118
}
119
119
}
120
120
121
- string _targetSceneName = SceneTypeToString ( m_TargetScene ) ;
121
+ string _targetSceneName = m_TargetScene ;
122
+ // string _targetSceneName = SceneTypeToString(m_TargetScene);
122
123
SceneManager . LoadScene ( _targetSceneName ) ;
123
124
}
124
125
125
126
private bool SceneCanBeLoaded ( SceneType _scene , bool _reload ) {
126
- string _targetSceneName = SceneTypeToString ( _scene ) ;
127
+ string _targetSceneName = _scene ;
128
+ // string _targetSceneName = SceneTypeToString(_scene);
127
129
if ( currentSceneName == _targetSceneName && ! _reload ) {
128
130
LogWarning ( "You are trying to load a scene [" + _scene + "] which is already active." ) ;
129
131
return false ;<
10000
/span>
@@ -138,24 +140,32 @@ private bool SceneCanBeLoaded(SceneType _scene, bool _reload) {
138
140
return true ;
139
141
}
140
142
141
- private string SceneTypeToString ( SceneType _scene ) {
142
- switch ( _scene ) {
143
- case SceneType . Game : return "Game" ;
144
- case SceneType . Menu : return "Menu" ;
145
- default :
146
- LogWarning ( "Scene [" + _scene + "] does not contain a string for a valid scene." ) ;
147
- return string . Empty ;
148
- }
149
- }
143
+ // No longer needed if scene type enums are named like the scene files in Unity
144
+ // private string SceneTypeToString(SceneType _scene) {
145
+ // switch (_scene) {
146
+ // case SceneType.Game: return "Game";
147
+ // case SceneType.Menu: return "Menu";
148
+ // default:
149
+ // LogWarning("Scene ["+_scene+"] does not contain a string for a valid scene.");
150
+ // return string.Empty;
151
+ // }
152
+ // }
150
153
151
154
private SceneType StringToSceneType ( string _scene ) {
152
- switch ( _scene ) {
153
- case "Game" : return SceneType . Game ;
154
- case "Menu" : return SceneType . Menu ;
155
- default :
156
- LogWarning ( "Scene [" + _scene + "] does not contain a type for a valid scene." ) ;
157
- return SceneType . None ;
155
+ // 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)
156
+ foreach ( string name in Enum . GetNames ( typeof ( SceneType ) ) ) {
157
+ if ( name == _scene ) {
158
+ return ( SceneType ) Enum . Parse ( typeof ( SceneType ) , name ) ;
159
+ }
158
160
}
161
+ return SceneType . None
162
+ // switch (_scene) {
163
+ // case "Game": return SceneType.Game;
164
+ // case "Menu": return SceneType.Menu;
165
+ // default:
166
+ // LogWarning("Scene ["+_scene+"] does not contain a type for a valid scene.");
167
+ // return SceneType.None;
168
+ // }
159
169
}
160
170
161
171
private void Log ( string _msg ) {
0 commit comments