Advertisement
Guest User

Untitled

a guest
Dec 6th, 2023
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.84 KB | None | 0 0
  1. void Update()
  2. {
  3.     if (!isSearcherEnabled) return;
  4.  
  5.     RaycastHit hitInfo;
  6.     if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hitInfo, rayRange, interactablesMask))
  7.     {
  8.         GameObject interactableGameObject = hitInfo.collider.gameObject;
  9.         if (interactableGameObject.TryGetComponent(out IInteractable interactable))
  10.         {
  11.             // W tym momencie kiedy napisałem cały ten kod, okazało się, że mój system nie jest
  12.             // "uniwersalny" ponieważ teraz będę musiał używać funkcji 'if' aby wiedzieć
  13.             // z jakim obiektem mam do czynienia
  14.             // czyli muszę robić tak:
  15.  
  16.             // Jeśli Obiekt na który patrzy gracz to szuflada:
  17.             if (interactableGameObject.TryGetComponent(out DrawerInteractable drawer))
  18.             {
  19.                 // Sprawdź informację w jego SOInteractable (ScriptableObject)
  20.                 // i wyświetl te informacje na ekranie:
  21.                 UIManager.Instance.ShowInteractable(
  22.                     _interactableName: drawer.interactableData.objectName,
  23.                     _interactableDescription: drawer.interactableData.objectDescription,
  24.                     toggle: true // true żeby wyświetlić informacje
  25.                 );
  26.             }
  27.             // Jeśli Obiekt na który patrzy gracz to drzwi:
  28.             if (interactableGameObject.TryGetComponent(out DoorInteractable door))
  29.             {
  30.                 // I tu powtarza się ten sam kod co wyżej
  31.             }
  32.         } else
  33.         {
  34.             // Jeśli gracz nie patrzy na żaden obiekt, z który może wejść w interakcje
  35.             // zresetuj tekst na ekranie
  36.             UIManager.Instance.ShowInteractable(
  37.                     toggle: false // false żeby przestać wyświetlać informacje
  38.                 );
  39.         }
  40.     }
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement