TapToPlace Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Tap to place is a far interaction component used to place objects on a surface.
[UnityEngine.AddComponentMenu("MRTK/Spatial Manipulation/Solvers/Tap To Place")]
public class TapToPlace : MixedReality.Toolkit.SpatialManipulation.Solver
[<UnityEngine.AddComponentMenu("MRTK/Spatial Manipulation/Solvers/Tap To Place")>]
type TapToPlace = class
inherit Solver
Public Class TapToPlace
Inherits Solver
- Inheritance
- Attributes
-
UnityEngine.AddComponentMenuAttribute
Constructors
| Name | Description |
|---|---|
| TapToPlace() | |
Fields
| Name | Description |
|---|---|
| SolverHandler |
The handler reference for this solver that's attached to this GameObject (Inherited from Solver) |
Properties
| Name | Description |
|---|---|
| AutoStart |
If true, the game object to place will start out selected. The object will immediately start
following the TrackedTargetType (Head or Controller Ray) and then a tap is required to place the object. |
| CurrentHit |
Get or set the UnityEngine.RaycastHit of the CurrentRay. |
| CurrentRay |
Get or set the current RayStep being using by this object. |
| DebugEnabled |
If true and in the Unity Editor, the normal of the raycast hit will be drawn in yellow. |
| DefaultPlacementDistance |
The default distance (in meters) an object will be placed relative to the TrackedTargetType forward in the SolverHandler. The GameObjectToPlace will be placed at the default placement distance if a surface is not hit by the raycast. |
| DidHitSurface |
Get or set whether the CurrentRay hit a surface. |
| DoubleClickTimeout |
Get or set the max time, in seconds, between clicks used when recognizing double clicks. |
| GameObjectLayer |
The current game object layer before it is temporarily switched to IgnoreRaycast while placing the game object. |
| GoalPosition |
The final position to be attained (Inherited from Solver) |
| GoalRotation |
The final rotation to be attained (Inherited from Solver) |
| GoalScale |
The final scale to be attained (Inherited from Solver) |
| IsBeingPlaced |
If true, the game object to place is selected. |
| IsColliderPresent |
Get if the associated game object has a Unity |
| KeepOrientationVertical |
If true, the game object to place will remain upright and in line with Vector3.up |
| MagneticSurfaces |
Array of LayerMask to execute from highest to lowest priority. First layermask to provide a raycast hit will be used by component. |
| MaxRaycastDistance |
The max distance (in meters) to place an object if there is a raycast hit on a surface |
| MoveLerpTime |
If 0, the position will update immediately. Otherwise, the greater this attribute the slower the position updates (Inherited from Solver) |
| OnPlacingStarted |
This event is triggered once when the game object to place is selected. |
| OnPlacingStopped |
This event is triggered once when the game object to place is unselected, placed. |
| RotateAccordingToSurface |
If false, the game object to place will not change its rotation according to the surface hit. The object will remain facing the camera while IsBeingPlaced is true. If true, the object will rotate according to the surface normal if there is a hit. |
| RotateLerpTime |
If 0, the rotation will update immediately. Otherwise, the greater this attribute the slower the rotation updates")] (Inherited from Solver) |
| ScaleLerpTime |
If 0, the scale will update immediately. Otherwise, the greater this attribute the slower the scale updates (Inherited from Solver) |
| Smoothing |
If true, updates are smoothed to the target. Otherwise, they are snapped to the target (Inherited from Solver) |
| SurfaceNormalOffset |
The distance between the center of the game object to place and a surface along the surface normal, if the raycast hits a surface. |
| UpdateLinkedTransform |
If true, the position and orientation will be calculated, but not applied, for other components to use (Inherited from Solver) |
| UseDefaultSurfaceNormalOffset |
If true, the default surface normal offset will be used instead of any value specified for the SurfaceNormalOffset property. |
| WorkingPosition |
Automatically uses the shared position if the solver is set to use the 'linked transform'. UpdateLinkedTransform may be set to false, and a solver will automatically update the object directly, and not inherit work done by other solvers to the shared position (Inherited from Solver) |
| WorkingRotation |
Rotation version of WorkingPosition (Inherited from Solver) |
| WorkingScale |
Scale version of WorkingPosition (Inherited from Solver) |
Methods
| Name | Description |
|---|---|
| AddOffset(Vector3) |
Add an offset position to the target goal position. (Inherited from Solver) |
| Awake() |
A Unity event function that is called when an enabled script instance is being loaded. (Inherited from Solver) |
| GetInputActionFromReference(InputActionReference) |
Extracts the InputAction from the InputActionReference. |
| OnDisable() |
A Unity event function that is called when the script component has been disabled. |
| OnEnable() |
A Unity event function that is called when the script component has been enabled. (Inherited from Solver) |
| PerformRaycast() |
Update execute a ray cast to determine if the TapToPlace component has intersected with a MagneticSurfaces layer. |
| SetPosition() |
Update the goal position of the game object. |
| SetRotation() |
Update the goal rotation of the game object. |
| SnapGoalTo(Vector3, Quaternion, Vector3) |
SnapGoalTo only sets the goal orientation. Not really useful. (Inherited from Solver) |
| SnapTo(Vector3, Quaternion, Vector3) |
Snaps the solver to the desired pose. (Inherited from Solver) |
| SolverUpdate() |
Should be implemented in derived classes, but Solver can be used to flush shared transform to real transform |
| SolverUpdateEntry() |
Tracks lifetime of the solver, disabling it when expired, and finally runs the orientation update logic (Inherited from Solver) |
| Start() |
A Unity event function that is called on the frame when a script is enabled just before any of the update methods are called the first time. |
| StartPlacement() |
Start the placement of a game object without the need of the OnPointerClicked event. The game object will begin to follow the TrackedTargetType (Head by default) at a default distance. StopPlacementViaPerformedAction() must be called after StartPlacement() to stop the game object from following the TrackedTargetType. The game object layer is changed to IgnoreRaycast temporarily and then restored to its original layer in StopPlacementViaPerformedAction(). |
| StopPlacement() |
Stop the placement of a game object. |
| UpdateTransformToGoal() |
Updates all object orientations to the goal orientation for this solver, with smoothing accounted for (smoothing may be off) (Inherited from Solver) |
| UpdateWorkingPositionToGoal() |
Updates only the working position to goal with smoothing, if enabled (Inherited from Solver) |
| UpdateWorkingRotationToGoal() |
Updates only the working rotation to goal with smoothing, if enabled (Inherited from Solver) |
| UpdateWorkingScaleToGoal() |
Updates only the working scale to goal with smoothing, if enabled (Inherited from Solver) |
| UpdateWorkingToGoal() |
Updates the Working orientation (which may be the object, or the shared orientation) to the goal with smoothing, if enabled (Inherited from Solver) |