Ejemplo simple para interactuar con objetos mirando hacia ellos.

Script

using UnityEngine;
using UnityEngine.InputSystem;

public class Interaccion : MonoBehaviour
{
    [SerializeField]
    private Camera camara;

    [SerializeField]
    private InputActionReference interactAction;

    [SerializeField]
    private float distancia = 3f;

    [SerializeField]
    private LayerMask interactuables;

    void Update()
    {
        if (!interactAction.action.WasPressedThisFrame())
        {
            return;
        }

        Ray rayo = new Ray(
            camara.transform.position,
            camara.transform.forward
        );

        if (Physics.Raycast(
            rayo,
            out RaycastHit hit,
            distancia,
            interactuables))
        {
            Debug.Log(
                "Interactuando con: " +
                hit.collider.name
            );
        }
    }

    void OnDrawGizmosSelected()
    {
        if (camara == null)
        {
            return;
        }

        Gizmos.DrawRay(
            camara.transform.position,
            camara.transform.forward * distancia
        );
    }
}

Qué usa


Mejoras posibles

Podés reemplazar el Debug.Log por: