Finch Logo

Documentation

API documentation

FinchVR is the main Finch Unity API class that provides all controller's functional. It is necessary to have one and only one FinchVR script instance on the scene. Use prefab FinchMain to do that.

FinchSingleControllerPlayer and FinchDualControllerPlayer scripts allow to move controllers and head according to Finch controllers position. Use prefabs FinchSingleDashController, FinchDualDashController, FinchDualShiftController for that. Don't use more than one same script on scene at the same time.

AvatarIK script is default way to use standard Unity inverse kinematics. Use prefab FinchAvatar for that. Don't use more than one same script on scene at the same time.

Remember: Finch API use settings form FinchSettings. Default settings can be unsuitable for you, so edit settings right after creating your Finch Unity project.

Main Unity Scripts

Script Description
FinchVR Initializes Finch controllers in corresponding to the settings mode of operation. Provides Finch Unity API
FinchPlayer Abstract script. Children classes translate head and controllers GameObjects on scene
FinchSingleControllerPlayer Inherited from FinchPlayer. Translates head and single controller GameObjects on scene
FinchDualControllerPlayer Inherited from FinchPlayer. Translates head and two controllers GameObjects on scene
AvatarIK Controls the player's avatar using standard Unity tools
CalibrationManager Handles calibration process. Starts calibration module if it is neccesary

Controller Elements Unity Scripts

Provides Finch controller API.

Script Description
FinchButtons Visualise button actions
FinchTouchPoint Visualises controller's touch point element
FinchBatteryStatus Visualizes the battery charge
FinchStick Visualises controller's stick element

Calibration Module Unity Scripts

Script Description
Calibration Manages calibration module and tutorial steps
TutorialStep Base class for calibration steps. Handles tutorial messages and calibration behavior
InternalCalibrationStep Inherited from TutorialStep. Handles internal Finch controllers calibration

Controller Classes

Provides Finch controller API.

Class Description
FinchNode Instance of the Finch nodes
FinchController Inherited from FinchNode. Allows to use Finch controller API
FinchUpperArm Inherited from FinchNode
PlayerState Keeps Finch data from last update
FinchSettings Finch modes settings

Core Classes

C API import implementation.

Class Description
FinchCore Provides API for FinchCore.dll using
Interop Only for direct dll using. It is Strictly not recomended to use this class
FinchCoreHelper Consists unity_to_finch and finch_to_unity transforms methods. Is not used in API

Bean Classes

Classes only for data storage.

Class Description
Buttons Visualises controller's buttons elements

Structs

Struct Description
FinchNodesState Finch nodes state
VibrationPackage Single instruction for vibration engine
FinchVector2 Vector2 for direct dll using. Is not used in API
FinchVector3 Vector3 for direct dll using. Is not used in API
FinchQuaternion Quaternion for direct dll using. Is not used in API

Enumerations

Enumeration Description
FinchUpdateType Describes hmd tracking type for an used VR platform
FinchControllerType Describes type of controller
FinchChirality Describes chirality of controller (e.g. left or right)
FinchBone Describes the bone of the skeleton for animation
FinchNodeType Describes the device node type. Consists following values: RightHand, LeftHand, RightUpperArm, LeftUpperArm
FinchControllerElement Describes elements of a controller (button, touchpad or trigger)
FinchRecenterMode Describes recenter mode. When HmdRotation, controllers recenter to current Main Camera rotation; when Forward, both controllers and Main Camera recenter to default position
FinchBodyRotationMode Describes body rotation mode
FinchEventType Describes flag of event state. Consists following values: Begin, Process, End
FinchNodesStateType Describes flag of node state. Is used in FinchNodesState.GetState()
FinchInitError Describes init error code
FinchUpdateError Describes update error code
FinchIOError Describes IO error code