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
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. |
| System.Collections.Generic.IList<ProBuilderMesh> | selectable | The ProBuilder mesh objects to consider when hit testing. |
| PickerOptions | options | Culling options. |
| System.Single | pixelsPerPoint | Scale the render texture to match rect coordinates. Generally you'll just pass in EditorGUIUtility.pointsPerPixel. |
Returns
| Type | Description |
|---|---|
| System.Collections.Generic.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. |
| System.Collections.Generic.IList<ProBuilderMesh> | selectable | |
| PickerOptions | options | |
| System.Single | pixelsPerPoint | Scale the render texture to match rect coordinates. Generally you'll just pass in EditorGUIUtility.pixelsPerPoint. |
Returns
| Type | Description |
|---|---|
| System.Collections.Generic.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. |
| System.Collections.Generic.IList<ProBuilderMesh> | selectable | The objects to hit test. |
| PickerOptions | options | Culling options. |
| System.Single | pixelsPerPoint | Scale the render texture to match rect coordinates. Generally you'll just pass in EditorGUIUtility.pointsPerPixel. |
Returns
| Type | Description |
|---|---|
| System.Collections.Generic.Dictionary<ProBuilderMesh, HashSet<System.Int32>> | A dictionary of ProBuilderMesh and sharedIndexes that are in the selection rect. To get triangle indexes access the pb.sharedIndexes[index] array. |