[Help] USceneComponent References

Hello all,

I’m quite new to Unreal Engine (using 4.15.3) and I created a C++ class that is to be added to a BluePrint alongside a set of StaticMeshes/SceneComponents.
What my script does is it will corelate CSV input with scene components and will create automatic animations for each member that has been correlated.

My issue comes in when trying to find the references in the scene. Every time I execute a simultation of the scene, there are incrementally more references to the same SceneComponent/StaticMesh.

This is the code which gets the references of my objects in the scene (i do the same with StaticMesh so I won’t copy that code since its the same except for the class i’m looking for):


//iterate through all SceneComponents in scene
          for (TObjectIterator<USceneComponent> Itr; Itr; ++Itr)
	        {
			USceneComponent *Component = *Itr;
			if (row[0].Equals(Itr->GetName())) {
				UE_LOG(LogTemp, Warning, TEXT("Component name: %s"), *Itr->GetName());
				sceneComponent = *Itr;
			}
		}

Upon the first construction (this code is executed at construction of my main class) the log outputs this:

LogTemp:Warning: Component name: 7387_0721_1_00_1
LogTemp:Warning: Component name: 7002_0733_01_1
LogTemp:Warning: Component name: 7150_0710_00_1
LogTemp:Warning: Component name: 7387_0705_1_00_1
LogTemp:Warning: Component name: 7387_0220_1_00_1
LogTemp:Warning: Component name: AIG_7387_03_1
LogTemp:Warning: Component name: 7387_0210_1_00_1
LogTemp:Warning: Component name: 7387_0201_1_00_1
LogTemp:Warning: Component name: 5000_0226_00_1
LogTemp:Warning: Component name: 7387_0260_1_00_1
LogTemp:Warning: Component name: 7387_0240_00_1
LogTemp:Warning: Component name: AIG3328_1
LogTemp:Warning: Component name: 7387_0250_1_00_1
LogTemp:Warning: Component name: AIG_7387_01_1
LogTemp:Warning: Component name: 7387_0288_00_2
LogTemp:Warning: Component name: 7387_0185_1_00_2
LogTemp:Warning: Component name: 7390_0450_00_1
LogTemp:Warning: Component name: 7002_0450_00_1

The next time the class is constructed, the output is:

LogTemp:Warning: Component name: 7387_0721_1_00_1
LogTemp:Warning: Component name: 7387_0721_1_00_1
LogTemp:Warning: Component name: 7002_0733_01_1
LogTemp:Warning: Component name: 7002_0733_01_1
LogTemp:Warning: Component name: 7150_0710_00_1
LogTemp:Warning: Component name: 7150_0710_00_1
LogTemp:Warning: Component name: 7387_0705_1_00_1
LogTemp:Warning: Component name: 7387_0705_1_00_1
LogTemp:Warning: Component name: 7387_0220_1_00_1
LogTemp:Warning: Component name: 7387_0220_1_00_1
LogTemp:Warning: Component name: AIG_7387_03_1
LogTemp:Warning: Component name: AIG_7387_03_1
LogTemp:Warning: Component name: 7387_0210_1_00_1
LogTemp:Warning: Component name: 7387_0210_1_00_1
LogTemp:Warning: Component name: 7387_0201_1_00_1
LogTemp:Warning: Component name: 7387_0201_1_00_1
LogTemp:Warning: Component name: 5000_0226_00_1
LogTemp:Warning: Component name: 5000_0226_00_1
LogTemp:Warning: Component name: 7387_0260_1_00_1
LogTemp:Warning: Component name: 7387_0260_1_00_1
LogTemp:Warning: Component name: 7387_0240_00_1
LogTemp:Warning: Component name: 7387_0240_00_1
LogTemp:Warning: Component name: AIG3328_1
LogTemp:Warning: Component name: AIG3328_1
LogTemp:Warning: Component name: 7387_0250_1_00_1
LogTemp:Warning: Component name: 7387_0250_1_00_1
LogTemp:Warning: Component name: AIG_7387_01_1
LogTemp:Warning: Component name: AIG_7387_01_1
LogTemp:Warning: Component name: 7387_0288_00_2
LogTemp:Warning: Component name: 7387_0288_00_2
LogTemp:Warning: Component name: 7387_0185_1_00_2
LogTemp:Warning: Component name: 7387_0185_1_00_2
LogTemp:Warning: Component name: 7390_0450_00_1
LogTemp:Warning: Component name: 7390_0450_00_1
LogTemp:Warning: Component name: 7002_0450_00_1
LogTemp:Warning: Component name: 7002_0450_00_1

How is it possible that at every simulation there’s more and more of the same objects where there should ultimately be only one of each? There’s something I don’t understand.

Whatever code you are using to check if a Component already exists, and if not - create it, with the name used by the CSV isn’t working. You can see everything has a duplicate, so I’d focus my debugging efforts on that area.

I don’t actually create any of the scene components. All i’m doing is getting the reference of those objects in the scene to be able to pilot them from my code.