Unreal Engine / C ++: я не могу получить доступ к методам объекта "tscriptInterface"C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Unreal Engine / C ++: я не могу получить доступ к методам объекта "tscriptInterface"

Сообщение Anonymous »

В моем нереальном проекте я получил интерфейс "fvariableBloc" , который я использую, чтобы надеть что-то, что я называю переменной, в основном просто именем, значением поплавки и некоторой информацией настройки:

Код: Выделить всё

UINTERFACE(BlueprintType, NotBlueprintable)
class UFVariableBloc : public UFBloc {
GENERATED_BODY()
};

class IFVariableBloc : public IFBloc
{
GENERATED_BODY()

public:

FString VariableName = "";
UFUNCTION(BlueprintCallable, Category="VariableBloc")
virtual FString GetVariableName() const { return VariableName; }
UFUNCTION(BlueprintCallable, Category="VariableBloc")
virtual void SetVariableName(FString NewVariableName)  {VariableName = NewVariableName;}

float Value;
bool DisplayInHUD = true;
bool UserReadOnly = false;
bool RobotRelatedVariable = false;

UFUNCTION(BlueprintCallable, Category="VariableBloc")
virtual void SetValue(float NewValue)  {Value = NewValue;}
// a bunch of other functions
}
Я получил еще один объект с именем "variables manager" , который я использую, чтобы надеть карту этих "fvariableBloc" :

Код: Выделить всё

UCLASS(Blueprintable)
class UVariablesManager : public UObject
{
GENERATED_BODY()
public:
UVariablesManager();

UFUNCTION(BlueprintCallable, Category="VariableManager")
void AddVariable(const TScriptInterface& NewVariable)
{
Variables.Add(NewVariable->GetVariableName(), NewVariable);
}

UFUNCTION(BlueprintCallable, Category="VariableManager")
int GetNbVariables()
{
return Variables.Num();
}

// also got some other functions that work without any problem

protected:
TMap Variables;
};

Я могу многое сделать с этой картой, но у меня возникла проблема с моей функцией "AddVariable" : когда я пытаюсь получить доступ к имени переменной, которую я хочу добавить (

Код: Выделить всё

NewVariable->GetVariableName()
), я получил ошибку, и я не могу получить к ней доступ. Разве невозможно получить к нему доступ снаружи, даже если эта функция объявляется как «публичная» ? Это не то, что я хочу
есть идеи?
спасибо

Подробнее здесь: https://stackoverflow.com/questions/797 ... ace-object
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»