Skip to content

Selection

Simon edited this page Sep 10, 2020 · 8 revisions

Namespace: WIDVE.Utilities
Location: WIDVE Unity Scripts/Utilities/Selection

The Selection family of scripts provide ways to target and select various objects in the scene. There is also functionality for highlighting objects that can be selected.

Interfaces

ISelectable

This interface allows components to be selected. Components must implement the Select method, which is triggered when they are selected.

IHighlightable

This interface lets components react to a Selector hovering over them, but not selecting them. The StartHighlight method is called when a Selector begins hovering over an object, and the EndHighlight methos is called when the Selector moves away.

Components

OnSelect

The OnSelect component can be used to trigger a simple UnityEvent in response to a selection. This is the best method to set up a quick selectable object in the Inspector.

Selector

The Selector component is an abstract class that is used for selecting and highlighting objects in the scene. Any components used for selection should inherit from Selector.

Property Description
Layers Objects on these layers will be selected
HighlightLayers Objects on these layers will be highlighted
SeparateHighlightLayers If this is unchecked, HighlightLayers is unused. Instead, the Layers layer mask is used for both selection and highlighting
TriggerButton A ButtonFloat that is used to activate a selection
TriggerThreshold When the trigger button exceeds this value, a selection is triggered

LaserPointer

A component that inherits from Selector. The LaserPointer is used to select objects using a simple pointer interface. Any objects in range that are pointed to will be selected or highlighted using a RayCast. The ProcessSelection method of this component serves as a good example of how to implement a custom Selector.

Property Description
Range The maximum range of the pointer's RayCast
Visual The LaserPointerVisual component that this LaserPointer uses

LaserPointerVisual

The LaserPointerVisual component updates the LaserPointer's visual representation when pointing at objects. It could be used with other Selectors as well.

Property Description
Line The LineRenderer used for the laser
HitMaterial Material to use when the LaserPointer is pointing at an object
NoHitMaterial Material to use when the LaserPointer is pointing at nothing
ExtendToTarget If checked, the laser will extend in length to touch any objects that are pointed at
LineLength The line length to use when the laser pointer is not extending to an object
Clone this wiki locally