How to make Global Values actors play nice with triggers
Hello All,Like everybody else, I LOVE the Set and Get Global Values actors. However, after working on something, I discovered that they do not really play nice with triggers.Basically, because of the way the Set and Get Global Values actors work, any change of a value on the Set Global Values actor will cause the Get Global Values actors to "re-register" not only the one value that was sent, but all of its values.This means that the Set and Get Global Values actors cannot be used for triggers because any values set to the "trigger" type will register a trigger whenever any value changes on the Set Global Values actor. Also, a Get Global Values actor which has a/multiple value(s) that is/are trigger(s), it/they will send a trigger when you enter the scene.Example:I did, however, find out a way to make this work: If you use hook up your trigger-generating actors to Broadcaster actors (on the Set side), send the Broadcaster channel numbers (instead of the triggers), and have Listener actors (on the Get side, instead of triggers), everything works nicely.
This might seem kind of silly, given that the Global Values actors are in some ways meant to "replace" Broadcaster actors and Listener actors, butI figured I would share this method in case anyone else found it helpful. [Edit: See Mark's explanation below, I was incorrect when I said that the Global Values actors were meant to "replace" the Broadcaster/Listener actors in some ways.]Best,Woland(Please find an example patch attached.)
mark last edited by
Dear @Woland,The intention of the Set/Get Global Values actor was not to replace the Broadcaster/Listener combo. Instead, it was about providing global access to a set of values. But Isadora users are not known for accepting the limitations we had in mind, which is part of why the software is great. ;-)That being said, we've had an internal discussion among the team about this. We have it in our mind to change the behavior so that only values that _change_ will be sent by the Get Global Values actor. (Well, that is after the scene is activated. The Get Global Values actor will _always_ send all of it's values when you enter a Scene.)But the real takeaway here is that we probably also need to introduce the same naming scheme for the Broadcaster/Listener that we have for the Global Variables actors. That would address your trigger problem aboveBest Wishes,Mark
Dear @mark,Thanks for the explanation. I guess I have been using the Global Values actors as large Broadcaster/Listener actors because they work so well for it. Plus, with the naming scheme feature, I can easily share User Actors containing them without having to warn people "this User Actor utilizes Broadcaster channel x, so be sure to avoid using it elsewhere in your patch." That being said, the idea of having the same naming scheme for the Broadcaster/Listener actors sounds very exciting! Virtually unlimited and nameable Broadcaster channels, that would be fantastic!You're the best (as always),Woland
Dear @mark,It just occurred to me that having the same system on Net Broadcaster actors would be incredibly helpful as well.Best Wishes,Woland