If there still both active then that's definitely why they both rumble.
Is that RuleChecker
enabled at all when whole haptics object activate? If it's not make sure you've ticked 'Only Rumble Active Interactor' - I know you've written you did but doesn't hurt to double check.
If that's still not quite working, try renaming RuleChecker
to something more unique and put a breakpoint in
Zinnia.Rule.RulesMatcher.Match
public virtual void Match(object source)
{
if (Elements == null)
{
return;
}
foreach (Element element in Elements.NonSubscribableElements)
{
//CH: put a conditional breakpoint here with condition 'this.gameObject.name == "YourNowUniqueName"'
if (element.Rule.Accepts(source))
{
//CH: rule should check if source is say LeftController, if it is it'll fire corresponding Matched that'll Enable left and disable right, then the same thing will happen for right controller.
//CH: so really you should get true for LeftInteractor rule and debugger should enter here, and false for RightInteractor
element.Matched?.Invoke();
}
}
}
Or if you want to drop to code somewhere I could have a quick look.