Not to mention that Unity, by default (unless this has changed recently) does the whole "game triggers count as opposite ends of the same axis" thing.
Basically, both triggers end up mapped to the same axis (I'll call it TriggerAxis here), which
really screws you up if you want to check for both triggers at the same time.
For example, if you were making an FPS with iron sights you'd run through something like this:
- To enable your "iron sights" mode you need to check for the left trigger for input.
- Now you need to shoot baddies, right? So you need to check your right trigger for input to decide whether you want to shoot or not. Here's where the problem lies.
Each trigger is the mirror-image of the other one on your TriggerAxis. For the sake of this explanation, your left trigger reads from 0 (not pulled) to -1 (fully pulled), while your right trigger reads from 0 (not pulled) to 1 (fully pulled).
If you have both triggers pulled at the same time, one of two things can happen. 1.) Unity completely ignores the second trigger pull, or 2.) Unity detects the second trigger pull, but because the triggers are mapped to -1 and 1 at this point they cancel each other out. The net effect is that either one trigger isn't detected or
both triggers deactivate.
That's terrible, and really, really bad for games that make use of the triggers. If I remember correctly, Unity's implementation may not even have the triggers on a true axis, it may just read as a binary "pressed" or "not pressed", which means that you can't even check if a trigger is partially pulled or not.
Rewired fixes this with its native plugins, thankfully, but it's one of the huge, glaring issues I discovered when I tried Unity's default input.