2016-06-16 7 views
0

Ich habe eine C++ - Klasse mit einem exposed UPROPERTY, die über eine Blueprint-Klasse erweitert wird. Ich habe den Blueprint verwendet, um den Wert der Eigenschaft festzulegen.Unreal Engine: Zugriff auf Blueprint-Instanzdaten des dynamisch erzeugten Aktors

Nun, was ich tun möchte, ist ein Actor aus dieser Blueprint-Klasse spawnen und meine C++ - Code mit der Eigenschaft, die in der Blaupause festgelegt wurde arbeiten. Alles funktioniert gut, wenn ich eine Instanz der Blueprint-Klasse aus dem unrealen Editor in die Welt ziehe. Wenn ich jedoch diesen Akteur der gleichen Blueprint-Klasse dynamisch aus meiner Standardklasse GameMode spawne, kann ich sehen, dass eine Instanz dieser Klasse der Welt hinzugefügt wurde (ich sehe sie im World Outliner), aber wenn der C++ Code läuft, die Werte, die aus dem Blueprint festgelegt wurden, sind nicht vorhanden.

Warum führt die Erstellung der Blueprint-Klasse zu unterschiedlichen Ergebnissen (eine Methode durch Ziehen aus dem Editor in die Welt, die andere Methode durch Erstellen aus der GameMode-Klasse)? Warum kann ich nicht auf die Blueprint-Daten zugreifen, wenn der Actor von der Klasse GameMode stammt?

Antwort

1

Sind Sie sicher, dass Sie eine Instanz der abgeleiteten Blueprint-Klasse und nicht die übergeordnete C++ - Klasse von GameMode spawnen?

Überprüfen Sie außerdem, dass beim Versuch, auf die Membervariable zuzugreifen, die Instanz an die Blueprint-Klasse und nicht an die C++ - Klasse gesendet wird.

Wenn Sie es nicht bereits tun, ist es eine gute Idee, an alle von Blueprint abgeleiteten Klassen _BP oder etwas ähnliches anzuhängen, um sicherzustellen, dass Sie immer wissen, mit welcher Version Sie es zu tun haben.

+1

Bitte lassen Sie mich wissen, wenn dies geholfen hat. Markieren Sie die Frage auch als beantwortet. – jeevcat