I found another one. The AnchorableBehaviour has an (awesome) feature that lets it attract to nearby hands. If you're using controllers-only (meaning no optical hand tracking), it'll null ref on hitting updateAttractionToHand().
Since some areas of the code are explicit about whether or not hands or controllers are acceptable, this might not technically be a bug (well the null ref is definitely a bug but you know what I mean), but either way in our project I wanted the controllers to attract anchorable things just like hands do, so I changed the code to the following:
private void updateAttractionToHand()
{
if (interactionBehaviour == null || !isAttractedByHand || interactionBehaviour.hoveringControllers.Count == 0)
{
if (_offsetTowardsHand != Vector3.zero)
{
_offsetTowardsHand = Vector3.Lerp(_offsetTowardsHand, Vector3.zero, 5F * Time.deltaTime);
}
return;
}
float reachTargetAmount = 0F;
Vector3 towardsHand = Vector3.zero;
if (interactionBehaviour != null)
{
if (isAttractedByHand)
{
if (interactionBehaviour.isHovered)
{
InteractionController hoveringController = interactionBehaviour.closestHoveringController;
Vector3 target = hoveringController.hoverPoint;
reachTargetAmount = Mathf.Clamp01(attractionReachByDistance.Evaluate(
Vector3.Distance(target, anchor.transform.position)
));
towardsHand = target - anchor.transform.position;
}
Vector3 targetOffsetTowardsHand = towardsHand * maxAttractionReach * reachTargetAmount;
_offsetTowardsHand = Vector3.Lerp(_offsetTowardsHand, targetOffsetTowardsHand, 5 * Time.deltaTime);
}
}
}