|
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); |
|
} |
|
} |