Clear not used

This commit is contained in:
NekoVari 2025-04-02 05:02:08 +07:00
parent abc255c1de
commit dd487e5738
5 changed files with 0 additions and 416 deletions

View file

@ -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<NavigationTarget> navigationTargets = new List<NavigationTarget>();
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<ARTrackedImage> eventArgs) {
foreach (var newImage in eventArgs.added) {
navigationBase = GameObject.Instantiate(trackedImagePrefab);
navigationTargets.Clear();
navigationTargets = navigationBase.transform.GetComponentsInChildren<NavigationTarget>().ToList();
navMeshSurface = navigationBase.transform.GetComponentInChildren<NavMeshSurface>();
}
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);
}
}
}

View file

@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 3899037cd98be5152b76e6c510a0b7e7

View file

@ -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<NavigationTarget> navigationTargets = new List<NavigationTarget>();
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<ARTrackedImage> 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<NavigationTarget>().ToList();
navMeshSurface = navigationBase.transform.GetComponentInChildren<NavMeshSurface>();
}
// 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);
}
}
}

View file

@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 858d4f870663e952483e9571c969c273

View file

@ -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