Documentation

Unity Engine

Unity Engine

operator !=(NavWorld, NavWorld)

Checks whether two NavWorld values refer to different underlying NavMesh worlds.
Read time 2 minutesLast updated a month ago

Definition

public static bool operator !=(NavWorld left, NavWorld right)

Parameters

The NavWorld on the left side of the operator.

The NavWorld on the right side of the operator.

Returns

Type

Description

bool
true
if the two NavWorld values reference different navigation systems,
false
otherwise.

Remarks

This operator is a syntactic shortcut equivalent to negating the result of NavWorld.Equals. Use it inside expressions where the
!=
syntax is more concise than an explicit method call. Two NavWorld values are different when they point to separate internal navigation systems.

Examples

using UnityEngine;using UnityEngine.AI;using Unity.AI.Navigation.LowLevel;public class NavWorldEqualityExample : MonoBehaviour{ NavWorld m_World; int m_CachedWorldHash; void OnEnable() { m_World = NavWorld.GetDefaultWorld(); m_CachedWorldHash = m_World.GetHashCode(); Debug.Log($"Cached the NavMesh world hash {m_CachedWorldHash}"); CompareNavigationWorldToPrevious(); // Destroying all the data makes every existing handle to the old world invalid. NavMesh.RemoveAllNavMeshData(); Debug.Log($"Removed all NavMesh data."); //m_CachedWorldHash = m_World.GetHashCode(); //Debug.Log($"Cached the NavMesh world, hash {m_CachedWorldHash}"); CompareNavigationWorldToPrevious(); } public void CompareNavigationWorldToPrevious() { NavWorld currentWorld = NavWorld.GetDefaultWorld(); // Equals, == and != compare the underlying navigation system rather than the struct // copy, so two handles obtained from the same world always compare equal. if (currentWorld == m_World) { Debug.Log($"The navigation world is the same as before."); // The handles are interchangeable, so keep one and release the duplicate. currentWorld.Dispose(); return; } Debug.Log($"The world was re-created: hash {m_CachedWorldHash} became {currentWorld.GetHashCode()}"); // Release the stale handle before replacing it, otherwise its safety handle leaks. m_World.Dispose(); m_World = currentWorld; m_CachedWorldHash = m_World.GetHashCode(); } void OnDisable() { m_World.Dispose(); }}