Function pointers in Unreal compared to standard C++. Getting an unexpected error which I cannot reproduce without UE4
I tried to reproduce this issue in a non Unreal Engine project, but I can't seem to do it, so I'm quite unsure how to solve this, you can see how I tried to reproduce it here.
Anyhow, I'm trying to write a triggering gameplay system which works like this:
You have a trigger, can be anything, a volume trigger, a written button class which trigger something, a timed event or anything. That said trigger calls its trigger option class which only exists for the possibility of different usecases, some options at the top of my head: proxytrigger which instantly triggers, delayedtrigger which delays the trigger process, or something more complex like a trigger option that will only give you the OK sign if your health is 100%.
Once the TriggerOption tells the real Trigger that it's been triggered, the TriggerAction will play, which can also be anything, a door opening perhaps? I wonder how many times I've said "trigger" by now ... anyway, that's the entire system. However, the process of TriggerOption telling TriggerActor (the actual trigger) that it should get triggered happens through a function pointer:
This is the function which sets up the function pointer:
This is the function that calls it, or stores it or whatever this subclass wants to do with it, in this case, it just calls it.
This is also the typdef for the function pointer btw:
When trying to call the function pointer, , it throws this:
Exception thrown at 0x00007FF8A0954197 (UE4Editor-UE4Systems-3138.dll) in UE4Editor.exe: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF.
EDIT: Trying to fix the code format...
Im not sure i understod fully what you want, but seems to me you try to overthink this a little bit :)
What about delegates, timers, events, interfaces? :) Technically all of this things is designed to trigger functions at some point and they implemented properly so you can use it freely...
I know this is not what you asked, but maybe a good advice ;) but if you wanna go with function pointers, maybe this wiki helps: https://wiki.unrealengine.com/Function_Pointers
answered Jan 22 '19 at 02:53 PM
Follow this question
Once you sign in you will be able to subscribe for any updates here