Trying to Invoke the current UnityEvent from an array.

Somehow, element1 in the array is skipped over, but the others load in correctly.
200334-screenshot-2022-10-02-040844.png

    unityEventRef = sequenctialEvents[eventArrayPos];
    elapsedTime += Time.deltaTime;
    if (eventincremented == true || elapsedTime >= 5)
    {
        elapsedTime = 0;

            if (eventArrayPos >= sequenctialEvents.Length - 1)
            {
                eventArrayPos = 0;
            }
            else
            {
                eventArrayPos += 1;
            }
        unityEventRef.Invoke();
        Debug.Log(eventArrayPos);
        eventincremented = false;
    }

Did you mean that element[1] is skipped or element[0] is skipped? The way you have coded this, pos starts at 0 but gets incremented before you call element[0]. I’ve simplified your code to test it and this works fine:

using UnityEngine;
using UnityEngine.Events;

public class Temp : MonoBehaviour
{
    public UnityEvent[] seqEvents = new UnityEvent[3];
    int pos = 0;
    float elapsedTime = 0;

    private void Update()
    {
        elapsedTime += Time.deltaTime;
        if (elapsedTime >= 2)
        {
            Debug.Log(pos);
            seqEvents[pos].Invoke();
            elapsedTime = 0;
            if (pos >= seqEvents.Length - 1)
            {
                pos = 0;
            }
            else
            {
                pos += 1;
            }
        }
    }

    public void Event1()
    {
        print("Event 0");
    }
    public void Event2()
    {
        print("Event 1");
    }
    public void Event3()
    {
        print("Event 2");
    }
}

You’ll need to reinstate your test for eventIncremented but I think this works fine now.