From e30072ce6b19196b1a138c94cbd0ca9639af9c7d Mon Sep 17 00:00:00 2001 From: chrisgregan Date: Sat, 19 Mar 2016 03:03:38 -0700 Subject: [PATCH] FadeSprite can use variables --- .../Sprite/Scripts/Commands/FadeSprite.cs | 37 ++++++++++++++++--- .../Sprite/Scripts/Commands/ShowSprite.cs | 1 + 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/Assets/Fungus/Sprite/Scripts/Commands/FadeSprite.cs b/Assets/Fungus/Sprite/Scripts/Commands/FadeSprite.cs index e5647529..6a008ee6 100644 --- a/Assets/Fungus/Sprite/Scripts/Commands/FadeSprite.cs +++ b/Assets/Fungus/Sprite/Scripts/Commands/FadeSprite.cs @@ -1,4 +1,5 @@ using UnityEngine; +using UnityEngine.Serialization; using System; using System.Collections; @@ -8,16 +9,21 @@ namespace Fungus "Fade Sprite", "Fades a sprite to a target color over a period of time.")] [AddComponentMenu("")] - public class FadeSprite : Command + public class FadeSprite : Command, ISerializationCallbackReceiver { + #region Obsolete Properties + [HideInInspector] [FormerlySerializedAs("duration")] public float durationOLD; + [HideInInspector] [FormerlySerializedAs("targetColor")] public Color targetColorOLD; + #endregion + [Tooltip("Sprite object to be faded")] public SpriteRenderer spriteRenderer; [Tooltip("Length of time to perform the fade")] - public float duration = 1f; + public FloatData _duration = new FloatData(1f); [Tooltip("Target color to fade to. To only fade transparency level, set the color to white and set the alpha to required transparency.")] - public Color targetColor = Color.white; + public ColorData _targetColor = new ColorData(Color.white); [Tooltip("Wait until the fade has finished before executing the next command")] public bool waitUntilFinished = true; @@ -37,7 +43,7 @@ namespace Fungus cameraController.waiting = true; } - SpriteFader.FadeSprite(spriteRenderer, targetColor, duration, Vector2.zero, delegate { + SpriteFader.FadeSprite(spriteRenderer, _targetColor.Value, _duration.Value, Vector2.zero, delegate { if (waitUntilFinished) { cameraController.waiting = false; @@ -58,13 +64,34 @@ namespace Fungus return "Error: No sprite renderer selected"; } - return spriteRenderer.name + " to " + targetColor.ToString(); + return spriteRenderer.name + " to " + _targetColor.Value.ToString(); } public override Color GetButtonColor() { return new Color32(221, 184, 169, 255); } + + // + // ISerializationCallbackReceiver implementation + // + + public virtual void OnBeforeSerialize() + {} + + public virtual void OnAfterDeserialize() + { + if (durationOLD != default(float)) + { + _duration.Value = durationOLD; + durationOLD = default(float); + } + if (targetColorOLD != default(Color)) + { + _targetColor.Value = targetColorOLD; + targetColorOLD = default(Color); + } + } } } \ No newline at end of file diff --git a/Assets/Fungus/Sprite/Scripts/Commands/ShowSprite.cs b/Assets/Fungus/Sprite/Scripts/Commands/ShowSprite.cs index bdeca0ef..f0c42980 100644 --- a/Assets/Fungus/Sprite/Scripts/Commands/ShowSprite.cs +++ b/Assets/Fungus/Sprite/Scripts/Commands/ShowSprite.cs @@ -16,6 +16,7 @@ namespace Fungus [Tooltip("Make the sprite visible or invisible")] public bool visible = true; + [Tooltip("Affect the visibility of child sprites")] public bool affectChildren = true; public override void OnEnter()