Guides
These docs are for v3.0.0. Click to read the latest docs for v3.3.0.

SDK_BaseController

extends ScriptableObject

Overview

The Base Controller SDK script provides a bridge to SDK methods that deal with the input devices.

This is an abstract class to implement the interface required by all implemented SDKs.

Class Variables

  • public enum ButtonPressTypes - Concepts of controller button press
  • Press - The button is currently being pressed.
  • PressDown - The button has just been pressed down.
  • PressUp - The button has just been released.
  • Touch - The button is currently being touched.
  • TouchDown - The button has just been touched.
  • TouchUp - The button is no longer being touched.
  • public enum ControllerElements - The elements of a generic controller
  • AttachPoint - The default point on the controller to attach grabbed objects to.
  • Trigger - The trigger button.
  • GripLeft - The left part of the grip button collection.
  • GripRight - The right part of the grip button collection.
  • Touchpad - The touch pad/stick.
  • ButtonOne - The first generic button.
  • ButtonTwo - The second generic button.
  • SystemMenu - The system menu button.
  • Body - The encompassing mesh of the controller body.
  • public enum ControllerHand - Controller hand reference.
  • None - No hand is assigned.
  • Left - The left hand is assigned.
  • Right - The right hand is assigned.

Class Methods

ProcessUpdate/2

public abstract void ProcessUpdate(uint index, Dictionary<string, object> options);

  • Parameters
  • uint index - The index of the controller.
  • Dictionary<string, object> options - A dictionary of generic options that can be used to within the update.
  • Returns
  • none

The ProcessUpdate method enables an SDK to run logic for every Unity Update

GetControllerDefaultColliderPath/1

public abstract string GetControllerDefaultColliderPath(ControllerHand hand);

  • Parameters
  • ControllerHand hand - The controller hand to check for
  • Returns
  • string - A path to the resource that contains the collider GameObject.

The GetControllerDefaultColliderPath returns the path to the prefab that contains the collider objects for the default controller of this SDK.

GetControllerElementPath/3

public abstract string GetControllerElementPath(ControllerElements element, ControllerHand hand, bool fullPath = false);

  • Parameters
  • ControllerElements element - The controller element to look up.
  • ControllerHand hand - The controller hand to look up.
  • bool fullPath - Whether to get the initial path or the full path to the element.
  • Returns
  • string - A string containing the path to the game object that the controller element resides in.

The GetControllerElementPath returns the path to the game object that the given controller element for the given hand resides in.

GetControllerIndex/1

public abstract uint GetControllerIndex(GameObject controller);

  • Parameters
  • GameObject controller - The GameObject containing the controller.
  • Returns
  • uint - The index of the given controller.

The GetControllerIndex method returns the index of the given controller.

GetControllerByIndex/2

public abstract GameObject GetControllerByIndex(uint index, bool actual = false);

  • Parameters
  • uint index - The index of the controller to find.
  • bool actual - If true it will return the actual controller, if false it will return the script alias controller GameObject.
  • Returns
  • GameObject -

The GetControllerByIndex method returns the GameObject of a controller with a specific index.

GetControllerOrigin/1

public abstract Transform GetControllerOrigin(GameObject controller);

  • Parameters
  • GameObject controller - The controller to retrieve the origin from.
  • Returns
  • Transform - A Transform containing the origin of the controller.

The GetControllerOrigin method returns the origin of the given controller.

GenerateControllerPointerOrigin/0

public abstract Transform GenerateControllerPointerOrigin();

  • Parameters
  • none
  • Returns
  • Transform - A generated Transform that contains the custom pointer origin.

The GenerateControllerPointerOrigin method can create a custom pointer origin Transform to represent the pointer position and forward.

GetControllerLeftHand/1

public abstract GameObject GetControllerLeftHand(bool actual = false);

  • Parameters
  • bool actual - If true it will return the actual controller, if false it will return the script alias controller GameObject.
  • Returns
  • GameObject - The GameObject containing the left hand controller.

The GetControllerLeftHand method returns the GameObject containing the representation of the left hand controller.

GetControllerRightHand/1

public abstract GameObject GetControllerRightHand(bool actual = false);

  • Parameters
  • bool actual - If true it will return the actual controller, if false it will return the script alias controller GameObject.
  • Returns
  • GameObject - The GameObject containing the right hand controller.

The GetControllerRightHand method returns the GameObject containing the representation of the right hand controller.

IsControllerLeftHand/1

public abstract bool IsControllerLeftHand(GameObject controller);

  • Parameters
  • GameObject controller - The GameObject to check.
  • Returns
  • bool - Returns true if the given controller is the left hand controller.

The IsControllerLeftHand/1 method is used to check if the given controller is the the left hand controller.

IsControllerRightHand/1

public abstract bool IsControllerRightHand(GameObject controller);

  • Parameters
  • GameObject controller - The GameObject to check.
  • Returns
  • bool - Returns true if the given controller is the right hand controller.

The IsControllerRightHand/1 method is used to check if the given controller is the the right hand controller.

IsControllerLeftHand/2

public abstract bool IsControllerLeftHand(GameObject controller, bool actual);

  • Parameters
  • GameObject controller - The GameObject to check.
  • bool actual - If true it will check the actual controller, if false it will check the script alias controller.
  • Returns
  • bool - Returns true if the given controller is the left hand controller.

The IsControllerLeftHand/2 method is used to check if the given controller is the the left hand controller.

IsControllerRightHand/2

public abstract bool IsControllerRightHand(GameObject controller, bool actual);

  • Parameters
  • GameObject controller - The GameObject to check.
  • bool actual - If true it will check the actual controller, if false it will check the script alias controller.
  • Returns
  • bool - Returns true if the given controller is the right hand controller.

The IsControllerRightHand/2 method is used to check if the given controller is the the right hand controller.

GetControllerModel/1

public abstract GameObject GetControllerModel(GameObject controller);

  • Parameters
  • GameObject controller - The GameObject to get the model alias for.
  • Returns
  • GameObject - The GameObject that has the model alias within it.

The GetControllerModel method returns the model alias for the given GameObject.

GetControllerModel/1

public abstract GameObject GetControllerModel(ControllerHand hand);

  • Parameters
  • ControllerHand hand - The hand enum of which controller model to retrieve.
  • Returns
  • GameObject - The GameObject that has the model alias within it.

The GetControllerModel method returns the model alias for the given controller hand.

GetControllerRenderModel/1

public abstract GameObject GetControllerRenderModel(GameObject controller);

  • Parameters
  • GameObject controller - The GameObject to check.
  • Returns
  • GameObject - A GameObject containing the object that has a render model for the controller.

The GetControllerRenderModel method gets the game object that contains the given controller's render model.

SetControllerRenderModelWheel/2

public abstract void SetControllerRenderModelWheel(GameObject renderModel, bool state);

  • Parameters
  • GameObject renderModel - The GameObject containing the controller render model.
  • bool state - If true and the render model has a scroll wheen then it will be displayed, if false then the scroll wheel will be hidden.
  • Returns
  • none

The SetControllerRenderModelWheel method sets the state of the scroll wheel on the controller render model.

HapticPulseOnIndex/2

public abstract void HapticPulseOnIndex(uint index, float strength = 0.5f);

  • Parameters
  • uint index - The index of the tracked object to initiate the haptic pulse on.
  • float strength - The intensity of the rumble of the controller motor. 0 to 1.
  • Returns
  • none

The HapticPulseOnIndex method is used to initiate a simple haptic pulse on the tracked object of the given index.

GetHapticModifiers/0

public abstract SDK_ControllerHapticModifiers GetHapticModifiers();

  • Parameters
  • none
  • Returns
  • SDK_ControllerHapticModifiers - An SDK_ControllerHapticModifiers object with a given durationModifier and an intervalModifier.

The GetHapticModifiers method is used to return modifiers for the duration and interval if the SDK handles it slightly differently.

GetVelocityOnIndex/1

public abstract Vector3 GetVelocityOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • Vector3 - A Vector3 containing the current velocity of the tracked object.

The GetVelocityOnIndex method is used to determine the current velocity of the tracked object on the given index.

GetAngularVelocityOnIndex/1

public abstract Vector3 GetAngularVelocityOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • Vector3 - A Vector3 containing the current angular velocity of the tracked object.

The GetAngularVelocityOnIndex method is used to determine the current angular velocity of the tracked object on the given index.

GetTouchpadAxisOnIndex/1

public abstract Vector2 GetTouchpadAxisOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • Vector2 - A Vector2 containing the current x,y position of where the touchpad is being touched.

The GetTouchpadAxisOnIndex method is used to get the current touch position on the controller touchpad.

GetTriggerAxisOnIndex/1

public abstract Vector2 GetTriggerAxisOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • Vector2 - A Vector2 containing the current position of the trigger.

The GetTriggerAxisOnIndex method is used to get the current trigger position on the controller.

GetGripAxisOnIndex/1

public abstract Vector2 GetGripAxisOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • Vector2 - A Vector2 containing the current position of the grip.

The GetGripAxisOnIndex method is used to get the current grip position on the controller.

GetTriggerHairlineDeltaOnIndex/1

public abstract float GetTriggerHairlineDeltaOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • float - The delta between the trigger presses.

The GetTriggerHairlineDeltaOnIndex method is used to get the difference between the current trigger press and the previous frame trigger press.

GetGripHairlineDeltaOnIndex/1

public abstract float GetGripHairlineDeltaOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • float - The delta between the grip presses.

The GetGripHairlineDeltaOnIndex method is used to get the difference between the current grip press and the previous frame grip press.

IsTriggerPressedOnIndex/1

public abstract bool IsTriggerPressedOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button is continually being pressed.

The IsTriggerPressedOnIndex method is used to determine if the controller button is being pressed down continually.

IsTriggerPressedDownOnIndex/1

public abstract bool IsTriggerPressedDownOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button has just been pressed down.

The IsTriggerPressedDownOnIndex method is used to determine if the controller button has just been pressed down.

IsTriggerPressedUpOnIndex/1

public abstract bool IsTriggerPressedUpOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button has just been released.

The IsTriggerPressedUpOnIndex method is used to determine if the controller button has just been released.

IsTriggerTouchedOnIndex/1

public abstract bool IsTriggerTouchedOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button is continually being touched.

The IsTriggerTouchedOnIndex method is used to determine if the controller button is being touched down continually.

IsTriggerTouchedDownOnIndex/1

public abstract bool IsTriggerTouchedDownOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button has just been touched down.

The IsTriggerTouchedDownOnIndex method is used to determine if the controller button has just been touched down.

IsTriggerTouchedUpOnIndex/1

public abstract bool IsTriggerTouchedUpOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button has just been released.

The IsTriggerTouchedUpOnIndex method is used to determine if the controller button has just been released.

IsHairTriggerDownOnIndex/1

public abstract bool IsHairTriggerDownOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button has passed it's press threshold.

The IsHairTriggerDownOnIndex method is used to determine if the controller button has passed it's press threshold.

IsHairTriggerUpOnIndex/1

public abstract bool IsHairTriggerUpOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button has just been released from it's press threshold.

The IsHairTriggerUpOnIndex method is used to determine if the controller button has been released from it's press threshold.

IsGripPressedOnIndex/1

public abstract bool IsGripPressedOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button is continually being pressed.

The IsGripPressedOnIndex method is used to determine if the controller button is being pressed down continually.

IsGripPressedDownOnIndex/1

public abstract bool IsGripPressedDownOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button has just been pressed down.

The IsGripPressedDownOnIndex method is used to determine if the controller button has just been pressed down.

IsGripPressedUpOnIndex/1

public abstract bool IsGripPressedUpOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button has just been released.

The IsGripPressedUpOnIndex method is used to determine if the controller button has just been released.

IsGripTouchedOnIndex/1

public abstract bool IsGripTouchedOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button is continually being touched.

The IsGripTouchedOnIndex method is used to determine if the controller button is being touched down continually.

IsGripTouchedDownOnIndex/1

public abstract bool IsGripTouchedDownOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button has just been touched down.

The IsGripTouchedDownOnIndex method is used to determine if the controller button has just been touched down.

IsGripTouchedUpOnIndex/1

public abstract bool IsGripTouchedUpOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button has just been released.

The IsGripTouchedUpOnIndex method is used to determine if the controller button has just been released.

IsHairGripDownOnIndex/1

public abstract bool IsHairGripDownOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button has passed it's press threshold.

The IsHairGripDownOnIndex method is used to determine if the controller button has passed it's press threshold.

IsHairGripUpOnIndex/1

public abstract bool IsHairGripUpOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button has just been released from it's press threshold.

The IsHairGripUpOnIndex method is used to determine if the controller button has been released from it's press threshold.

IsTouchpadPressedOnIndex/1

public abstract bool IsTouchpadPressedOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button is continually being pressed.

The IsTouchpadPressedOnIndex method is used to determine if the controller button is being pressed down continually.

IsTouchpadPressedDownOnIndex/1

public abstract bool IsTouchpadPressedDownOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button has just been pressed down.

The IsTouchpadPressedDownOnIndex method is used to determine if the controller button has just been pressed down.

IsTouchpadPressedUpOnIndex/1

public abstract bool IsTouchpadPressedUpOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button has just been released.

The IsTouchpadPressedUpOnIndex method is used to determine if the controller button has just been released.

IsTouchpadTouchedOnIndex/1

public abstract bool IsTouchpadTouchedOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button is continually being touched.

The IsTouchpadTouchedOnIndex method is used to determine if the controller button is being touched down continually.

IsTouchpadTouchedDownOnIndex/1

public abstract bool IsTouchpadTouchedDownOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button has just been touched down.

The IsTouchpadTouchedDownOnIndex method is used to determine if the controller button has just been touched down.

IsTouchpadTouchedUpOnIndex/1

public abstract bool IsTouchpadTouchedUpOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button has just been released.

The IsTouchpadTouchedUpOnIndex method is used to determine if the controller button has just been released.

IsButtonOnePressedOnIndex/1

public abstract bool IsButtonOnePressedOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button is continually being pressed.

The IsButtonOnePressedOnIndex method is used to determine if the controller button is being pressed down continually.

IsButtonOnePressedDownOnIndex/1

public abstract bool IsButtonOnePressedDownOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button has just been pressed down.

The IsButtonOnePressedDownOnIndex method is used to determine if the controller button has just been pressed down.

IsButtonOnePressedUpOnIndex/1

public abstract bool IsButtonOnePressedUpOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button has just been released.

The IsButtonOnePressedUpOnIndex method is used to determine if the controller button has just been released.

IsButtonOneTouchedOnIndex/1

public abstract bool IsButtonOneTouchedOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button is continually being touched.

The IsButtonOneTouchedOnIndex method is used to determine if the controller button is being touched down continually.

IsButtonOneTouchedDownOnIndex/1

public abstract bool IsButtonOneTouchedDownOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button has just been touched down.

The IsButtonOneTouchedDownOnIndex method is used to determine if the controller button has just been touched down.

IsButtonOneTouchedUpOnIndex/1

public abstract bool IsButtonOneTouchedUpOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button has just been released.

The IsButtonOneTouchedUpOnIndex method is used to determine if the controller button has just been released.

IsButtonTwoPressedOnIndex/1

public abstract bool IsButtonTwoPressedOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button is continually being pressed.

The IsButtonTwoPressedOnIndex method is used to determine if the controller button is being pressed down continually.

IsButtonTwoPressedDownOnIndex/1

public abstract bool IsButtonTwoPressedDownOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button has just been pressed down.

The IsButtonTwoPressedDownOnIndex method is used to determine if the controller button has just been pressed down.

IsButtonTwoPressedUpOnIndex/1

public abstract bool IsButtonTwoPressedUpOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button has just been released.

The IsButtonTwoPressedUpOnIndex method is used to determine if the controller button has just been released.

IsButtonTwoTouchedOnIndex/1

public abstract bool IsButtonTwoTouchedOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button is continually being touched.

The IsButtonTwoTouchedOnIndex method is used to determine if the controller button is being touched down continually.

IsButtonTwoTouchedDownOnIndex/1

public abstract bool IsButtonTwoTouchedDownOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button has just been touched down.

The IsButtonTwoTouchedDownOnIndex method is used to determine if the controller button has just been touched down.

IsButtonTwoTouchedUpOnIndex/1

public abstract bool IsButtonTwoTouchedUpOnIndex(uint index);

  • Parameters
  • uint index - The index of the tracked object to check for.
  • Returns
  • bool - Returns true if the button has just been released.

The IsButtonTwoTouchedUpOnIndex method is used to determine if the controller button has just been released.