You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
119 lines
2.6 KiB
119 lines
2.6 KiB
11 years ago
|
using UnityEngine;
|
||
|
using System;
|
||
|
using System.Collections;
|
||
|
|
||
|
namespace Fungus
|
||
|
{
|
||
|
/**
|
||
|
* Command classes have their own namespace to prevent them popping up in code completion.
|
||
|
*/
|
||
|
namespace Command
|
||
|
{
|
||
|
/**
|
||
|
* Fades a sprite to a given alpha value over a period of time
|
||
|
*/
|
||
|
public class FadeSprite : CommandQueue.Command
|
||
|
{
|
||
|
SpriteRenderer spriteRenderer;
|
||
|
Color targetColor;
|
||
|
float fadeDuration;
|
||
|
Vector2 slideOffset = Vector2.zero;
|
||
|
|
||
|
public FadeSprite(SpriteRenderer _spriteRenderer,
|
||
|
Color _targetColor,
|
||
|
float _fadeDuration,
|
||
|
Vector2 _slideOffset)
|
||
|
{
|
||
|
if (_spriteRenderer == null)
|
||
|
{
|
||
|
Debug.LogError("Sprite renderer must not be null.");
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
spriteRenderer = _spriteRenderer;
|
||
|
targetColor = _targetColor;
|
||
|
fadeDuration = _fadeDuration;
|
||
|
slideOffset = _slideOffset;
|
||
|
}
|
||
|
|
||
|
public override void Execute(CommandQueue commandQueue, Action onComplete)
|
||
|
{
|
||
|
SpriteFader.FadeSprite(spriteRenderer, targetColor, fadeDuration, slideOffset);
|
||
|
|
||
|
// Fade is asynchronous, but command completes immediately.
|
||
|
// If you need to wait for the fade to complete, just use an additional Wait() command
|
||
|
if (onComplete != null)
|
||
|
{
|
||
|
onComplete();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Sets an animator trigger to change the animator state for an animated sprite
|
||
|
*/
|
||
|
public class SetAnimatorTrigger : CommandQueue.Command
|
||
|
{
|
||
|
Animator animator;
|
||
|
string triggerName;
|
||
|
|
||
|
public SetAnimatorTrigger(Animator _animator,
|
||
|
string _triggerName)
|
||
|
{
|
||
|
if (_animator == null)
|
||
|
{
|
||
|
Debug.LogError("Animator must not be null.");
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
animator = _animator;
|
||
|
triggerName = _triggerName;
|
||
|
}
|
||
|
|
||
|
public override void Execute(CommandQueue commandQueue, Action onComplete)
|
||
|
{
|
||
|
animator.SetTrigger(triggerName);
|
||
|
|
||
|
if (onComplete != null)
|
||
|
{
|
||
|
onComplete();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Display a button and set the method to be called when player clicks.
|
||
|
*/
|
||
|
public class ShowButton : CommandQueue.Command
|
||
|
{
|
||
|
Button button;
|
||
|
bool visible;
|
||
|
Action buttonAction;
|
||
|
|
||
|
public ShowButton(Button _button,
|
||
|
bool _visible,
|
||
|
Action _buttonAction)
|
||
|
{
|
||
|
if (_button == null)
|
||
|
{
|
||
|
Debug.LogError("Button must not be null.");
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
button = _button;
|
||
|
visible = _visible;
|
||
|
buttonAction = _buttonAction;
|
||
|
}
|
||
|
|
||
|
public override void Execute(CommandQueue commandQueue, Action onComplete)
|
||
|
{
|
||
|
button.Show(visible, buttonAction);
|
||
|
|
||
|
if (onComplete != null)
|
||
|
{
|
||
|
onComplete();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|