Remove plane detection and add grid on models
This commit is contained in:
		
							
								
								
									
										140
									
								
								Assets/Prefab/GridIndicator.prefab
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										140
									
								
								Assets/Prefab/GridIndicator.prefab
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,140 @@ | ||||
| %YAML 1.1 | ||||
| %TAG !u! tag:unity3d.com,2011: | ||||
| --- !u!1 &5236060892799482280 | ||||
| GameObject: | ||||
|   m_ObjectHideFlags: 0 | ||||
|   m_CorrespondingSourceObject: {fileID: 0} | ||||
|   m_PrefabInstance: {fileID: 0} | ||||
|   m_PrefabAsset: {fileID: 0} | ||||
|   serializedVersion: 6 | ||||
|   m_Component: | ||||
|   - component: {fileID: 8378628612892553542} | ||||
|   - component: {fileID: 8762927115585040554} | ||||
|   - component: {fileID: 6909481848820784089} | ||||
|   - component: {fileID: 3792725663845323067} | ||||
|   m_Layer: 0 | ||||
|   m_Name: Plane | ||||
|   m_TagString: Untagged | ||||
|   m_Icon: {fileID: 0} | ||||
|   m_NavMeshLayer: 0 | ||||
|   m_StaticEditorFlags: 0 | ||||
|   m_IsActive: 1 | ||||
| --- !u!4 &8378628612892553542 | ||||
| Transform: | ||||
|   m_ObjectHideFlags: 0 | ||||
|   m_CorrespondingSourceObject: {fileID: 0} | ||||
|   m_PrefabInstance: {fileID: 0} | ||||
|   m_PrefabAsset: {fileID: 0} | ||||
|   m_GameObject: {fileID: 5236060892799482280} | ||||
|   serializedVersion: 2 | ||||
|   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | ||||
|   m_LocalPosition: {x: 0, y: 0, z: 0} | ||||
|   m_LocalScale: {x: 0.3, y: 1, z: 0.3} | ||||
|   m_ConstrainProportionsScale: 0 | ||||
|   m_Children: [] | ||||
|   m_Father: {fileID: 4410441032802257291} | ||||
|   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} | ||||
| --- !u!33 &8762927115585040554 | ||||
| MeshFilter: | ||||
|   m_ObjectHideFlags: 0 | ||||
|   m_CorrespondingSourceObject: {fileID: 0} | ||||
|   m_PrefabInstance: {fileID: 0} | ||||
|   m_PrefabAsset: {fileID: 0} | ||||
|   m_GameObject: {fileID: 5236060892799482280} | ||||
|   m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} | ||||
| --- !u!23 &6909481848820784089 | ||||
| MeshRenderer: | ||||
|   m_ObjectHideFlags: 0 | ||||
|   m_CorrespondingSourceObject: {fileID: 0} | ||||
|   m_PrefabInstance: {fileID: 0} | ||||
|   m_PrefabAsset: {fileID: 0} | ||||
|   m_GameObject: {fileID: 5236060892799482280} | ||||
|   m_Enabled: 1 | ||||
|   m_CastShadows: 1 | ||||
|   m_ReceiveShadows: 1 | ||||
|   m_DynamicOccludee: 1 | ||||
|   m_StaticShadowCaster: 0 | ||||
|   m_MotionVectors: 1 | ||||
|   m_LightProbeUsage: 1 | ||||
|   m_ReflectionProbeUsage: 1 | ||||
|   m_RayTracingMode: 2 | ||||
|   m_RayTraceProcedural: 0 | ||||
|   m_RenderingLayerMask: 1 | ||||
|   m_RendererPriority: 0 | ||||
|   m_Materials: | ||||
|   - {fileID: 2100000, guid: d5774351bc3ae4ad393dc1d142ff4235, type: 2} | ||||
|   m_StaticBatchInfo: | ||||
|     firstSubMesh: 0 | ||||
|     subMeshCount: 0 | ||||
|   m_StaticBatchRoot: {fileID: 0} | ||||
|   m_ProbeAnchor: {fileID: 0} | ||||
|   m_LightProbeVolumeOverride: {fileID: 0} | ||||
|   m_ScaleInLightmap: 1 | ||||
|   m_ReceiveGI: 1 | ||||
|   m_PreserveUVs: 0 | ||||
|   m_IgnoreNormalsForChartDetection: 0 | ||||
|   m_ImportantGI: 0 | ||||
|   m_StitchLightmapSeams: 1 | ||||
|   m_SelectedEditorRenderState: 3 | ||||
|   m_MinimumChartSize: 4 | ||||
|   m_AutoUVMaxDistance: 0.5 | ||||
|   m_AutoUVMaxAngle: 89 | ||||
|   m_LightmapParameters: {fileID: 0} | ||||
|   m_SortingLayerID: 0 | ||||
|   m_SortingLayer: 0 | ||||
|   m_SortingOrder: 0 | ||||
|   m_AdditionalVertexStreams: {fileID: 0} | ||||
| --- !u!64 &3792725663845323067 | ||||
| MeshCollider: | ||||
|   m_ObjectHideFlags: 0 | ||||
|   m_CorrespondingSourceObject: {fileID: 0} | ||||
|   m_PrefabInstance: {fileID: 0} | ||||
|   m_PrefabAsset: {fileID: 0} | ||||
|   m_GameObject: {fileID: 5236060892799482280} | ||||
|   m_Material: {fileID: 0} | ||||
|   m_IncludeLayers: | ||||
|     serializedVersion: 2 | ||||
|     m_Bits: 0 | ||||
|   m_ExcludeLayers: | ||||
|     serializedVersion: 2 | ||||
|     m_Bits: 0 | ||||
|   m_LayerOverridePriority: 0 | ||||
|   m_IsTrigger: 0 | ||||
|   m_ProvidesContacts: 0 | ||||
|   m_Enabled: 1 | ||||
|   serializedVersion: 5 | ||||
|   m_Convex: 0 | ||||
|   m_CookingOptions: 30 | ||||
|   m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} | ||||
| --- !u!1 &7069418182187326116 | ||||
| GameObject: | ||||
|   m_ObjectHideFlags: 0 | ||||
|   m_CorrespondingSourceObject: {fileID: 0} | ||||
|   m_PrefabInstance: {fileID: 0} | ||||
|   m_PrefabAsset: {fileID: 0} | ||||
|   serializedVersion: 6 | ||||
|   m_Component: | ||||
|   - component: {fileID: 4410441032802257291} | ||||
|   m_Layer: 0 | ||||
|   m_Name: GridIndicator | ||||
|   m_TagString: Untagged | ||||
|   m_Icon: {fileID: 0} | ||||
|   m_NavMeshLayer: 0 | ||||
|   m_StaticEditorFlags: 0 | ||||
|   m_IsActive: 1 | ||||
| --- !u!4 &4410441032802257291 | ||||
| Transform: | ||||
|   m_ObjectHideFlags: 0 | ||||
|   m_CorrespondingSourceObject: {fileID: 0} | ||||
|   m_PrefabInstance: {fileID: 0} | ||||
|   m_PrefabAsset: {fileID: 0} | ||||
|   m_GameObject: {fileID: 7069418182187326116} | ||||
|   serializedVersion: 2 | ||||
|   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | ||||
|   m_LocalPosition: {x: 0, y: 0, z: 0} | ||||
|   m_LocalScale: {x: 1, y: 1, z: 1} | ||||
|   m_ConstrainProportionsScale: 0 | ||||
|   m_Children: | ||||
|   - {fileID: 8378628612892553542} | ||||
|   m_Father: {fileID: 0} | ||||
|   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} | ||||
							
								
								
									
										7
									
								
								Assets/Prefab/GridIndicator.prefab.meta
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								Assets/Prefab/GridIndicator.prefab.meta
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| fileFormatVersion: 2 | ||||
| guid: 9d00637d689464a7aabd732cb44e1552 | ||||
| PrefabImporter: | ||||
|   externalObjects: {} | ||||
|   userData:  | ||||
|   assetBundleName:  | ||||
|   assetBundleVariant:  | ||||
| @@ -8,24 +8,24 @@ using UnityEngine.XR.ARSubsystems; | ||||
| public class DragAndDropManager : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler | ||||
| { | ||||
|     public GameObject prefabToInstance; | ||||
|     public GameObject gridPrefab; // Prefab del grid de detección | ||||
|  | ||||
|     private ARRaycastManager arRaycastManager; // Asignable din<69>micamente | ||||
|     private Camera arCamera; // Asignable din<69>micamente | ||||
|     private ARRaycastManager arRaycastManager; | ||||
|     private ARAnchorManager arAnchorManager; // Se agrega ARAnchorManager para fijar los objetos | ||||
|     private Camera arCamera; | ||||
|     private GameObject draggedObject; | ||||
|     private GameObject gridIndicator; // Instancia del grid | ||||
|  | ||||
|     // M<>todo para asignar la c<>mara desde MeasuringSystem | ||||
|     public void SetCamera(Camera camera) | ||||
|     { | ||||
|         if (camera == null) | ||||
|         { | ||||
|             Debug.LogError("C<EFBFBD>mara proporcionada es nula."); | ||||
|             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) | ||||
| @@ -34,7 +34,16 @@ public class DragAndDropManager : MonoBehaviour, IBeginDragHandler, IDragHandler | ||||
|             return; | ||||
|         } | ||||
|         arRaycastManager = raycastManager; | ||||
|         Debug.Log($"ARRaycastManager asignado: {arRaycastManager.name}"); | ||||
|     } | ||||
|  | ||||
|     public void SetARAnchorManager(ARAnchorManager anchorManager) | ||||
|     { | ||||
|         if (anchorManager == null) | ||||
|         { | ||||
|             Debug.LogError("ARAnchorManager proporcionado es nulo."); | ||||
|             return; | ||||
|         } | ||||
|         arAnchorManager = anchorManager; | ||||
|     } | ||||
|  | ||||
|     public void OnBeginDrag(PointerEventData eventData) | ||||
| @@ -44,36 +53,62 @@ public class DragAndDropManager : MonoBehaviour, IBeginDragHandler, IDragHandler | ||||
|             draggedObject = Instantiate(prefabToInstance); | ||||
|             draggedObject.SetActive(false); | ||||
|         } | ||||
|  | ||||
|         // Crear el grid de detección | ||||
|         if (gridPrefab != null) | ||||
|         { | ||||
|             gridIndicator = Instantiate(gridPrefab); | ||||
|             gridIndicator.SetActive(false); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void OnDrag(PointerEventData eventData) | ||||
|     { | ||||
|         if (draggedObject != null) | ||||
|         if (draggedObject != null && arRaycastManager != null && arCamera != 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<EFBFBD>n AR detectada | ||||
|                 // Colocar el objeto en la posición AR detectada | ||||
|                 draggedObject.transform.position = hitPose.position; | ||||
|                 draggedObject.transform.rotation = hitPose.rotation; | ||||
|                 draggedObject.SetActive(true); | ||||
|  | ||||
|                 // Mostrar el grid en la posición detectada | ||||
|                 if (gridIndicator != null) | ||||
|                 { | ||||
|                     gridIndicator.transform.position = hitPose.position; | ||||
|                     gridIndicator.SetActive(true); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void OnEndDrag(PointerEventData eventData) | ||||
|     { | ||||
|         if (draggedObject != null) | ||||
|         if (draggedObject != null && arAnchorManager != null) | ||||
|         { | ||||
|             // Agregar un anclaje al objeto para fijarlo en su lugar | ||||
|             ARAnchor anchor = arAnchorManager.AddAnchor(new Pose(draggedObject.transform.position, draggedObject.transform.rotation)); | ||||
|              | ||||
|             if (anchor != null) | ||||
|             { | ||||
|                 draggedObject.transform.SetParent(anchor.transform); // Hacer que el objeto sea hijo del anclaje | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 Debug.LogWarning("No se pudo crear un ARAnchor. El objeto podría moverse."); | ||||
|             } | ||||
|  | ||||
|             draggedObject = null; | ||||
|         } | ||||
|  | ||||
|         // Ocultar el grid una vez colocado el objeto | ||||
|         if (gridIndicator != null) | ||||
|         { | ||||
|             Destroy(gridIndicator); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -691,8 +691,8 @@ MonoBehaviour: | ||||
|   m_TargetGraphic: {fileID: 1498425121} | ||||
|   m_HandleRect: {fileID: 1498425120} | ||||
|   m_Direction: 0 | ||||
|   m_Value: -0.00000005086193 | ||||
|   m_Size: 0.37499678 | ||||
|   m_Value: -0.000000050861942 | ||||
|   m_Size: 0.37123078 | ||||
|   m_NumberOfSteps: 0 | ||||
|   m_OnValueChanged: | ||||
|     m_PersistentCalls: | ||||
| @@ -787,6 +787,7 @@ MonoBehaviour: | ||||
|   m_Name:  | ||||
|   m_EditorClassIdentifier:  | ||||
|   prefabToInstance: {fileID: 384462179027726530, guid: d7ca2b9d438a97e46b228f65e3ea34fd, type: 3} | ||||
|   gridPrefab: {fileID: 7069418182187326116, guid: 9d00637d689464a7aabd732cb44e1552, type: 3} | ||||
| --- !u!114 &518661788 | ||||
| MonoBehaviour: | ||||
|   m_ObjectHideFlags: 0 | ||||
| @@ -1913,6 +1914,7 @@ MonoBehaviour: | ||||
|   m_Name:  | ||||
|   m_EditorClassIdentifier:  | ||||
|   prefabToInstance: {fileID: 2065567086344354061, guid: d5ced78f2c9acf647bc91230db65e53d, type: 3} | ||||
|   gridPrefab: {fileID: 7069418182187326116, guid: 9d00637d689464a7aabd732cb44e1552, type: 3} | ||||
| --- !u!114 &1198553689 | ||||
| MonoBehaviour: | ||||
|   m_ObjectHideFlags: 0 | ||||
| @@ -2322,6 +2324,7 @@ MonoBehaviour: | ||||
|   m_Name:  | ||||
|   m_EditorClassIdentifier:  | ||||
|   prefabToInstance: {fileID: 2415200880001261083, guid: 4217598f115eda443b059d1d3029157e, type: 3} | ||||
|   gridPrefab: {fileID: 7069418182187326116, guid: 9d00637d689464a7aabd732cb44e1552, type: 3} | ||||
| --- !u!114 &1510757703 | ||||
| MonoBehaviour: | ||||
|   m_ObjectHideFlags: 0 | ||||
| @@ -2492,6 +2495,7 @@ MonoBehaviour: | ||||
|   m_Name:  | ||||
|   m_EditorClassIdentifier:  | ||||
|   prefabToInstance: {fileID: 1436977506181758233, guid: 5d852d0f90f588547b2ca56c0dd1340a, type: 3} | ||||
|   gridPrefab: {fileID: 7069418182187326116, guid: 9d00637d689464a7aabd732cb44e1552, type: 3} | ||||
| --- !u!114 &1824976693 | ||||
| MonoBehaviour: | ||||
|   m_ObjectHideFlags: 0 | ||||
| @@ -2742,6 +2746,7 @@ MonoBehaviour: | ||||
|   m_Name:  | ||||
|   m_EditorClassIdentifier:  | ||||
|   prefabToInstance: {fileID: 8617488083332643293, guid: 6749fe3471fc05847a373222f309879f, type: 3} | ||||
|   gridPrefab: {fileID: 7069418182187326116, guid: 9d00637d689464a7aabd732cb44e1552, type: 3} | ||||
| --- !u!114 &2016642937 | ||||
| MonoBehaviour: | ||||
|   m_ObjectHideFlags: 0 | ||||
|   | ||||
| @@ -671,6 +671,7 @@ MonoBehaviour: | ||||
|   m_HitDetectionType: 0 | ||||
|   m_SphereCastRadius: 0.1 | ||||
|   m_ConeCastAngle: 6 | ||||
|   m_LiveConeCastDebugVisuals: 0 | ||||
|   m_RaycastMask: | ||||
|     serializedVersion: 2 | ||||
|     m_Bits: 4294967295 | ||||
| @@ -2429,7 +2430,7 @@ MonoBehaviour: | ||||
|   m_PrefabInstance: {fileID: 0} | ||||
|   m_PrefabAsset: {fileID: 0} | ||||
|   m_GameObject: {fileID: 1776724014} | ||||
|   m_Enabled: 1 | ||||
|   m_Enabled: 0 | ||||
|   m_EditorHideFlags: 0 | ||||
|   m_Script: {fileID: 11500000, guid: e1760703bbd54c04488a8d10600262ab, type: 3} | ||||
|   m_Name:  | ||||
| @@ -3333,6 +3334,7 @@ MonoBehaviour: | ||||
|   m_HitDetectionType: 0 | ||||
|   m_SphereCastRadius: 0.1 | ||||
|   m_ConeCastAngle: 6 | ||||
|   m_LiveConeCastDebugVisuals: 0 | ||||
|   m_RaycastMask: | ||||
|     serializedVersion: 2 | ||||
|     m_Bits: 4294967295 | ||||
|   | ||||
| @@ -145,14 +145,14 @@ PlayerSettings: | ||||
|   - {fileID: 4800000, guid: b02d09082cbc14569ae46c12d9836abc, type: 3} | ||||
|   - {fileID: 4800000, guid: f40a6c94c8e1b494d93d434ae522a14f, type: 3} | ||||
|   - {fileID: 4800000, guid: 0f45334fa661448c886e4f99ba812a7e, type: 3} | ||||
|   - {fileID: 901716690356561315, guid: e04dc9557a6bcec40b5d8576988f74a3, type: 2} | ||||
|   - {fileID: 11400000, guid: 6bfaaf31cb485f64fb956f1d691a0e1d, type: 2} | ||||
|   - {fileID: -5070790411771939123, guid: 228964b93c232624fac8c242b79176e5, type: 2} | ||||
|   - {fileID: 11400000, guid: 911becadf2ac07e4da62b8afa0b9ea7f, type: 2} | ||||
|   - {fileID: 4800000, guid: e7c77f6eaab324a819efdc13b8125a39, type: 3} | ||||
|   - {fileID: 4800000, guid: 6743a50a812740be8c0aa3fccc46fae9, type: 3} | ||||
|   - {fileID: 4800000, guid: b1d4c517492046e1a4e4cc49b0b73b42, type: 3} | ||||
|   - {fileID: 4800000, guid: 2b7e3540272684e0b8e12fed2c4609de, type: 3} | ||||
|   - {fileID: 4800000, guid: c9f956787b1d945e7b36e0516201fc76, type: 3} | ||||
|   - {fileID: 4800000, guid: 0945859e5a1034c2cb6dce53cb4fb899, type: 3} | ||||
|   - {fileID: 479186601668263405, guid: e04dc9557a6bcec40b5d8576988f74a3, type: 2} | ||||
|   - {fileID: 11400000, guid: 6bfaaf31cb485f64fb956f1d691a0e1d, type: 2} | ||||
|   - {fileID: -7180841881952691092, guid: 228964b93c232624fac8c242b79176e5, type: 2} | ||||
|   - {fileID: 11400000, guid: 911becadf2ac07e4da62b8afa0b9ea7f, type: 2} | ||||
|   metroInputSource: 0 | ||||
|   wsaTransparentSwapchain: 0 | ||||
|   m_HolographicPauseOnTrackingLoss: 1 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user