void RefreshPickableOnFocus() { pickableOnFocus = null; fixableObjectOnFocus = null; if (isHoldingPickable) { return; } int playerMask = LayerMask.NameToLayer("Player"); int mask = HelperUtilities.GetOpaqueLayerMaskForRaycast(); mask &= ~(1 << playerMask); var cam = CameraRigManager.Instance.brain.OutputCamera; if (Physics.Raycast(cam.transform.position, cam.transform.forward, out var hitInfo, maxInteractionDistance, mask)) { var otherRigidbody = hitInfo.collider.attachedRigidbody; if (otherRigidbody) { var pickable = otherRigidbody.GetComponent <Pickable>(); var fixableObject = otherRigidbody.GetComponent <FixableObject>(); if (pickable) { pickableOnFocus = pickable; } else if (fixableObject && fixableObject.isBroken) { fixableObjectOnFocus = fixableObject; } } } }
public void AddFixableObject(FixableObject fixableObject) { allFixableObjects.Add(fixableObject); }