State machine with multiple player inputs?

Hi, I am trying to make a state machine for an RPG style game that takes in several inputs from the player before moving to the enemies turn. Very similar to how FFXIII combat works (queuing a string of actions)


At the moment I can record the number of times I press each of the two buttons, but I am stuck at how to store the order of buttons pressed, activating the ‘attack’ button when 3 actions have been qued and displaying them in Inputs 1 2 and 3 respectively.

Pressing the attack button would play animations for the unique attacks in order of input and damage the enemy accordingly, or that’s what I would like to happen

This is the code I have for each button

using UnityEngine;
using System.Collections;

public class buttonwep1 : MonoBehaviour {

	public int wep1presscount = 0;

	public void activatewep1 ()
		stateMachine.buttoncounter = stateMachine.buttoncounter + 1;
		wep1presscount = wep1presscount + 1;


I am fairly new to C# as a whole, any help is hugely appreciated. Thanks

You can create an array of integers and then store a 1 in the array if wep1 is pressed and a 2 if wep2 is pressed. Then the first element in the array will corespondent to the first button clicked and so on

int[] buttonClicks = new int[3];
public void activewep1(){
    buttonClicks[stateMachine.buttonCounter++] = 1;
public void activewep2(){
    buttonClicks[stateMachine.buttonCounter++] = 2;

If the user clicks 1->1->2 buttonClicks will look like this

[1, 1, 2]

Then in the update function simply check if stateMachine.buttonCounter == 3 and if it does activate the attack button.
Also keep a counter for which attack you are on when using the attacks and them play the animation that corresponds to the number stored in that place in the array.