public static FCInstruction CreateYield(Func <IEnumerator> _customYield)
        {
            FCInstruction instruction = GetInstruction();

            instruction.EnumeratorFunc = _customYield;
            instruction.Type           = FCInstructionType.CustomYield;
            return(instruction);
        }
        public static FCInstruction Create(Action _action)
        {
            FCInstruction instruction = GetInstruction();

            instruction.Action = _action;
            instruction.Type   = FCInstructionType.Action;
            return(instruction);
        }
        public static FCInstruction CreateCoroutine(Func <IEnumerator> _coroutine)
        {
            FCInstruction instruction = GetInstruction();

            instruction.EnumeratorFunc = _coroutine;
            instruction.Type           = FCInstructionType.Coroutine;
            return(instruction);
        }
        public static FCInstruction Create(YieldInstruction _yield)
        {
            FCInstruction instruction = GetInstruction();

            instruction.Yield = _yield;
            instruction.Type  = FCInstructionType.Yield;
            return(instruction);
        }