docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class XRPlaneSubsystem

    This subsystem provides information regarding the detection of planes (that is, flat surfaces) in the real-world environment.

    Inheritance
    object
    SubsystemWithProvider
    SubsystemWithProvider<XRPlaneSubsystem, XRPlaneSubsystemDescriptor, XRPlaneSubsystem.Provider>
    TrackingSubsystem<BoundedPlane, XRPlaneSubsystem, XRPlaneSubsystemDescriptor, XRPlaneSubsystem.Provider>
    XRPlaneSubsystem
    SimulationPlaneSubsystem
    Implements
    ISubsystem
    Inherited Members
    TrackingSubsystem<BoundedPlane, XRPlaneSubsystem, XRPlaneSubsystemDescriptor, XRPlaneSubsystem.Provider>.GetChanges(Allocator)
    SubsystemWithProvider<XRPlaneSubsystem, XRPlaneSubsystemDescriptor, XRPlaneSubsystem.Provider>.OnCreate()
    SubsystemWithProvider<XRPlaneSubsystem, XRPlaneSubsystemDescriptor, XRPlaneSubsystem.Provider>.OnStart()
    SubsystemWithProvider<XRPlaneSubsystem, XRPlaneSubsystemDescriptor, XRPlaneSubsystem.Provider>.OnStop()
    SubsystemWithProvider<XRPlaneSubsystem, XRPlaneSubsystemDescriptor, XRPlaneSubsystem.Provider>.OnDestroy()
    SubsystemWithProvider<XRPlaneSubsystem, XRPlaneSubsystemDescriptor, XRPlaneSubsystem.Provider>.subsystemDescriptor
    SubsystemWithProvider<XRPlaneSubsystem, XRPlaneSubsystemDescriptor, XRPlaneSubsystem.Provider>.provider
    SubsystemWithProvider.Start()
    SubsystemWithProvider.OnStart()
    SubsystemWithProvider.Stop()
    SubsystemWithProvider.OnStop()
    SubsystemWithProvider.Destroy()
    SubsystemWithProvider.OnDestroy()
    SubsystemWithProvider.running
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: UnityEngine.XR.ARSubsystems
    Assembly: Unity.XR.ARSubsystems.dll
    Syntax
    public class XRPlaneSubsystem : TrackingSubsystem<BoundedPlane, XRPlaneSubsystem, XRPlaneSubsystemDescriptor, XRPlaneSubsystem.Provider>, ISubsystem
    Remarks

    This is a base class with an abstract provider type to be implemented by provider plug-in packages. This class itself does not implement plane detection.

    Constructors

    XRPlaneSubsystem()

    Do not invoke this constructor directly.

    Declaration
    public XRPlaneSubsystem()
    Remarks

    If you are implementing your own custom subsystem Lifecycle management, use the SubsystemManager to enumerate the available XRPlaneSubsystemDescriptors, then call XRPlaneSubsystemDescriptor.Register() on the desired descriptor.

    Properties

    currentPlaneDetectionMode

    Get the current PlaneDetectionMode in use by the provider.

    Declaration
    public PlaneDetectionMode currentPlaneDetectionMode { get; }
    Property Value
    Type Description
    PlaneDetectionMode

    requestedPlaneDetectionMode

    Get or set the requested PlaneDetectionMode to enable different modes of detection.

    Declaration
    public PlaneDetectionMode requestedPlaneDetectionMode { get; set; }
    Property Value
    Type Description
    PlaneDetectionMode
    Exceptions
    Type Condition
    NotSupportedException

    Thrown if requestedPlaneDetectionMode is set to something other than None when plane detection is not supported.

    Methods

    CreateOrResizeNativeArrayIfNecessary<T>(int, Allocator, ref NativeArray<T>)

    Creates or resizes the array if necessary. If array has been allocated and its length is equal to length, then this method does nothing. If its length is different, then it is first disposed before being assigned to a new NativeArray.

    Declaration
    protected static void CreateOrResizeNativeArrayIfNecessary<T>(int length, Allocator allocator, ref NativeArray<T> array) where T : struct
    Parameters
    Type Name Description
    int length

    The length that array will have after this method returns.

    Allocator allocator

    If allocation is necessary, this allocator will be used to create the new NativeArray.

    NativeArray<T> array

    The array to create or resize.

    Type Parameters
    Name Description
    T

    The type of elements held by the array.

    GetBoundary(TrackableId, Allocator, ref NativeArray<Vector2>)

    Gets the boundary vertices of a given BoundedPlane based on its trackableId.

    Declaration
    public void GetBoundary(TrackableId trackableId, Allocator allocator, ref NativeArray<Vector2> boundary)
    Parameters
    Type Name Description
    TrackableId trackableId

    The TrackableId of a BoundedPlane.

    Allocator allocator

    An Allocator to use if boundary needs to be created. Temp is not supported. Use TempJob if you need temporary memory.

    NativeArray<Vector2> boundary

    The boundary vertices will be stored here. If the given array is the same length as the number of vertices, it is overwritten with the new data. Otherwise, it is disposed and recreated with the correct length.

    GetChanges(Allocator)

    Gets a TrackableChanges<T> struct containing any changes to detected planes since the last time you called this method. You are responsible to Dispose() the returned TrackableChanges instance.

    Declaration
    public override TrackableChanges<BoundedPlane> GetChanges(Allocator allocator)
    Parameters
    Type Name Description
    Allocator allocator

    An Allocator to use for the returned NativeArrays.

    Returns
    Type Description
    TrackableChanges<BoundedPlane>

    The TrackableChanges<T>.

    Overrides
    TrackingSubsystem<BoundedPlane, XRPlaneSubsystem, XRPlaneSubsystemDescriptor, XRPlaneSubsystem.Provider>.GetChanges(Allocator)
    Remarks

    The TrackableChanges<T> struct returned by this method contains separate NativeArray_1 objects for the added, updated, and removed planes. These arrays are created using the Allocator type specified by allocator.

    Implements

    ISubsystem
    In This Article
    Back to top
    Copyright © 2024 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)