Click or drag to resize

ASL Namespace

All the ASL features and how they can be used throughout your project.
Classes
  ClassDescription
Public classARWorldOriginHelper
A helper script to set the apparent world origin of ARCore through applying an offset to the ARCoreDevice (and therefore also it's FirstPersonCamera child); this also provides mechanisms to handle resulting changes to ARCore plane positioning and raycasting. This class SHOULD be used when doing any ray casting - especially if cloud anchors and world origin is being used in your app.
Public classASL_AutonomousObject
ASL_AutonomousObject: ASL_AutonomousObject contains methods for transforming autonomous objects, objects not directly controlled by a user. Each object is given an owner, and will only listen to instructions from its owner. While the object is waiting for a tranformation to be completed, any calls to change the transformation will be ignored. If the owner of an object leaves a session, their objects will no longer respond to calls (this is temperary). This makes use of the float function provided by ASL to set the owner of the object, if the float function is overriden it will not work as intended.
Public classASL_AutonomousObjectHandler
ASL_AutonomousObjectHandler: ASL_AutonomousObjectHanlder contains methods for instatiating ASL_AutonomousObjects. It also handles changes to world position, rotation and scale for ASL_AutonomousObjects.
Public classASL_ObjectCollider
ASL_ObjectCollider: ASL_ObjectCollider detects and handles collisions, via Triggers, between two ASL_Objects with ASL_ObjectColliders. Do NOT set OnTriggerEnter, OnTriggerExit, or OnTriggerStay on the object. Instead set these function by passing in callback functions via this. ASL_ObjectCollider only supports Kinematic colliders, it does NOT support RigidBody colliders. If used with RigidBody colliders it will result in desinking of objct possition due to Unity's built in physics. Currently this only handles Triggers, but not Collisions. The objects must have a collider with IsTrigger set to true, and at least one object involved in the collision must have a RigidBody that with IsKinematic set to true.
Public classASL_UserObject
ASL_UserObject: ASL_UserObject handles movement, rotation and scale for user controlled objects. If a call is made to transform this object before the current transform is complete, the new call will be ignored. Currently this is set up to work with Platformer_Player's floatFunction. This makes use of the float function provided by ASL to set the owner of the object, if the float function is overriden it will not work as intended.
Public classASLHelper
Provides functions pertaining to ASL to be called by the user but not linked to any specific object. Not that AR uses AR Foundation which is through Unity but that AR Foundation uses Google's ARCore SDK.

https://codelabs.developers.google.com/codelabs/arcore-cloud-anchors/index.html#4

https://developers.google.com/ar/develop/developer-guides/anchors

https://developers.google.com/ar/develop/unity/cloud-anchors/quickstart-unity-android

https://developers.google.com/ar/develop/unity/cloud-anchors/overview-unity

Public classASLObject
ASLObject_LocalFunctions: ASLObject Partial Class containing all of the functions and variables relating to local actions - actions that affect a single player instead of all players
Public classASLSliderWithEcho
An Slider with Echo for ASL. You should not need to modify this script. However, when using an ASLSliderWithEcho, you will want to modify ASLSliderController as this class maintains all of the sliders and tells each one what to do when their value changes. This class simply initializes these sliders, maintains their state, and passes the slider values to other users. and allow
Public classDeactivateARCameraOnPC
Deactivates the AR Camera if the application is running on PC (not running on Android).
Public classGameLiftManager
The class that makes all multiplayer possible
Private classGameLiftManagerGameController
An internal class used to handle data packets incoming from the GameLift Realtime Server. It should be noted that the order in which a packet is created matters. The order should be as follows so that it can be decoded here properly. Amount of data pieces (e.g., 2), the lengths in bytes of these data pieces (e.g., 4,4), and the data themselves converted to byte format (e.g., 4,4). If you follow how ASLObject functions already create these data packets then you will be following the correct formatting. The important thing to remember is that however you encode a packet, you must remember to decode in the same manner.
Private classGameLiftManagerGameControllerAwaitingInstantiation
When a prefab containing ASLObjects is instantiated, each ASLObject needs to be assigned an ID. This class holds a newly instantiated (inactive) prefab and enables iteration over all its child ASLObjects.
Private classGameLiftManagerGameSessionObject
An internal class containing information about the GameSession this user has found or joined
Private classGameLiftManagerGameSessionObjectCollection
An internal class that contains all of the GameSessionObjects found by this user
Private classGameLiftManagerLobbyManager
Internal class that is used to connect users to each other
Private classGameLiftManagerPlayerSessionObject
An internal class that is used to create and contain information about the Player Session that this user creates when joining a Game Session
Private classGameLiftManagerSceneLoader
Internal class used to help transition between scenes for all users
Public classInstantiateARIfConnected
Simply spawns the ARHolder object once the scene is connected - this prevents errors from occurring when using QuickConnect.
Public classInstantiateMRTKIfConnected
Simply spawns the MixedRealityToolkit and MixedRealityPlayspace objects after a connection is made. It also sets the MixedRealityToolkit profile to be DefaultXRSDKConfigurationProfile
Public classQuickConnect
Class used to quickly connect to a match for testing proposes
Public classTextureScaler
Retrieved From: https://pastebin.com/qkkhWs2J A unility class with functions to scale Texture2D Data. Scale is performed on the GPU using RTT, so it's blazing fast. Setting up and Getting back the texture data is the bottleneck. But Scaling itself costs only 1 draw call and 1 RTT State setup! WARNING: This script override the RTT Setup! (It sets a RTT!) Note: This scaler does NOT support aspect ratio based scaling. You will have to do it yourself! It supports Alpha, but you will have to divide by alpha in your shaders, because of premultiplied alpha effect. Or you should use blend modes.
Public classVideoStream
Allows video streaming between a single Android device and a single Desktop. FPS and resolution can be adjusted. By default, streaming must be enabled by the Android device to protect the user's privacy. ALLOW_REMOTE_CAMERA_ACTIVATION will allow camera settings to be adjusted from the desktop. Only enable this flag for debug purposes, or if both users have been informed and consented. The object contains VideoStream should also have an ASLObject!
Structures
  StructureDescription
Public structureASLHelperCloudAnchor
A struct that contains information about the CloudAnchor to allow it to be stored in Cloud Anchors dictionary (m_CloudAnchors)
Delegates
  DelegateDescription
Public delegateASL_AutonomousObjectHandlerReturnInstantatedObjectCallback
Public delegateASL_ObjectColliderOnCollisionCallback
Delegate for the ASL_OnCollision functions to call
Public delegateASL_ObjectColliderOnTriggerCallback
Delegate for the ASL_OnTrigger functions to call
Public delegateASLObjectASLGameObjectCreatedCallback
Delegate for the GameObject creation function which is executed when this object is instantiated
Public delegateASLObjectClaimCallback
Delegate for the Claim callback function
Public delegateASLObjectClaimCancelledRecoveryCallback
Delegate for the claim canceled (rejected) callback function
Public delegateASLObjectFloatCallback
Delegate for the Float callback function
Public delegateASLObjectPostCreateCloudAnchorFunction
Delegate for the post create cloud anchor function to execute after creating a cloud anchor
Public delegateASLObjectPostDownloadFunction
Delegate for the Post Download function - used to send this function across the server to be called once a Texture2D download is successful
Public delegateASLObjectReleaseFunction
Delegate for the release callback function
Private delegateASLSliderWithEchoSliderCallbackDelegate
The delegate to be called when the slider is changed
Public delegateGameLiftManagerOpFunctionCallback
Public delegateGameLiftManagerOpFunctionCallbackNoParam
Enumerations