Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Update()
- {
- if (!isSearcherEnabled) return;
- RaycastHit hitInfo;
- if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hitInfo, rayRange, interactablesMask))
- {
- GameObject interactableGameObject = hitInfo.collider.gameObject;
- if (interactableGameObject.TryGetComponent(out IInteractable interactable))
- {
- // W tym momencie kiedy napisałem cały ten kod, okazało się, że mój system nie jest
- // "uniwersalny" ponieważ teraz będę musiał używać funkcji 'if' aby wiedzieć
- // z jakim obiektem mam do czynienia
- // czyli muszę robić tak:
- // Jeśli Obiekt na który patrzy gracz to szuflada:
- if (interactableGameObject.TryGetComponent(out DrawerInteractable drawer))
- {
- // Sprawdź informację w jego SOInteractable (ScriptableObject)
- // i wyświetl te informacje na ekranie:
- UIManager.Instance.ShowInteractable(
- _interactableName: drawer.interactableData.objectName,
- _interactableDescription: drawer.interactableData.objectDescription,
- toggle: true // true żeby wyświetlić informacje
- );
- }
- // Jeśli Obiekt na który patrzy gracz to drzwi:
- if (interactableGameObject.TryGetComponent(out DoorInteractable door))
- {
- // I tu powtarza się ten sam kod co wyżej
- }
- } else
- {
- // Jeśli gracz nie patrzy na żaden obiekt, z który może wejść w interakcje
- // zresetuj tekst na ekranie
- UIManager.Instance.ShowInteractable(
- toggle: false // false żeby przestać wyświetlać informacje
- );
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement