How do you remove the deleted prefabs from the arrayList proxy? normally if you delete a GamObject that is listed in an array, you get a null reference, but the item stays as indexed. So somewhere I think you are indeed deleting the array entry, am I correct?
In runtime, it would delete a couple of items from the array list, but it wouldn't destroy all three prefabs along with the items in the list, located in the manager. Sometimes it would destroy one prefab, and other times one or two, then at some point the error would appear to pause it. That's not what it's suppose to do.
Can you explain what you are trying to achieve with this delete range?
Why use a delete array range type of action? To keep things basic and stripped down, the point of the trigger set up is to have 1 invisible cube trigger that detects each prefab objects collision&tag, and if two more are pushed into that trigger cube by rigidbodies colliding with the rigidbody attached to the player, the trigger detects a prefab containing a local int variable in order to compare it via a int compare action in another state.
So since this isn't some sort of advanced gameplay mechanic system like a match 3 or tetris clone where you'd have to figure out a way for each prefab obj being made with individual triggers attached to detect which variable or different tag that each prefab collides with, it should work like the following...
If three prefab objs(blocks for example) collide with a trigger cube, then not only they are removed from a array list proxy located on another separate object manager, but they are destroyed because the cube trigger deals with detecting each cube as some sort of local int variable in order to be compared to the trigger detecting three prefab block objs.
I can't think of another way to set up an fsm to detect and destroy a certain amount of blocks unless comparing ints comes in to equation. I did try the int add action, but would crash unity after 3 ints were added when the trigger cube transitioned into a int compare state. And that was on a different scene with a different obj manager FSM. Therefore, I used one int var. And a couple of global GameObject variables, one for storing blocks, and the other for resetting the array list.
So for the recap...
1 trigger detects three prefabs, each one them count as
1 int on
1 local int var that would destroy all three blocks because 1 prefab = 1 block.
Last I checked, there were a couple of global variables in this scene. But only because I want to try to do this without having each block have a template FSM with global events in order to communicate with the cube trigger and empty object with a array list proxy manager.
Does that sound clearer to you Jean? Or does it still sound too convoluted? I thought that hey! In order to try something more simplified compared to making a full on match3 type of game, I'd try this for practice.