Script Reference
The following summarizes the function of the important scripts in the ARML Unity SDK.
π Characterβ
π CharacterBlinkβ
Component to place on a rigged character to make them blink at random intervals.
π GenericIKLook, HumanoidIKLookβ
Component that lets you choose a rigged character and a target. Keeps the head of the character pointed at the target.
π Audioβ
π STTMicControllerβ
Component to run at the scene level that controls when the audio input is listening or not. Depends on: VoskSpeechToText, DialogSystem
π Debugβ
π CameraParentControllerβ
Lets the user control the camera with the keyboard for debugging
π DebugCanvasControllerβ
Toggles visibility of debug panels when button is pressed on the remote
π ExportPositionDataβ
Records position data over time and exports it as JSON when a key is pressed. Also can load a saved JSON file and playback the position data over time.
π Dialogue Systemβ
Extended the type of Component references in the Nodes. Implemented the run time component to make calls to Character AudioSources, text UI etc.
The Dialogue System uses the following project as a starting point: https://github.com/Wafflus/unity-dialogue-system/tree/master
The original project offers a framework and UI for designing dialogues and storing text information.
The ARML SDK extends the type of component references that the Nodes can have by adding the option to trigger audio files and animations. It also supports the execution of an arbitrary number of different UnityEvents when specific Nodes are reached. A run-time component was also developed that is responsible for executing the calls to the different audio and animation components, as well as handling the current state of a characterβs dialogue and the interation with it (either via pointing at reply options or through voice interaction).
π IconManagerβ
Collection of scripts (downloaded) that add label gizmos automatically to Interactables.
π Interactionβ
π ActionFeedbackβ
Component that triggers sound effects or particles when the object is interacted with.
π CameraPointedObjectβ
Component which triggers interaction events when the camera is pointing directly at the object.
π CollisionCheckβ
Component which triggers interaction events when a collision behavior happens. Possible collision behaviors: onCollision, onEnter, onExit.
π Interactableβ
Abstract class. Base component for any item that user can interact with. Configures type of interaction and provides interaction utilities like timers.
π InteractionTypeControllerβ
Allows interaction type to be changed at runtime and for other objects to listen for that change.
π RigidBodyInteractionβ
Added to objects that should be manipulated with physics.
π Grabbingβ
Grabbable Abstract class. An interactable object which can be grabbed. Triggers event when object is grabbed and also manages state between grabbed and not-grabbed.
π AnchoredGrabbableβ
Implementation of Grabbable that once grabbed attaches itself to an anchor
π CameraGrabberβ
Component which triggers a grab action by listening to the interaction timer event
π Placement Targetβ
Component that allows Grabbables to be placed and picked up from a defined position.
π Scene Managementβ
π ApplicationLauncherβ
Main logic script for the App Launcher (see SceneReference).
π Levelβ
A grouping of game objectives represented as Tasks. It controls the sequence of events that happen during the game, and the current state and goals of the game stage. If it's on an object that also has a Timeline component, it's responsible for the playback of the timeline, in order to control time-sensitive events.
π LevelControllerβ
Controller class responsible for holding references to all the Levels and handling their execution.
π SceneControllerβ
Provides functions for loading and transitioning between different Scenes, and resetting the state of a scene.
π Taskβ
State-holding class that describes an activity to be added to a Level. Defines the activity name, tracks the progress and completion.
π Timelineβ
Collection of scripts that extend the Unity Timeline functionality. See [[Timeline Reference]].
π Trackingβ
Collection of scripts that interface with the device sensors for tracking orientation.
π User Interfaceβ
π TaskCrosshairControllerβ
Responsible for determining the contextual icon displayed in the Lantern Crosshair.
π TaskTaskProgressβ
UI responsible for displaying the current progress of the current Level's Tasks.
π Utilitiesβ
Collection of Utility scripts to perform common functions with Unity objects such as modifying their transform.