using NavKeypad; using UnityEngine; public class PlaerRaycast : MonoBehaviour { [SerializeField] private Camera camera; [SerializeField] private LayerMask layerMask; [SerializeField] private float raycastDistance = 1f; void Update() { if (Input.GetKeyDown(KeyCode.E)) { RaycastHit hit; if (Physics.Raycast(camera.transform.position, camera.transform.forward, out hit, raycastDistance, layerMask)) { // Проверяем, попали ли в дверь (OpenableObject) if (hit.collider.TryGetComponent(out OpenableObject openableObject)) { if (openableObject.IsLockedByKeypad) { Debug.Log("Эта дверь открывается только через код!"); return; // Игнорируем нажатие E } Debug.Log("Взаимодействие с дверью"); openableObject.OpenOrClose(); } // Проверяем, попали ли в кнопку замка (KeypadButton) else if (hit.collider.TryGetComponent(out KeypadButton keypadButton)) { Debug.Log("Нажата кнопка замка: " + keypadButton.name); keypadButton.PressButton(); } } else { Debug.Log("Рейкаст не попал в объект"); } } } }