Removed TOTU 103

This commit is contained in:
Ignacio Gómez Puga
2025-03-04 12:04:52 -06:00
commit 5847d844a5
675 changed files with 76582 additions and 0 deletions

View File

@@ -0,0 +1,79 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.XR.ARFoundation;
using UnityEngine.XR.ARSubsystems;
public class DragAndDropManager : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
public GameObject prefabToInstance;
private ARRaycastManager arRaycastManager; // Asignable din<69>micamente
private Camera arCamera; // Asignable din<69>micamente
private GameObject draggedObject;
// M<>todo para asignar la c<>mara desde MeasuringSystem
public void SetCamera(Camera camera)
{
if (camera == null)
{
Debug.LogError("C<>mara proporcionada es nula.");
return;
}
arCamera = camera;
Debug.Log($"C<>mara asignada: {arCamera.name}");
}
// M<>todo para asignar el ARRaycastManager desde MeasuringSystem
public void SetARRaycastManager(ARRaycastManager raycastManager)
{
if (raycastManager == null)
{
Debug.LogError("ARRaycastManager proporcionado es nulo.");
return;
}
arRaycastManager = raycastManager;
Debug.Log($"ARRaycastManager asignado: {arRaycastManager.name}");
}
public void OnBeginDrag(PointerEventData eventData)
{
if (prefabToInstance != null)
{
draggedObject = Instantiate(prefabToInstance);
draggedObject.SetActive(false);
}
}
public void OnDrag(PointerEventData eventData)
{
if (draggedObject != null)
{
if (arRaycastManager == null || arCamera == null)
{
Debug.LogWarning("ARRaycastManager o c<>mara no asignados. No se puede realizar el raycast.");
return;
}
List<ARRaycastHit> hits = new List<ARRaycastHit>();
if (arRaycastManager.Raycast(eventData.position, hits, TrackableType.Planes))
{
var hitPose = hits[0].pose;
// Colocar el objeto en la posici<63>n AR detectada
draggedObject.transform.position = hitPose.position;
draggedObject.transform.rotation = hitPose.rotation;
draggedObject.SetActive(true);
}
}
}
public void OnEndDrag(PointerEventData eventData)
{
if (draggedObject != null)
{
draggedObject = null;
}
}
}