x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Trying to get a variable to identify

What I want to do is I want a door to open after someone enters a password into a widget I set up with blueprint. I created a C++ class to open the door which works and I am now trying to set up a if statement for it to open when a variable I created changes.

To make a variable I can access in both blueprint a c++ I followed this guide and my variable I created in gamemodebase c++ component now shows up in blueprint: https://wiki.unrealengine.com/Blueprints,_Creating_Variables_in_C%2B%2B_For_Use_In_BP

Now I am trying to introduce my variable into other .cpp files specifically the one that opens my door but the problem is its not Identifying. My suspicions are that I am missing #include.

Here is header file for my game mode: alt text

And here is my .cpp c++ component for the door;

![alt text][3]

And here is the variable working in blueprint am trying to have it so when this is set c++ class for my door will take note of it and open the door according to my if statement.

alt text

[3]: /storage/temp/236918-opengate-cpp.png

Product Version: UE 4.19
Tags:
more ▼

asked Apr 09 '18 at 08:45 PM in C++ Programming

avatar image

HitmanRm95
12 2 4 6

avatar image HarryHighDef Apr 10 '18 at 09:15 AM

You see the get and cast you do in your BP code to set the variable. You'll have to make the equivalent get and cast to get the variable in c++.

(comments are locked)
10|2000 characters needed characters left

1 answer: sort voted first

You need to do something like this:

ACemeteryFPSGameModeBase* CemeteryGameMode = Cast(UGamePlayStatics:GetGameMode(GetWorld()));

if(CemeteryGameMode->GateKey > 1) OpenGate();

more ▼

answered Apr 10 '18 at 11:05 AM

avatar image

Velrin
375 2 8 13

avatar image HitmanRm95 Apr 10 '18 at 11:32 PM

I gave it a shot but "Cast" has a error "no instance overloaded function" & "UGamePlayStatics:" is coming up as "Identifier is undefined".

I was thinking I was missing a include for UGamePlayStatics so I included the following in my .cpp:

include "Runtime/Engine/Classes/Kismet/GameplayStatics.h"

But it still appears as undefined. I am assuming I am missing some includes.

alt text

cpp-change.png (13.8 kB)
avatar image HitmanRm95 Apr 11 '18 at 10:40 AM

OK I fixed the issue with UGamePlaystatics by changing the capital P to a small p to get UGameplayStatics.

However the issue with cast is still present and Get World now has the following error: Uworld UActorComponent::GetWorld() const argument of type "UWorld " is incompatible with parameter type "const UObject"

alt text

cpp-change-2.png (12.5 kB)
avatar image Velrin Apr 11 '18 at 10:50 AM

Hi,

Apologize for that, the example listed in my comment is incorrect. Initially I thought I wrote it incorrectly but it appears the forums here doesn't like a full cast example. Put your ACemeteryFPSGameModeBase between those symbols in the example below.

Use Cast(UGameplayStatistics::GetGameMode(GetWorld()));

avatar image HitmanRm95 Apr 15 '18 at 01:19 PM

Thanks it greatly appreciated, It works now. The door now opens after a user interacts with my blueprint made widget in my game.

(comments are locked)
10|2000 characters needed characters left
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question