Browse Source

Null pointer checks when fading in dialogs

master
chrisgregan 10 years ago
parent
commit
e1c308cd0a
  1. 33
      Assets/Fungus/Narrative/Scripts/Dialog.cs

33
Assets/Fungus/Narrative/Scripts/Dialog.cs

@ -74,7 +74,11 @@ namespace Fungus
if (dialogCanvas != null) if (dialogCanvas != null)
{ {
LeanTween.cancel(dialogCanvas.gameObject); LeanTween.cancel(dialogCanvas.gameObject);
dialogCanvas.GetComponent<CanvasGroup>().alpha = 1; CanvasGroup canvasGroup = dialogCanvas.GetComponent<CanvasGroup>();
if (canvasGroup != null)
{
canvasGroup.alpha = 1;
}
dialogCanvas.gameObject.SetActive(visible); dialogCanvas.gameObject.SetActive(visible);
} }
if (visible) if (visible)
@ -89,16 +93,26 @@ namespace Fungus
public virtual void FadeInDialog() public virtual void FadeInDialog()
{ {
LeanTween.cancel(dialogCanvas.gameObject); LeanTween.cancel(dialogCanvas.gameObject);
dialogCanvas.GetComponent<CanvasGroup>().alpha = 0; CanvasGroup canvasGroup = dialogCanvas.GetComponent<CanvasGroup>();
if (canvasGroup != null)
{
canvasGroup.alpha = 0;
}
dialogCanvas.gameObject.SetActive(true); dialogCanvas.gameObject.SetActive(true);
if (fadeDuration == 0) fadeDuration = float.Epsilon; if (fadeDuration == 0) fadeDuration = float.Epsilon;
LeanTween.value(dialogCanvas.gameObject,0,1,fadeDuration).setEase(fadeEaseType).setOnUpdate( LeanTween.value(dialogCanvas.gameObject,0,1,fadeDuration).setEase(fadeEaseType).setOnUpdate(
(float fadeAmount)=>{ (float fadeAmount)=>{
dialogCanvas.GetComponent<CanvasGroup>().alpha = fadeAmount; if (canvasGroup != null)
{
canvasGroup.alpha = fadeAmount;
}
} }
).setOnComplete( ).setOnComplete(
()=>{ ()=>{
dialogCanvas.GetComponent<CanvasGroup>().alpha = 1; if (canvasGroup != null)
{
canvasGroup.alpha = 1;
}
} }
); );
} }
@ -121,16 +135,23 @@ namespace Fungus
public virtual void FadeOutDialog() public virtual void FadeOutDialog()
{ {
CanvasGroup canvasGroup = dialogCanvas.GetComponent<CanvasGroup>();
LeanTween.cancel(dialogCanvas.gameObject); LeanTween.cancel(dialogCanvas.gameObject);
if (fadeDuration == 0) fadeDuration = float.Epsilon; if (fadeDuration == 0) fadeDuration = float.Epsilon;
LeanTween.value(dialogCanvas.gameObject,1,0,fadeDuration).setEase(fadeEaseType).setOnUpdate( LeanTween.value(dialogCanvas.gameObject,1,0,fadeDuration).setEase(fadeEaseType).setOnUpdate(
(float fadeAmount)=>{ (float fadeAmount)=>{
dialogCanvas.GetComponent<CanvasGroup>().alpha = fadeAmount; if (canvasGroup != null)
{
canvasGroup.alpha = fadeAmount;
}
} }
).setOnComplete( ).setOnComplete(
()=>{ ()=>{
dialogCanvas.gameObject.SetActive(false); dialogCanvas.gameObject.SetActive(false);
dialogCanvas.GetComponent<CanvasGroup>().alpha = 1; if (canvasGroup != null)
{
canvasGroup.alpha = 1;
}
} }
); );
} }

Loading…
Cancel
Save