/// <summary> /// Issue a request to the Surface Observer to begin baking the mesh. /// </summary> /// <param name="meshId">ID of the mesh to bake.</param> private void RequestMesh(MeshId meshId) { using (RequestMeshPerfMarker.Auto()) { string meshName = ("SpatialMesh - " + meshId); SpatialAwarenessMeshObject newMesh; if (spareMeshObject == null) { newMesh = SpatialAwarenessMeshObject.Create( null, MeshPhysicsLayer, meshName, meshId.GetHashCode()); GameObject anchorHolder = new GameObject(meshName + "_anchor"); anchorHolder.AddComponent <PlayspaceAdapter>(); // Right now, we don't add an anchor to the mesh. This may be resolved with the AnchorSubsystem. anchorHolder.transform.SetParent(newMesh.GameObject.transform, false); } else { newMesh = spareMeshObject; spareMeshObject = null; newMesh.GameObject.name = meshName; newMesh.Id = meshId.GetHashCode(); newMesh.GameObject.SetActive(true); } XRSubsystemHelpers.MeshSubsystem.GenerateMeshAsync(meshId, newMesh.Filter.mesh, newMesh.Collider, MeshVertexAttributes.Normals, (MeshGenerationResult meshGenerationResult) => MeshGenerationAction(meshGenerationResult)); outstandingMeshObject = newMesh; } }
/// <summary> /// Issue a request to the Surface Observer to begin baking the mesh. /// </summary> /// <param name="meshId">ID of the mesh to bake.</param> private void RequestMesh(MeshId meshId) { using (RequestMeshPerfMarker.Auto()) { string meshName = ("SpatialMesh - " + meshId); SpatialAwarenessMeshObject newMesh; if (spareMeshObject == null) { newMesh = SpatialAwarenessMeshObject.Create( null, MeshPhysicsLayer, meshName, meshId.GetHashCode()); } else { newMesh = spareMeshObject; spareMeshObject = null; newMesh.GameObject.name = meshName; newMesh.Id = meshId.GetHashCode(); newMesh.GameObject.SetActive(true); } XRSubsystemHelpers.MeshSubsystem.GenerateMeshAsync(meshId, newMesh.Filter.mesh, newMesh.Collider, MeshVertexAttributes.Normals, (MeshGenerationResult meshGenerationResult) => MeshGenerationAction(meshGenerationResult)); outstandingMeshObject = newMesh; } }
public override int GetHashCode() { return (HashCodeHelper.Combine( HashCodeHelper.Combine( HashCodeHelper.Combine( HashCodeHelper.Combine(MeshId.GetHashCode(), Mesh.GetHashCode()), MeshCollider.GetHashCode()), Status.GetHashCode()), Attributes.GetHashCode())); }
public override int GetHashCode() { return (HashCodeHelper.Combine( HashCodeHelper.Combine(MeshId.GetHashCode(), ChangeState.GetHashCode()), PriorityHint)); }