using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class SelectionManager : MonoBehaviour { public static SelectionManager Instance { get; set; } public bool onTarget; public GameObject selectedObject; public GameObject interaction_Info_UI; Text interaction_text; public Image centerDotIcon; public Image handIcon; public bool handIsVisible; public GameObject selectedTree; public GameObject chopHolder; private void Awake() { if (Instance != null && Instance != this) { DestroyObject(gameObject); } else { Instance = this; } } private void Start() { onTarget = false; interaction_text = interaction_Info_UI.GetComponent(); } void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit)) { var selectionTransform = hit.transform; InteractableObject interactable = selectionTransform.GetComponent(); if (interactable) { ChoppableTree choppableTree = selectionTransform.GetComponent(); if (interactable.transform.Find("base_tree")) { choppableTree = interactable.transform.Find("base_tree").transform.GetComponent(); } if (choppableTree && choppableTree.playerInRanger) { choppableTree.canBeChopped = true; selectedTree = choppableTree.gameObject; chopHolder.gameObject.SetActive(true); } else { if (selectedTree != null) { selectedTree.gameObject.GetComponent().canBeChopped = false; selectedTree = null; chopHolder.gameObject.SetActive(false); } } interaction_text.text = interactable.GetItemName(); interaction_Info_UI.SetActive(true); if (interactable.playerInRanger) { onTarget = true; selectedObject = interactable.gameObject; if (interactable.CompareTag("pickable")) { centerDotIcon.gameObject.SetActive(false); handIcon.gameObject.SetActive(true); handIsVisible = true; } else { centerDotIcon.gameObject.SetActive(true); handIcon.gameObject.SetActive(false); handIsVisible = false; } } else { onTarget = false; centerDotIcon.gameObject.SetActive(true); handIcon.gameObject.SetActive(false); handIsVisible = false; } } else { onTarget = false; interaction_Info_UI.SetActive(false); centerDotIcon.gameObject.SetActive(true); handIcon.gameObject.SetActive(false); handIsVisible = false; } } else { onTarget = false; interaction_Info_UI.SetActive(false); centerDotIcon.gameObject.SetActive(true); handIcon.gameObject.SetActive(false); handIsVisible = false; } } public void DisableSelection() { handIcon.enabled = false; centerDotIcon.enabled = false; interaction_Info_UI.SetActive(false); selectedObject = null; } public void EnableSelection() { handIcon.enabled = true; centerDotIcon.enabled = true; interaction_Info_UI.SetActive(true); } }