The Controller Stick is a UI Component that can be very useful for providing a Controller Stick on Mobile Platforms without losing compatibility with Desktop Platforms.

When creating your own custom stick, you must set the ControllerStickObject as a parent of your object.


ControllerStickObject provides the Up, Down, Left, Right local structs with their Add() method for mapping multiple Button Inputs to the various directions.

In the example above, pressing or releasing those various Keyboard and GamePad inputs will affect the Stick Properties of the Controller Stick.

ControllerStickObject also provides the SetGamePadAxes() method for controlling the Controller Stick from a specific GamePad.

Don't forget to set the GamePad Dead Zone if you plan to use the GamePad Axes.


ControllerStickObject provides the X, Y, Magnitude and Direction local variables.

  • X: Horizontal component value of the stick (value from -1 to 1).
  • Y: Vertical component value of the stick (value from -1 to 1).
  • Magnitude: length of the vector formed by the X and Y components (value from 0 to 1).
  • Direction: The direction of the stick (value from 0 to 359).

Assuming you have a reference to an object that inherits from ControllerStickObject you can easily access to those variables.


When you set a ControllerStickObject as Not Visible, Mouse Clicks and Touch Inputs are ignored while the inputs coming from Button Inputs you Add() and the GamePad Axes you set are still detected.

Get Giavapps Controller 2

Buy Now$9.99 USD or more