| 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<Text>(); | |
| } | |
| 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<InteractableObject>(); | |
| if (interactable) | |
| { | |
| ChoppableTree choppableTree = selectionTransform.GetComponent<ChoppableTree>(); | |
| if (interactable.transform.Find("base_tree")) | |
| { | |
| choppableTree = interactable.transform.Find("base_tree").transform.GetComponent<ChoppableTree>(); | |
| } | |
| if (choppableTree && choppableTree.playerInRanger) | |
| { | |
| choppableTree.canBeChopped = true; | |
| selectedTree = choppableTree.gameObject; | |
| chopHolder.gameObject.SetActive(true); | |
| } | |
| else | |
| { | |
| if (selectedTree != null) | |
| { | |
| selectedTree.gameObject.GetComponent<ChoppableTree>().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); | |
| } | |
| } |