TopDown Engine  v3.6
MoreMountains.Tools.MMTouchRepositionableJoystick Class Reference

Add this component to a UI rectangle and it'll act as a detection zone for a joystick. Note that this component extends the MMTouchJoystick class so you don't need to add another joystick to it. It's both the detection zone and the stick itself. More...

Inheritance diagram for MoreMountains.Tools.MMTouchRepositionableJoystick:
MoreMountains.Tools.MMTouchJoystick MoreMountains.Tools.MMMonoBehaviour

Public Member Functions

override void Initialize ()
 On init we set our knob transform More...
 
override void OnPointerDown (PointerEventData data)
 When the zone is pressed, we move our joystick accordingly More...
 
override void OnPointerUp (PointerEventData eventData)
 When the player lets go of the stick, we restore our stick's position if needed More...
 
- Public Member Functions inherited from MoreMountains.Tools.MMTouchJoystick
virtual void RefreshMaxRangeDistance ()
 This method is used to compute the max range distance when in DistanceToTransform mode More...
 
virtual void SetKnobTransform (Transform newTransform)
 Assigns a new transform as the joystick knob More...
 
virtual void SetNeutralPosition ()
 Sets the neutral position of the joystick More...
 
virtual void SetNeutralPosition (Vector3 newPosition)
 
virtual void OnDrag (PointerEventData eventData)
 Handles dragging of the joystick More...
 
virtual void ResetJoystick ()
 Resets the stick's position and values More...
 
virtual void OnEndDrag (PointerEventData eventData)
 What happens when the stick stops being dragged More...
 

Public Attributes

CanvasGroup KnobCanvasGroup
 the canvas group to use as the joystick's knob More...
 
CanvasGroup BackgroundCanvasGroup
 the canvas group to use as the joystick's background More...
 
bool ConstrainToInitialRectangle = true
 if this is true, the joystick won't be able to travel beyond the bounds of the top level canvas More...
 
bool ResetPositionToInitialOnRelease = false
 if this is true, the joystick will return back to its initial position when released More...
 
- Public Attributes inherited from MoreMountains.Tools.MMTouchJoystick
Camera TargetCamera
 The camera to use as the reference for any ScreenToWorldPoint computations. More...
 
bool HorizontalAxisEnabled = true
 Is horizontal axis allowed. More...
 
bool VerticalAxisEnabled = true
 Is vertical axis allowed. More...
 
MaxRangeModes MaxRangeMode = MaxRangeModes.Distance
 the mode in which to compute the range. Distance will be a flat value, DistanceToTransform will be a distance to a transform you can move around and potentially resize as you wish for various resolutions More...
 
float MaxRange = 1.5f
 The MaxRange is the maximum distance from its initial center position you can drag the joystick to. More...
 
Transform MaxRangeTransform
 in DistanceToTransform mode, the object whose distance to the center will be used to compute the max range. Note that this is computed once, at init. Call RefreshMaxRangeDistance() to recompute it. More...
 
JoystickEvent JoystickValue
 An event to use the raw value of the joystick. More...
 
JoystickEvent JoystickNormalizedValue
 An event to use the normalized value of the joystick. More...
 
JoystickFloatEvent JoystickMagnitudeValue
 
UnityEvent OnPointerDownEvent
 An event triggered when tapping the joystick for the first time. More...
 
UnityEvent OnDragEvent
 An event triggered when dragging the stick. More...
 
UnityEvent OnPointerUpEvent
 An event triggered when releasing the stick. More...
 
Transform RotatingIndicator
 an object you can rotate to show the direction of the joystick. Will only be visible if the movement is above a threshold More...
 
float RotatingIndicatorThreshold = 0.1f
 the threshold above which the rotating indicator will appear More...
 
float PressedOpacity = 0.5f
 the new opacity to apply to the canvas group when the button is pressed More...
 
bool InterpolateOpacity = true
 whether or not to interpolate opacity changes on the knob's canvas group More...
 
float InterpolateOpacitySpeed = 1f
 the speed at which to interpolate opacity More...
 
Vector2 RawValue
 the raw value of the joystick, from 0 to 1 on each axis More...
 
Vector2 NormalizedValue
 the normalized value of the joystick More...
 
float Magnitude
 the magnitude of the stick's vector More...
 
bool DrawGizmos = true
 whether or not to draw gizmos associated to this stick More...
 

Protected Member Functions

override void Start ()
 On Start, we instantiate our joystick's image if there's one More...
 
virtual bool WithinBounds ()
 Returns true if the joystick's new position is within the bounds of the top level canvas More...
 
- Protected Member Functions inherited from MoreMountains.Tools.MMTouchJoystick
virtual void Update ()
 On Update we check for an orientation change if needed, and send our input values. More...
 
virtual void HandleOpacity ()
 Changes or interpolates the opacity of the knob More...
 
virtual void RotateIndicator ()
 Rotates an indicator to match the rotation of the stick More...
 
virtual void ClampToBounds ()
 Clamps the stick to the specified range More...
 
virtual Vector3 ConvertToWorld (Vector3 position)
 Converts a position to world position More...
 
virtual float EvaluateInputValue (float vectorPosition)
 We compute the axis value from the interval between neutral position, current stick position (vectorPosition) and max range More...
 
virtual void OnEnable ()
 On enable, we initialize our stick More...
 

Protected Attributes

Vector3 _initialPosition
 
Vector3 _newPosition
 
CanvasGroup _knobCanvasGroup
 
RectTransform _rectTransform
 
- Protected Attributes inherited from MoreMountains.Tools.MMTouchJoystick
Vector2 _neutralPosition
 
Vector2 _newTargetPosition
 
Vector3 _newJoystickPosition
 
float _initialZPosition
 
float _targetOpacity
 
CanvasGroup _canvasGroup
 
float _initialOpacity
 
Transform _knobTransform
 
bool _rotatingIndicatorIsNotNull = false
 
float _maxRangeTransformDistance
 

Additional Inherited Members

- Public Types inherited from MoreMountains.Tools.MMTouchJoystick
enum  MaxRangeModes { MaxRangeModes.Distance, MaxRangeModes.DistanceToTransform }
 
- Properties inherited from MoreMountains.Tools.MMTouchJoystick
float? ComputedMaxRange [get]
 
virtual RenderMode ParentCanvasRenderMode [get, protected set]
 the render mode of the parent canvas this stick is on More...
 

Detailed Description

Add this component to a UI rectangle and it'll act as a detection zone for a joystick. Note that this component extends the MMTouchJoystick class so you don't need to add another joystick to it. It's both the detection zone and the stick itself.

Member Function Documentation

◆ Initialize()

override void MoreMountains.Tools.MMTouchRepositionableJoystick.Initialize ( )
virtual

On init we set our knob transform

Reimplemented from MoreMountains.Tools.MMTouchJoystick.

◆ OnPointerDown()

override void MoreMountains.Tools.MMTouchRepositionableJoystick.OnPointerDown ( PointerEventData  data)
virtual

When the zone is pressed, we move our joystick accordingly

Parameters
dataData.

Reimplemented from MoreMountains.Tools.MMTouchJoystick.

◆ OnPointerUp()

override void MoreMountains.Tools.MMTouchRepositionableJoystick.OnPointerUp ( PointerEventData  eventData)
virtual

When the player lets go of the stick, we restore our stick's position if needed

Parameters
eventDataEvent data.

Reimplemented from MoreMountains.Tools.MMTouchJoystick.

◆ Start()

override void MoreMountains.Tools.MMTouchRepositionableJoystick.Start ( )
protectedvirtual

On Start, we instantiate our joystick's image if there's one

Reimplemented from MoreMountains.Tools.MMTouchJoystick.

◆ WithinBounds()

virtual bool MoreMountains.Tools.MMTouchRepositionableJoystick.WithinBounds ( )
protectedvirtual

Returns true if the joystick's new position is within the bounds of the top level canvas

Returns

Member Data Documentation

◆ _initialPosition

Vector3 MoreMountains.Tools.MMTouchRepositionableJoystick._initialPosition
protected

◆ _knobCanvasGroup

CanvasGroup MoreMountains.Tools.MMTouchRepositionableJoystick._knobCanvasGroup
protected

◆ _newPosition

Vector3 MoreMountains.Tools.MMTouchRepositionableJoystick._newPosition
protected

◆ _rectTransform

RectTransform MoreMountains.Tools.MMTouchRepositionableJoystick._rectTransform
protected

◆ BackgroundCanvasGroup

CanvasGroup MoreMountains.Tools.MMTouchRepositionableJoystick.BackgroundCanvasGroup

the canvas group to use as the joystick's background

◆ ConstrainToInitialRectangle

bool MoreMountains.Tools.MMTouchRepositionableJoystick.ConstrainToInitialRectangle = true

if this is true, the joystick won't be able to travel beyond the bounds of the top level canvas

◆ KnobCanvasGroup

CanvasGroup MoreMountains.Tools.MMTouchRepositionableJoystick.KnobCanvasGroup

the canvas group to use as the joystick's knob

◆ ResetPositionToInitialOnRelease

bool MoreMountains.Tools.MMTouchRepositionableJoystick.ResetPositionToInitialOnRelease = false

if this is true, the joystick will return back to its initial position when released


The documentation for this class was generated from the following file: