Advertisement
evelynshilosky

SelectionManager - Part 13

Jun 4th, 2024
23
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.02 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5.  
  6. public class SelectionManager : MonoBehaviour
  7. {
  8.  
  9.     public static SelectionManager Instance { get; set; }
  10.        
  11.    
  12.     public bool onTarget;
  13.    
  14.     public GameObject selectedObject;
  15.    
  16.    
  17.    
  18.     public GameObject interaction_Info_UI;
  19.     Text interaction_text;
  20.    
  21.    
  22.     public Image centerDotImage;
  23.     public Image handIcon;
  24.  
  25.     public bool handIsVisible;
  26.  
  27.     private void Start()
  28.     {
  29.         onTarget = false;
  30.         interaction_text = interaction_Info_UI.GetComponent<Text>();
  31.     }
  32.  
  33.  
  34.     private void Awake()
  35.     {
  36.         if(Instance != null && Instance != this)
  37.         {
  38.  
  39.             Destroy(gameObject);
  40.  
  41.         }
  42.         else
  43.         {
  44.             Instance = this;
  45.         }
  46.     }
  47.  
  48.  
  49.     void Update()
  50.     {
  51.         Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
  52.         RaycastHit hit;
  53.         if (Physics.Raycast(ray, out hit))
  54.         {
  55.             var selectionTransform = hit.transform;
  56.  
  57.             InteractableObject interactable = selectionTransform.GetComponent<InteractableObject>();
  58.  
  59.  
  60.             if (interactable && interactable.playerInRange)
  61.             {
  62.  
  63.                 onTarget = true;
  64.                 selectedObject = interactable.gameObject;
  65.                 interaction_text.text = interactable.GetItemName();
  66.                 interaction_Info_UI.SetActive(true);
  67.  
  68.                 if (interactable.CompareTag("pickable"))
  69.                 {
  70.  
  71.                     centerDotImage.gameObject.SetActive(false);
  72.                     handIcon.gameObject.SetActive(true);
  73.  
  74.                     handIsVisible = true;
  75.  
  76.                 }
  77.                 else
  78.                 {
  79.                     handIcon.gameObject.SetActive(false);
  80.                     centerDotImage.gameObject.SetActive(true);
  81.  
  82.                     handIsVisible = false;
  83.  
  84.                 }
  85.  
  86.             }
  87.  
  88.             else //if there is a hit, but without an interactable script.
  89.             {
  90.                 onTarget = false;
  91.                 interaction_Info_UI.SetActive(false);
  92.                 handIcon.gameObject.SetActive(false);
  93.                 centerDotImage.gameObject.SetActive(true);
  94.  
  95.                 handIsVisible = false;
  96.  
  97.             }
  98.  
  99.         }
  100.         else //if there is no hit at all.
  101.         {
  102.             onTarget = false;
  103.             interaction_Info_UI.SetActive(false);
  104.             handIcon.gameObject.SetActive(false);
  105.             centerDotImage.gameObject.SetActive(true);
  106.  
  107.             handIsVisible = false;
  108.        
  109.         }
  110.  
  111.  
  112.  
  113.     }
  114.  
  115.     public void DisableSelection()
  116.     {
  117.         handIcon.enabled = false;
  118.         centerDotImage.enabled = false;
  119.         interaction_Info_UI.SetActive(false);
  120.         selectedObject = null;
  121.     }
  122.  
  123.     public void EnableSelection()
  124.     {
  125.         handIcon.enabled = true;
  126.         centerDotImage.enabled = true;
  127.         interaction_Info_UI.SetActive(true);
  128.  
  129.     }
  130.  
  131.  
  132. }
  133.  
  134.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement