Exemplo n.º 1
0
    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;
                }
            }
        }
    }
Exemplo n.º 2
0
 public void AddFixableObject(FixableObject fixableObject)
 {
     allFixableObjects.Add(fixableObject);
 }