12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- using UnityEngine;
- using UnityEngine.UI; // This line is necessary to use UI components like Button
- using System.Collections;
- public class ObjectSelector : MonoBehaviour
- {
- private GameObject currentlySelectedObject;
- public Button deleteButton; // Ensure this is assigned in the Unity inspector
- public Camera arCamera;
- void Update()
- {
- if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)
- {
- Ray ray;
- if (arCamera != null)
- ray = arCamera.ScreenPointToRay(Input.GetTouch(0).position);
- else
- ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);
- RaycastHit hit;
- if (Physics.Raycast(ray, out hit))
- {
- // Debug to see what object is hit
- Debug.Log("Hit " + hit.collider.gameObject.name);
- if (hit.collider.gameObject == gameObject)
- {
- currentlySelectedObject = gameObject;
- deleteButton.gameObject.SetActive(true); // Show the delete button
- deleteButton.onClick.AddListener(() => DeleteSelectedObject());
- }
- }
- }
- }
- void DeleteSelectedObject()
- {
- if (currentlySelectedObject != null)
- {
- Debug.Log("Deleting object: " + currentlySelectedObject.name);
- //currentlySelectedObject.gameObject.SetActive(false);
- Destroy(currentlySelectedObject); // Destroy the object
- currentlySelectedObject = null; // Clear the reference
- deleteButton.gameObject.SetActive(false); // Hide the delete button
- deleteButton.onClick.RemoveListener(DeleteSelectedObject);
- this.gameObject.GetComponent<ObjectDropper>().DeleteObject();
- }
- }
- }
|