So, let me just preface by saying I'm loving Bolt so far. I'm an artist, not a dev, and it's been transformative in letting me put together gameplay systems entirely by myself.
That said, I'm having a bizarre problem, and I can't tell if it's due to a bug or something I'm doing wrong.
Basically, the situation is this: I have a controller macro that listens for input and sends out a custom event (to itself) with an argument based on the input it receives. The object that hosts this macro also has a variable to store the last "activated" gameobject.
I then have a second object macro that listens to the controller object for the event, checks against the "activated" variable, and if the object's ID is equal to the current "activated" variable, is allowed to execute whatever code before updating the "activated" variable to the next object in the sequence.
(Basically, I'm replicating the Unity EventManager system to create a navigable grid for gameplay/UI purposes, just simpler and more suited to what I want to do.)
Here's the problem. It only works once. The first time the event is triggered, the "activated" game object executes its macro correctly, and updates the "activated" game object variable on the controller to the next in the sequence.
For every single execution after that, EVERY SINGLE object with the object macro is reading the "activated" game object as being equal to its own ID variable during the "equals" check. This is in spite of the controller game object displaying the variable to clearly be equal to what it was set to on the first instance of the event trigger.
Then, because of this, nothing seems to be happening at all. The "activated" variable never changes again, but I don't get any errors either, despite all of the objects in the scene trying to push their "nextID" values to the "activated" variable every single time the event is called.
I've tried moving the system from a Custom Event to Update and triggering it by a time interval, I've tried moving the "activated" variable to another game object, to a scene variable, to an application variable. I've tried changing the variable types used for the check active system from a gameObject, to a string, to an int. It all ends up doing the same thing.
I've included some screenshots below of a stripped-down version of the macros I used to reproduce the issue in a blank scene:
This is the "controller" macro. The clipped off stuff is just a bit designed to activate the event once per second for testing purposes.
Here's the other. They both use the same macro, embedded.
Note that the entire system looks like this regardless of when you check it. Both listening objects believe that the objectActive variable is equal to their selfID variables, every time the event triggers, without fail. But the objectActive variable sits at 1, unchanged. No errors, nothing.
I'm really at a loss here. What am I missing? Any help will be very much appreciated.
For reference, this is a fresh project I set up just to use Bolt with not a week ago. I'm on Unity 2017.2.0f3. The only other things in the project are CineMachine, Unity Standard Assets, Probuilder Free, and Unity Post Processing (all from the asset store).
Customer support service by UserEcho