Blueprint loop/for/while node with custom c++ blueprint function library

AaroTT
Tue, 05 Nov 2019 09:05:14 +0000
Audio

Hi,

I need to create a custom blueprint node. I am using the blueprint function library.

The node will look like this:

Input:
int timedelayforeachloop
int numberofloops

output
exc loop
exc completed

loop1.h

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "loop1.generated.h"

/**
 *
 */

UENUM(BlueprintType)
enum class EMultiBranchEnum1 : uint8
{
	BranchA,
	BranchB
};


UCLASS()
class MYPROJECT2_API Uloop1 : public UBlueprintFunctionLibrary
{
	GENERATED_BODY()
		UFUNCTION(BlueprintCallable, meta = (DisplayName = "loop", CompactNodeTitle = "2as2", ExpandEnumAsExecs = "Branches"), Category = "1")
		//UFUNCTION(BlueprintCallable, Meta = (DisplayName = "Multi Branch1", ExpandEnumAsExecs = "Branches"), Category = 1)
		static void multiBranch(EMultiBranchEnum1& Branches, int loopqty);
	    //EMultiBranchEnum1::BranchB;

};

loop1.cpp

// Fill out your copyright notice in the Description page of Project Settings.


#include "loop1.h"

void Uloop1::multiBranch(EMultiBranchEnum1& Branches, int loopqty)
{

	int currloop1 = 0;
	int temp = 2;
	int i;
	for (i = 0; i < 10; i++){
		currloop1 = currloop1 + 1;
		Branches = EMultiBranchEnum1::BranchA;


	}

	if (temp > currloop1) {

		Branches = EMultiBranchEnum1::BranchB;
	}

	if(temp == 0) {

		Branches = EMultiBranchEnum1::BranchB;

	}


}

– THE PROBLEM –
The for loop only runs the once (evident by the print node i have on branchA(It only prints a single time))

– What should happen with the code below –
the loop should run the 10 times (my print node should print 10 times)

3 posts - 1 participant