diff --git a/Assets/Scripts/NewIndoorNav Old.cs b/Assets/Scripts/NewIndoorNav Old.cs deleted file mode 100644 index d22ca51..0000000 --- a/Assets/Scripts/NewIndoorNav Old.cs +++ /dev/null @@ -1,160 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using Unity.AI.Navigation; -using UnityEngine; -using UnityEngine.AI; -using UnityEngine.XR.ARFoundation; - -public class NewIndoorNavOld : MonoBehaviour { - [SerializeField] private Transform player; - [SerializeField] private ARTrackedImageManager m_TrackedImageManager; - [SerializeField] private GameObject trackedImagePrefab; - [SerializeField] private LineRenderer line; - - private List navigationTargets = new List(); - private NavMeshSurface navMeshSurface; - private NavMeshPath navMeshPath; - - private GameObject navigationBase; - - private string currentImageName = "rear"; - public int targetNumber = 0; - - private void Start() { - navMeshPath = new NavMeshPath(); - - // disable screen dimming - Screen.sleepTimeout = SleepTimeout.NeverSleep; - } - - private void Update() { - if (navigationBase != null && navigationTargets.Count > 0 && navMeshSurface != null) { - // Check if there are any tracked images - if (m_TrackedImageManager.trackables.count > 0) { - // Use a foreach loop to get the first tracked image - foreach (var trackedImage in m_TrackedImageManager.trackables) { - // currentImageName = trackedImage.referenceImage.name; // Get the name of the tracked image - Debug.Log(currentImageName); - - // Determine which navigation target to use based on the tracked image - Transform targetTransform = null; - - // if (currentImageName == "QR_testARtracking") { - // targetTransform = navigationTargets[0].transform; - // } else if (currentImageName == "default") { - // targetTransform = navigationTargets[1].transform; - // } - targetTransform = navigationTargets[targetNumber].transform; - - // If a valid target is found, calculate the path - if (targetTransform != null) { - NavMesh.CalculatePath(player.position, targetTransform.position, NavMesh.AllAreas, navMeshPath); - // Debug.Log($"-----------------------------"); - // Debug.Log($"NavMesh.CalculatePath debug"); - // Debug.Log($"targetTransform.position : {targetTransform.position}"); - // Debug.Log($"NavMesh.AllAreas : {NavMesh.AllAreas}"); - // Debug.Log($"navMeshPath : {navMeshPath}"); - // Debug.Log($"-----------------------------"); - if (navMeshPath.status == NavMeshPathStatus.PathComplete) { - line.positionCount = navMeshPath.corners.Length; - line.SetPositions(navMeshPath.corners); - // Debug.Log($"YAY !!!!!!!!!!!!!!"); - } else { - line.positionCount = 0; - } - // Debug.Log($"Player Position: {player.position}, Target Position: {targetTransform.position}, Path Status: {navMeshPath.status}"); - // Debug.Log($"Path Corners Count: {navMeshPath.corners.Length}"); - // Debug.Log($"Name Pic : {currentImageName}"); - - } else { - // If no valid target is found, clear the line - line.positionCount = 0; - } - - // Break after processing the first tracked image - break; - } - } else { - // If no tracked images are available, clear the line - line.positionCount = 0; - } - } - } - - - - - private void OnEnable() => m_TrackedImageManager.trackablesChanged.AddListener(OnChanged); - - private void OnDisable() => m_TrackedImageManager.trackablesChanged.RemoveListener(OnChanged); - - private void OnChanged(ARTrackablesChangedEventArgs eventArgs) { - foreach (var newImage in eventArgs.added) { - navigationBase = GameObject.Instantiate(trackedImagePrefab); - navigationTargets.Clear(); - - navigationTargets = navigationBase.transform.GetComponentsInChildren().ToList(); - navMeshSurface = navigationBase.transform.GetComponentInChildren(); - - } - - foreach (var updatedImage in eventArgs.updated) { - // Check if navigationBase is null to avoid null reference exceptions - if (navigationBase == null) { - continue; - } - - // Get the current position of navigationBase - Vector3 currentPosition = navigationBase.transform.position; - - // Debug.Log(currentImageName); - - // Calculate the new position based on the updated image's position - Vector3 newPosition = currentPosition; - if (currentImageName == "front") { - newPosition = updatedImage.pose.position + new Vector3(-1.22f, -1f, 13f); - } else if (currentImageName == "frontright") { - newPosition = updatedImage.pose.position + new Vector3(-8.65f, -1f, 6.25f); - } else if (currentImageName == "rearright") { - newPosition = updatedImage.pose.position + new Vector3(18f, -1f, 6.25f); - } else if (currentImageName == "frontleft") { - newPosition = updatedImage.pose.position + new Vector3(9.65f, -1f, 7.28f); - } else if (currentImageName == "rearleft") { - newPosition = updatedImage.pose.position + new Vector3(-17f, -1f, 7.28f); - } else if (currentImageName == "rear") { - newPosition = updatedImage.pose.position + new Vector3(0.78f, -1f, 19.62f); - } - // Vector3 newPosition = updatedImage.pose.position + new Vector3(-1.22f, -1f, 13f); // invert - - // Check if the new position is significantly different from the current position - if (Vector3.Distance(currentPosition, newPosition) > 0.1f) { // Adjust the threshold as needed - if (currentImageName == "front") { - navigationBase.transform.SetPositionAndRotation(newPosition, Quaternion.Euler(0, -updatedImage.pose.rotation.eulerAngles.x, 0)); - } else if (currentImageName == "frontright" || currentImageName == "rearright") { - navigationBase.transform.SetPositionAndRotation(newPosition, Quaternion.Euler(0, 90+updatedImage.pose.rotation.eulerAngles.x, 0)); - } else if (currentImageName == "frontleft" || currentImageName == "rearleft") { - navigationBase.transform.SetPositionAndRotation(newPosition, Quaternion.Euler(0, 270+updatedImage.pose.rotation.eulerAngles.x, 0)); - } else if (currentImageName == "rear") { - navigationBase.transform.SetPositionAndRotation(newPosition, Quaternion.Euler(0, updatedImage.pose.rotation.eulerAngles.x, 0)); - } - } - } - - foreach (var removedImage in eventArgs.removed) { - // Handle removed images if necessary - } - } - - public void HandleDropdown(int val){ - targetNumber = val-1; - } - - public void DestroyNavigationBase() - { - if (navigationBase != null) - { - Debug.Log("Destroying!!"); - Destroy(navigationBase); - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/NewIndoorNav Old.cs.meta b/Assets/Scripts/NewIndoorNav Old.cs.meta deleted file mode 100644 index 88a1f15..0000000 --- a/Assets/Scripts/NewIndoorNav Old.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 3899037cd98be5152b76e6c510a0b7e7 \ No newline at end of file diff --git a/Assets/Scripts/NewIndoorNavWorking.cs b/Assets/Scripts/NewIndoorNavWorking.cs deleted file mode 100644 index d75e1b1..0000000 --- a/Assets/Scripts/NewIndoorNavWorking.cs +++ /dev/null @@ -1,212 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using Unity.AI.Navigation; -using UnityEngine; -using UnityEngine.AI; -using UnityEngine.XR.ARFoundation; -using UnityEngine.XR.ARSubsystems; - -public class NewIndoorNavWorking : MonoBehaviour -{ - [SerializeField] private Transform player; - [SerializeField] private ARTrackedImageManager m_TrackedImageManager; - [SerializeField] private GameObject trackedImagePrefab; - [SerializeField] private LineRenderer line; - - private List navigationTargets = new List(); - private NavMeshSurface navMeshSurface; - private NavMeshPath navMeshPath; - - private GameObject navigationBase; - private ARTrackedImage currentTrackedImage; - - private string currentImageName = "front"; - public static int targetNumber = StoreDataScript.targetNumber; - - private void Start() - { - navMeshPath = new NavMeshPath(); - - // disable screen dimming - Screen.sleepTimeout = SleepTimeout.NeverSleep; - } - - private void Update() - { - if (navigationBase != null && navigationTargets.Count > 0 && navMeshSurface != null) - { - // Check if there are any tracked images - if (m_TrackedImageManager.trackables.count > 0) - { - // Use a foreach loop to get the first tracked image - foreach (var trackedImage in m_TrackedImageManager.trackables) - { - currentImageName = trackedImage.referenceImage.name; // Get the name of the tracked image - Debug.Log(currentImageName); - - // Determine which navigation target to use based on the tracked image - Transform targetTransform = null; - - targetTransform = navigationTargets[targetNumber].transform; - - // If a valid target is found, calculate the path - if (targetTransform != null) - { - NavMesh.CalculatePath(player.position, targetTransform.position, NavMesh.AllAreas, navMeshPath); - if (navMeshPath.status == NavMeshPathStatus.PathComplete) - { - line.positionCount = navMeshPath.corners.Length; - line.SetPositions(navMeshPath.corners); - } - else - { - line.positionCount = 0; - } - } - else - { - // If no valid target is found, clear the line - line.positionCount = 0; - } - - // Break after processing the first tracked image - break; - } - } - else - { - // If no tracked images are available, clear the line - line.positionCount = 0; - } - } - } - - private void OnEnable() => m_TrackedImageManager.trackablesChanged.AddListener(OnChanged); - - private void OnDisable() => m_TrackedImageManager.trackablesChanged.RemoveListener(OnChanged); - - private void OnChanged(ARTrackablesChangedEventArgs eventArgs) - { - Debug.Log("OnChanged event triggered."); - Debug.Log(targetNumber); - - // Handle added images - foreach (var newImage in eventArgs.added) - { - string newImageName = newImage.referenceImage.name; // Get the name of the new image - Debug.Log($"New Image Added: {newImageName}"); - - // Stop using the previous image - if (currentTrackedImage != null && currentTrackedImage != newImage) - { - Debug.Log($"Stopping use of previous image: {currentTrackedImage.referenceImage.name}"); - // Destroy any associated game objects here - if (navigationBase != null) - { - Destroy(navigationBase); - } - } - - // Set the new image as the current tracked image - currentTrackedImage = newImage; - currentImageName = newImageName; - - // Instantiate a new navigationBase - navigationBase = GameObject.Instantiate(trackedImagePrefab); - navigationTargets = navigationBase.transform.GetComponentsInChildren().ToList(); - navMeshSurface = navigationBase.transform.GetComponentInChildren(); - } - - // Handle updated images - foreach (var updatedImage in eventArgs.updated) - { - if (navigationBase == null) - { - continue; - } - - currentImageName = updatedImage.referenceImage.name; // Update currentImageName - Debug.Log($"Image Updated: {currentImageName}"); - - // Get the current position of navigationBase - Vector3 currentPosition = navigationBase.transform.position; - - // Calculate the new position based on the updated image's position - Vector3 newPosition = currentPosition; - if (currentImageName == "front") - { - newPosition = updatedImage.transform.position + new Vector3(-1.22f, -1f, 13f); - } - else if (currentImageName == "frontright") - { - newPosition = updatedImage.transform.position + new Vector3(-8.65f, -1f, 6.25f); - } - else if (currentImageName == "rearright") - { - newPosition = updatedImage.transform.position + new Vector3(18f, -1f, 6.25f); - } - else if (currentImageName == "frontleft") - { - newPosition = updatedImage.transform.position + new Vector3(9.65f, -1f, 7.28f); - } - else if (currentImageName == "rearleft") - { - newPosition = updatedImage.transform.position + new Vector3(-17f, -1f, 7.28f); - } - else if (currentImageName == "rear") - { - newPosition = updatedImage.pose.position + new Vector3(0.78f, -1f, 19.62f); - } - - // Check if the new position is significantly different from the current position - if (Vector3.Distance(currentPosition, newPosition) > 0.1f) - { - if (currentImageName == "front") - { - navigationBase.transform.SetPositionAndRotation(newPosition, Quaternion.Euler(0, -updatedImage.transform.rotation.eulerAngles.x, 0)); - } - else if (currentImageName == "frontright" || currentImageName == "rearright") - { - navigationBase.transform.SetPositionAndRotation(newPosition, Quaternion.Euler(0, 90 + updatedImage.transform.rotation.eulerAngles.x, 0)); - } - else if (currentImageName == "frontleft" || currentImageName == "rearleft") - { - navigationBase.transform.SetPositionAndRotation(newPosition, Quaternion.Euler(0, 270 + updatedImage.transform.rotation.eulerAngles.x, 0)); - } - else if (currentImageName == "rear") - { - navigationBase.transform.SetPositionAndRotation(newPosition, Quaternion.Euler(0, updatedImage.pose.rotation.eulerAngles.x, 0)); - } - } - } - - // Handle removed images if necessary - foreach (var removedImage in eventArgs.removed) - { - Debug.Log($"Image Removed: {removedImage.Value.referenceImage.name}"); - if (removedImage.Value == currentTrackedImage) - { - currentTrackedImage = null; - currentImageName = ""; - if (navigationBase != null) - { - Destroy(navigationBase); - } - } - } - } - - public void HandleDropdown(int val) - { - targetNumber = val - 1; - } - - public void DestroyNavigationBase() - { - if (navigationBase != null) - { - Debug.Log("Destroying!!"); - Destroy(navigationBase); - } - } -} diff --git a/Assets/Scripts/NewIndoorNavWorking.cs.meta b/Assets/Scripts/NewIndoorNavWorking.cs.meta deleted file mode 100644 index 7e3807e..0000000 --- a/Assets/Scripts/NewIndoorNavWorking.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 858d4f870663e952483e9571c969c273 \ No newline at end of file diff --git a/Assets/imageTracking/ReferenceImageLibrary.asset b/Assets/imageTracking/ReferenceImageLibrary.asset index 0386f0e..753e037 100644 --- a/Assets/imageTracking/ReferenceImageLibrary.asset +++ b/Assets/imageTracking/ReferenceImageLibrary.asset @@ -17,46 +17,6 @@ MonoBehaviour: m_DataStore: m_Storage: [] m_Images: - - m_SerializedGuid: - m_GuidLow: 5107411274837290523 - m_GuidHigh: 16336371371156619928 - m_SerializedTextureGuid: - m_GuidLow: 12690622759437445919 - m_GuidHigh: 6149444014037946985 - m_Size: {x: 0.1, y: 0.1} - m_SpecifySize: 1 - m_Name: QR_testARtracking - m_Texture: {fileID: 0} - - m_SerializedGuid: - m_GuidLow: 5355688179872852416 - m_GuidHigh: 5327492942649116594 - m_SerializedTextureGuid: - m_GuidLow: 4083294291408057616 - m_GuidHigh: 623175960350000761 - m_Size: {x: 0.1, y: 0.10011124} - m_SpecifySize: 1 - m_Name: default - m_Texture: {fileID: 0} - - m_SerializedGuid: - m_GuidLow: 5578027413733091453 - m_GuidHigh: 16203960149354137472 - m_SerializedTextureGuid: - m_GuidLow: 11537399107731278249 - m_GuidHigh: 1319041143359005225 - m_Size: {x: 0.1, y: 0.1} - m_SpecifySize: 1 - m_Name: QR_test2 - m_Texture: {fileID: 0} - - m_SerializedGuid: - m_GuidLow: 5029125541180419855 - m_GuidHigh: 9893423347044715410 - m_SerializedTextureGuid: - m_GuidLow: 8618102446949219809 - m_GuidHigh: 11179150519332190090 - m_Size: {x: 0.1, y: 0.1} - m_SpecifySize: 1 - m_Name: QR_test3 - m_Texture: {fileID: 0} - m_SerializedGuid: m_GuidLow: 4884491046015554393 m_GuidHigh: 9877233385657296003