3DSurvivalGame / Assets /Scripts /SelectionManager.cs
doc2txt's picture
1
3497d64
raw
history blame contribute delete
No virus
4.2 kB
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);
}
}