Class SelectionPicker | ProBuilder | 4.3.1
docs.unity3d.com
    Show / Hide Table of Contents

    Class SelectionPicker

    Functions for picking mesh elements in a view. Can either render a texture to test, or cast a ray. Prefer this over calling SelectionPickerRenderer directly.

    Inheritance
    Object
    SelectionPicker
    Namespace: UnityEngine.ProBuilder
    Syntax
    public static class SelectionPicker

    Methods

    PickEdgesInRect(Camera, Rect, IList<ProBuilderMesh>, PickerOptions, Single)

    Pick the edges contained within a rect.

    Declaration
    public static Dictionary<ProBuilderMesh, HashSet<Edge>> PickEdgesInRect(Camera cam, Rect rect, IList<ProBuilderMesh> selectable, PickerOptions options, float pixelsPerPoint = 1F)
    Parameters
    Type Name Description
    Camera cam
    Rect rect

    Rect is in GUI space, where 0,0 is top left of screen, width = cam.pixelWidth / pointsPerPixel.

    IList<ProBuilderMesh> selectable

    The ProBuilder mesh objects to consider when hit testing.

    PickerOptions options

    Culling options.

    Single pixelsPerPoint

    Scale the render texture to match rect coordinates. Generally you'll just pass in EditorGUIUtility.pointsPerPixel.

    Returns
    Type Description
    Dictionary<ProBuilderMesh, HashSet<Edge>>

    A dictionary of ProBuilderMesh and edges that are in the selection rect.

    PickFace(Camera, Vector3, ProBuilderMesh)

    Returns the first hit face on a ProBuilder mesh given a screen position and camera.

    Declaration
    public static Face PickFace(Camera camera, Vector3 mousePosition, ProBuilderMesh pickable)
    Parameters
    Type Name Description
    Camera camera

    The camera to use when calculating the raycast.

    Vector3 mousePosition

    The screen position to use when calculating the raycast.

    ProBuilderMesh pickable

    The ProBuilderMesh to test for ray/face intersection.

    Returns
    Type Description
    Face

    A Face if successful, null if the hit test failed.

    PickFacesInRect(Camera, Rect, IList<ProBuilderMesh>, PickerOptions, Single)

    Pick faces contained within rect.

    Declaration
    public static Dictionary<ProBuilderMesh, HashSet<Face>> PickFacesInRect(Camera cam, Rect rect, IList<ProBuilderMesh> selectable, PickerOptions options, float pixelsPerPoint = 1F)
    Parameters
    Type Name Description
    Camera cam
    Rect rect

    Rect is in GUI space, where 0,0 is top left of screen, width = cam.pixelWidth / pointsPerPixel.

    IList<ProBuilderMesh> selectable
    PickerOptions options
    Single pixelsPerPoint

    Scale the render texture to match rect coordinates. Generally you'll just pass in EditorGUIUtility.pixelsPerPoint.

    Returns
    Type Description
    Dictionary<ProBuilderMesh, HashSet<Face>>

    PickVerticesInRect(Camera, Rect, IList<ProBuilderMesh>, PickerOptions, Single)

    Pick the vertex indexes contained within a rect.

    Declaration
    public static Dictionary<ProBuilderMesh, HashSet<int>> PickVerticesInRect(Camera cam, Rect rect, IList<ProBuilderMesh> selectable, PickerOptions options, float pixelsPerPoint = 1F)
    Parameters
    Type Name Description
    Camera cam
    Rect rect

    Rect is in GUI space, where 0,0 is top left of screen, width = cam.pixelWidth / pointsPerPixel.

    IList<ProBuilderMesh> selectable

    The objects to hit test.

    PickerOptions options

    Culling options.

    Single pixelsPerPoint

    Scale the render texture to match rect coordinates. Generally you'll just pass in EditorGUIUtility.pointsPerPixel.

    Returns
    Type Description
    Dictionary<ProBuilderMesh, HashSet<Int32>>

    A dictionary of ProBuilderMesh and sharedIndexes that are in the selection rect. To get triangle indexes access the pb.sharedIndexes[index] array.

    Back to top
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023