ObjectSelector.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using UnityEngine;
  2. using UnityEngine.UI; // This line is necessary to use UI components like Button
  3. using System.Collections;
  4. public class ObjectSelector : MonoBehaviour
  5. {
  6. private GameObject currentlySelectedObject;
  7. public Button deleteButton; // Ensure this is assigned in the Unity inspector
  8. public Camera arCamera;
  9. void Update()
  10. {
  11. if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)
  12. {
  13. Ray ray;
  14. if (arCamera != null)
  15. ray = arCamera.ScreenPointToRay(Input.GetTouch(0).position);
  16. else
  17. ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);
  18. RaycastHit hit;
  19. if (Physics.Raycast(ray, out hit))
  20. {
  21. // Debug to see what object is hit
  22. Debug.Log("Hit " + hit.collider.gameObject.name);
  23. if (hit.collider.gameObject == gameObject)
  24. {
  25. currentlySelectedObject = gameObject;
  26. deleteButton.gameObject.SetActive(true); // Show the delete button
  27. deleteButton.onClick.AddListener(() => DeleteSelectedObject());
  28. }
  29. }
  30. }
  31. }
  32. void DeleteSelectedObject()
  33. {
  34. if (currentlySelectedObject != null)
  35. {
  36. Debug.Log("Deleting object: " + currentlySelectedObject.name);
  37. //currentlySelectedObject.gameObject.SetActive(false);
  38. Destroy(currentlySelectedObject); // Destroy the object
  39. currentlySelectedObject = null; // Clear the reference
  40. deleteButton.gameObject.SetActive(false); // Hide the delete button
  41. deleteButton.onClick.RemoveListener(DeleteSelectedObject);
  42. this.gameObject.GetComponent<ObjectDropper>().DeleteObject();
  43. }
  44. }
  45. }