Hi Community,
I’m having trouble returning a private variable from an Interface. I have a private enum variable ‘EBZGame_CameraViewType’ in an interface, which my Character inherits from. I also have a function in the interface that is supposed to return the current state of that variable, from the inheriting classes instance of the interface (if possible).
My ‘getter’ function in the interface is causing me the following compiler error, which I can’t figure out. Even making the Variable ‘Public’ in the interface doesn’t make a difference, and returning it directly without the ‘Getter’ function just results in ‘Cannot Access Private Member in Interface’. Here’s the current compiler error:
1>E:\Users\James\Documents\Unreal Projects\BZGame\Source\BZGame\Private\Characters\BZGame_Character.cpp(110): error C2662: 'EBZGame_CameraViewSetting IBZGame_GameObjectInterface::GetObjectCameraViewSetting(void)' : cannot convert 'this' pointer from 'const ABZGame_Character' to 'IBZGame_GameObjectInterface &'
Here are the Interface Code Files:
Interface .H:
UINTERFACE(MinimalAPI)
class UBZGame_GameObjectInterface : public UInterface
{
GENERATED_UINTERFACE_BODY()
};
class BZGAME_API IBZGame_GameObjectInterface
{
GENERATED_IINTERFACE_BODY()
virtual EBZGame_CameraViewSetting GetObjectCameraViewSetting();
virtual void SetObjectCameraViewSetting(EBZGame_CameraViewSetting NewViewSetting);
/* Set View Type For The Object, can be overridden by inherited classes to do either A) F*ck All, or B) Move the camera to a different view style */
virtual void UpdateCameraViewType();
private:
EBZGame_CameraViewSetting ObjectCameraViewSetting;
};
Interface .CPP
void IBZGame_GameObjectInterface::UpdateCameraViewType()
{
// DO NOUT
}
EBZGame_CameraViewSetting IBZGame_GameObjectInterface::GetObjectCameraViewSetting()
{
return (EBZGame_CameraViewSetting) this->ObjectCameraViewSetting;
}
void IBZGame_GameObjectInterface::SetObjectCameraViewSetting(EBZGame_CameraViewSetting NewViewSetting)
{
ObjectCameraViewSetting = NewViewSetting;
UpdateCameraViewType();
}
And here’s the relevant code in the Character CPP Class (I have an override function declaration in the .h file).
bool ABZGame_Character::IsFirstPerson() const
{
return Controller && Controller->IsLocalPlayerController() && (GetObjectCameraViewSetting() != EBZGame_CameraViewSetting::ECVS_FirstPerson);
}
Any ideas? I’m not a C++ Wizard so might require a good explanation, thanks