chrisgregan
9 years ago
2 changed files with 34 additions and 13 deletions
@ -1,43 +1,64 @@ |
|||||||
using UnityEngine; |
using UnityEngine; |
||||||
|
using UnityEngine.Serialization; |
||||||
using System; |
using System; |
||||||
using System.Collections; |
using System.Collections; |
||||||
|
|
||||||
namespace Fungus |
namespace Fungus |
||||||
{ |
{ |
||||||
[CommandInfo("Flow", |
[CommandInfo("Flow", |
||||||
"Load Scene", |
"Load Scene", |
||||||
"Loads a new Unity scene and displays an optional loading image. This is useful " + |
"Loads a new Unity scene and displays an optional loading image. This is useful " + |
||||||
"for splitting a large game across multiple scene files to reduce peak memory " + |
"for splitting a large game across multiple scene files to reduce peak memory " + |
||||||
"usage. Previously loaded assets will be released before loading the scene to free up memory." + |
"usage. Previously loaded assets will be released before loading the scene to free up memory." + |
||||||
"The scene to be loaded must be added to the scene list in Build Settings.")] |
"The scene to be loaded must be added to the scene list in Build Settings.")] |
||||||
[AddComponentMenu("")] |
[AddComponentMenu("")] |
||||||
public class LoadScene : Command |
public class LoadScene : Command, ISerializationCallbackReceiver |
||||||
{ |
{ |
||||||
|
#region Obsolete Properties |
||||||
|
[HideInInspector] [FormerlySerializedAs("sceneName")] public string sceneNameOLD; |
||||||
|
#endregion |
||||||
|
|
||||||
[Tooltip("Name of the scene to load. The scene must also be added to the build settings.")] |
[Tooltip("Name of the scene to load. The scene must also be added to the build settings.")] |
||||||
public string sceneName = ""; |
public StringData _sceneName = new StringData(""); |
||||||
|
|
||||||
[Tooltip("Image to display while loading the scene")] |
[Tooltip("Image to display while loading the scene")] |
||||||
public Texture2D loadingImage; |
public Texture2D loadingImage; |
||||||
|
|
||||||
public override void OnEnter() |
public override void OnEnter() |
||||||
{ |
{ |
||||||
SceneLoader.LoadScene(sceneName, loadingImage); |
SceneLoader.LoadScene(_sceneName.Value, loadingImage); |
||||||
} |
} |
||||||
|
|
||||||
public override string GetSummary() |
public override string GetSummary() |
||||||
{ |
{ |
||||||
if (sceneName.Length == 0) |
if (_sceneName.Value.Length == 0) |
||||||
{ |
{ |
||||||
return "Error: No scene name selected"; |
return "Error: No scene name selected"; |
||||||
} |
} |
||||||
|
|
||||||
return sceneName; |
return _sceneName; |
||||||
} |
} |
||||||
|
|
||||||
public override Color GetButtonColor() |
public override Color GetButtonColor() |
||||||
{ |
{ |
||||||
return new Color32(235, 191, 217, 255); |
return new Color32(235, 191, 217, 255); |
||||||
} |
} |
||||||
|
|
||||||
|
// |
||||||
|
// ISerializationCallbackReceiver implementation |
||||||
|
// |
||||||
|
|
||||||
|
public virtual void OnBeforeSerialize() |
||||||
|
{} |
||||||
|
|
||||||
|
public virtual void OnAfterDeserialize() |
||||||
|
{ |
||||||
|
if (sceneNameOLD != default(string)) |
||||||
|
{ |
||||||
|
_sceneName.Value = sceneNameOLD; |
||||||
|
sceneNameOLD = default(string); |
||||||
|
} |
||||||
|
} |
||||||
} |
} |
||||||
|
|
||||||
} |
} |
Loading…
Reference in new issue