Skip to content

Instantly share code, notes, and snippets.

@verborghs
Created October 7, 2019 10:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save verborghs/d3adb5057907fce06942b4e754947711 to your computer and use it in GitHub Desktop.
Save verborghs/d3adb5057907fce06942b4e754947711 to your computer and use it in GitHub Desktop.
public interface IImpulseCommand
{
void Excute();
}
public class InputHandler
{
public IImpulseCommand ACommand;
public IImpulseCommand BCommand;
public void Update()
{
if(Input.GetButtonDown("A"))
ACommand.Excute();
if(Input.GetButtonDown("B"))
BCommand.Excute();
}
}
public class InteractCommand : IImpulseCommand
{
private PlayerBehaviour _player;
public InteractCommand(PlayerBehaviour player)
{
_player = player;
}
public void Excute()
{
_player.Interact();
}
}
public class JumpCommand : IImpulseCommand
{
private PlayerBehaviour _player;
public JumpCommand(PlayerBehaviour player)
{
_player = player;
}
public void Excute()
{
_player.Jump();
}
}
using UnityEngine;
public class Startup : MonoBehaviour
{
[SerializeField]
private PlayerBehaviour _player;
[SerializeField]
private InputHandler _inputHandler;
private void start()
{
_inputHandler = new InputHandler();
_inputHandler.ACommand = new JumpCommand(_player);
_inputHandler.BCommand = new InteractCommand(_player);
}
private void Update()
{
_inputHandler.Update();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment