I'm trying to create a trigger, but it seems that the more diagonally I rotate a trigger, the less accurate it is.
Here is the code I'm using to create the trigger:
%trigger = new Trigger()
{
datablock = BeamTriggerData;
rotation = %rotation;
position = %pos;
polyhedron = "0 0 0 1 0 0 0 -1 0 0 0 1"; // This determines the shape of the trigger.
client = %client;
};
%trigger.schedule(3000, setScale, 0.1 SPC 0.1 SPC %triggerlength);
Now, for instance, if I was to create a trigger in this way, with a %triggerlength of 10, with the rotation -0.577352 -0.57735 0.57735 120
(Note that this rotation is pointing directly south)
The trigger is fine. It detects everything that comes within it's bounds perfectly fine.
Now, give it the rotation
-0.707108 0.707105 0 90
(Note that this rotation is pointing directly south west)
And the trigger starts to produce very strange results. It's not accurate, as in, it will trigger when you are too far away from the trigger. It also produces very strange artifacts, for example, when you trigger the trigger, you have to backtrack significantly further than you walked into the trigger to leave the trigger.
Any clarification on this would be appreciated.