diff --git a/.gitignore b/.gitignore index eb382bd..ee3215f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ [Ll]ibrary/ [Tt]emp/ [Oo]bj/ +[Oo]bj.meta [Bb]uild/ [Bb]uilds/ [Ll]ogs/ @@ -32,4 +33,4 @@ ExportedObj/ # System files .DS_Store -*.swp \ No newline at end of file +*.swp diff --git a/Documentation/API.meta b/Documentation/API.meta new file mode 100644 index 0000000..35a2eb3 --- /dev/null +++ b/Documentation/API.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c00fb48a3554bf04580a91e79a0d6ee9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables.meta b/Documentation/API/Interactables.meta new file mode 100644 index 0000000..c1a949d --- /dev/null +++ b/Documentation/API/Interactables.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5d32bd1983783904da1913fc7dfde7b6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Event.meta b/Documentation/API/Interactables/Event.meta new file mode 100644 index 0000000..5edec01 --- /dev/null +++ b/Documentation/API/Interactables/Event.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bc449b163fc325042bd621d7e3a7d88b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Event/Proxy.meta b/Documentation/API/Interactables/Event/Proxy.meta new file mode 100644 index 0000000..d895bcc --- /dev/null +++ b/Documentation/API/Interactables/Event/Proxy.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0135616ec4954414287c8d56f4dd510e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Event/Proxy/InteractableFacadeEventProxyEmitter.UnityEvent.md b/Documentation/API/Interactables/Event/Proxy/InteractableFacadeEventProxyEmitter.UnityEvent.md new file mode 100644 index 0000000..cbb7817 --- /dev/null +++ b/Documentation/API/Interactables/Event/Proxy/InteractableFacadeEventProxyEmitter.UnityEvent.md @@ -0,0 +1,19 @@ +# Class InteractableFacadeEventProxyEmitter.UnityEvent + +Defines the event with the specified state. + +##### Inheritance + +* System.Object +* InteractableFacadeEventProxyEmitter.UnityEvent + +###### **Namespace**: [Tilia.Interactions.Interactables.Interactables.Event.Proxy] + +##### Syntax + +``` +[Serializable] +public class UnityEvent : InteractableFacadeEventProxyEmitter.UnityEvent +``` + +[Tilia.Interactions.Interactables.Interactables.Event.Proxy]: README.md diff --git a/Documentation/API/Interactables/Event/Proxy/InteractableFacadeEventProxyEmitter.UnityEvent.md.meta b/Documentation/API/Interactables/Event/Proxy/InteractableFacadeEventProxyEmitter.UnityEvent.md.meta new file mode 100644 index 0000000..0b74f46 --- /dev/null +++ b/Documentation/API/Interactables/Event/Proxy/InteractableFacadeEventProxyEmitter.UnityEvent.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 478a2914b800ddb439fb1f1bd168b088 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Event/Proxy/InteractableFacadeEventProxyEmitter.md b/Documentation/API/Interactables/Event/Proxy/InteractableFacadeEventProxyEmitter.md new file mode 100644 index 0000000..a222991 --- /dev/null +++ b/Documentation/API/Interactables/Event/Proxy/InteractableFacadeEventProxyEmitter.md @@ -0,0 +1,52 @@ +# Class InteractableFacadeEventProxyEmitter + +Emits a UnityEvent with an [InteractableFacade] payload whenever the Receive method is called. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Methods] + * [GetTargetToCheck()] + +## Details + +##### Inheritance + +* System.Object +* InteractableFacadeEventProxyEmitter + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactables.Event.Proxy] + +##### Syntax + +``` +public class InteractableFacadeEventProxyEmitter : RestrictableSingleEventProxyEmitter +``` + +### Methods + +#### GetTargetToCheck() + +##### Declaration + +``` +protected override object GetTargetToCheck() +``` + +##### Returns + +| Type | Description | +| --- | --- | +| System.Object | n/a | + +[InteractableFacade]: ../../../Interactables/InteractableFacade.md +[Tilia.Interactions.Interactables.Interactables.Event.Proxy]: README.md +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Methods]: #Methods +[GetTargetToCheck()]: #GetTargetToCheck diff --git a/Documentation/API/Interactables/Event/Proxy/InteractableFacadeEventProxyEmitter.md.meta b/Documentation/API/Interactables/Event/Proxy/InteractableFacadeEventProxyEmitter.md.meta new file mode 100644 index 0000000..9a6443e --- /dev/null +++ b/Documentation/API/Interactables/Event/Proxy/InteractableFacadeEventProxyEmitter.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d5b3d05ba91fcbf4b8f55d2efd764b10 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Event/Proxy/README.md b/Documentation/API/Interactables/Event/Proxy/README.md new file mode 100644 index 0000000..8902617 --- /dev/null +++ b/Documentation/API/Interactables/Event/Proxy/README.md @@ -0,0 +1,15 @@ +# Namespace Tilia.Interactions.Interactables.Interactables.Event.Proxy + +### Classes + +#### [InteractableFacadeEventProxyEmitter] + +Emits a UnityEvent with an [InteractableFacade] payload whenever the Receive method is called. + +#### [InteractableFacadeEventProxyEmitter.UnityEvent] + +Defines the event with the specified state. + +[InteractableFacadeEventProxyEmitter]: InteractableFacadeEventProxyEmitter.md +[InteractableFacade]: ../../../Interactables/InteractableFacade.md +[InteractableFacadeEventProxyEmitter.UnityEvent]: InteractableFacadeEventProxyEmitter.UnityEvent.md diff --git a/Documentation/API/Interactables/Event/Proxy/README.md.meta b/Documentation/API/Interactables/Event/Proxy/README.md.meta new file mode 100644 index 0000000..77557be --- /dev/null +++ b/Documentation/API/Interactables/Event/Proxy/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 461a9730851880b448d3afcc141ac9d3 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Grab.meta b/Documentation/API/Interactables/Grab.meta new file mode 100644 index 0000000..0728cab --- /dev/null +++ b/Documentation/API/Interactables/Grab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 45496be55ab834c4da89ba1e932c8028 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Grab/Action.meta b/Documentation/API/Interactables/Grab/Action.meta new file mode 100644 index 0000000..2387cd5 --- /dev/null +++ b/Documentation/API/Interactables/Grab/Action.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8e5c680db98f8f24bac7c3df28462364 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Grab/Action/GrabInteractableAction.md b/Documentation/API/Interactables/Grab/Action/GrabInteractableAction.md new file mode 100644 index 0000000..50cb628 --- /dev/null +++ b/Documentation/API/Interactables/Grab/Action/GrabInteractableAction.md @@ -0,0 +1,169 @@ +# Class GrabInteractableAction + +Describes an action to perform when a Grab Process is executed. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Properties] + * [GrabSetup] + * [InputActiveCollisionConsumer] + * [InputGrabReceived] + * [InputGrabSetup] + * [InputUngrabReceived] + * [InputUngrabReset] +* [Methods] + * [NotifyGrab(GameObject)] + * [NotifyUngrab(GameObject)] + * [OnAfterGrabSetupChange()] + +## Details + +##### Inheritance + +* System.Object +* GrabInteractableAction +* [GrabInteractableControlDirectionAction] +* [GrabInteractableFollowAction] +* [GrabInteractableScaleAction] +* [GrabInteractableSwapAction] + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactables.Grab.Action] + +##### Syntax + +``` +public class GrabInteractableAction : MonoBehaviour +``` + +### Properties + +#### GrabSetup + +The internal setup for the grab action. + +##### Declaration + +``` +public GrabInteractableConfigurator GrabSetup { get; set; } +``` + +#### InputActiveCollisionConsumer + +The input ActiveCollisionConsumerEventProxyEmitter for the grab action. + +##### Declaration + +``` +public ActiveCollisionConsumerEventProxyEmitter InputActiveCollisionConsumer { get; protected set; } +``` + +#### InputGrabReceived + +The input GameObjectEventProxyEmitter for the grab action. + +##### Declaration + +``` +public GameObjectEventProxyEmitter InputGrabReceived { get; protected set; } +``` + +#### InputGrabSetup + +The input GameObjectEventProxyEmitter for any pre setup on grab. + +##### Declaration + +``` +public GameObjectEventProxyEmitter InputGrabSetup { get; protected set; } +``` + +#### InputUngrabReceived + +The input GameObjectEventProxyEmitter for the grab action. + +##### Declaration + +``` +public GameObjectEventProxyEmitter InputUngrabReceived { get; protected set; } +``` + +#### InputUngrabReset + +The input GameObjectEventProxyEmitter for any post reset on ungrab. + +##### Declaration + +``` +public GameObjectEventProxyEmitter InputUngrabReset { get; protected set; } +``` + +### Methods + +#### NotifyGrab(GameObject) + +Notifies that the Interactable is being grabbed. + +##### Declaration + +``` +public virtual void NotifyGrab(GameObject data) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| GameObject | data | The grabbing object. | + +#### NotifyUngrab(GameObject) + +Notifies that the Interactable is no longer being grabbed. + +##### Declaration + +``` +public virtual void NotifyUngrab(GameObject data) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| GameObject | data | The previous grabbing object. | + +#### OnAfterGrabSetupChange() + +Called after [GrabSetup] has been changed. + +##### Declaration + +``` +protected virtual void OnAfterGrabSetupChange() +``` + +[GrabInteractableControlDirectionAction]: GrabInteractableControlDirectionAction.md +[GrabInteractableFollowAction]: GrabInteractableFollowAction.md +[GrabInteractableScaleAction]: GrabInteractableScaleAction.md +[GrabInteractableSwapAction]: GrabInteractableSwapAction.md +[Tilia.Interactions.Interactables.Interactables.Grab.Action]: README.md +[GrabInteractableConfigurator]: ../../../Interactables/Grab/GrabInteractableConfigurator.md +[GrabSetup]: GrabInteractableAction.md#GrabSetup +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Properties]: #Properties +[GrabSetup]: #GrabSetup +[InputActiveCollisionConsumer]: #InputActiveCollisionConsumer +[InputGrabReceived]: #InputGrabReceived +[InputGrabSetup]: #InputGrabSetup +[InputUngrabReceived]: #InputUngrabReceived +[InputUngrabReset]: #InputUngrabReset +[Methods]: #Methods +[NotifyGrab(GameObject)]: #NotifyGrabGameObject +[NotifyUngrab(GameObject)]: #NotifyUngrabGameObject +[OnAfterGrabSetupChange()]: #OnAfterGrabSetupChange diff --git a/Documentation/API/Interactables/Grab/Action/GrabInteractableAction.md.meta b/Documentation/API/Interactables/Grab/Action/GrabInteractableAction.md.meta new file mode 100644 index 0000000..ad16b68 --- /dev/null +++ b/Documentation/API/Interactables/Grab/Action/GrabInteractableAction.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3f24a06fd1c943844abc239beb1eb1c2 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Grab/Action/GrabInteractableControlDirectionAction.md b/Documentation/API/Interactables/Grab/Action/GrabInteractableControlDirectionAction.md new file mode 100644 index 0000000..038d5a0 --- /dev/null +++ b/Documentation/API/Interactables/Grab/Action/GrabInteractableControlDirectionAction.md @@ -0,0 +1,151 @@ +# Class GrabInteractableControlDirectionAction + +Describes an action that allows the Interactable to point in the direction of a given Interactor. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Properties] + * [DirectionModifier] + * [LinkedObjects] +* [Methods] + * [DisableLinkedObjects()] + * [EnableLinkedObjects()] + * [OnAfterGrabSetupChange()] + * [ToggleLinkedObjectState(Boolean)] + +## Details + +##### Inheritance + +* System.Object +* [GrabInteractableAction] +* GrabInteractableControlDirectionAction + +##### Inherited Members + +[GrabInteractableAction.InputActiveCollisionConsumer] + +[GrabInteractableAction.InputGrabReceived] + +[GrabInteractableAction.InputUngrabReceived] + +[GrabInteractableAction.InputGrabSetup] + +[GrabInteractableAction.InputUngrabReset] + +[GrabInteractableAction.GrabSetup] + +[GrabInteractableAction.NotifyGrab(GameObject)] + +[GrabInteractableAction.NotifyUngrab(GameObject)] + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactables.Grab.Action] + +##### Syntax + +``` +public class GrabInteractableControlDirectionAction : GrabInteractableAction +``` + +### Properties + +#### DirectionModifier + +The Zinnia.Tracking.Modification.DirectionModifier to process the direction control. + +##### Declaration + +``` +public DirectionModifier DirectionModifier { get; protected set; } +``` + +#### LinkedObjects + +A GameObject collection to enable/disabled as part of the direction control process. + +##### Declaration + +``` +public GameObjectObservableList LinkedObjects { get; set; } +``` + +### Methods + +#### DisableLinkedObjects() + +Disables the GameObject state of each of the items in the [LinkedObjects] collection. + +##### Declaration + +``` +public virtual void DisableLinkedObjects() +``` + +#### EnableLinkedObjects() + +Enables the GameObject state of each of the items in the [LinkedObjects] collection. + +##### Declaration + +``` +public virtual void EnableLinkedObjects() +``` + +#### OnAfterGrabSetupChange() + +##### Declaration + +``` +protected override void OnAfterGrabSetupChange() +``` + +##### Overrides + +[GrabInteractableAction.OnAfterGrabSetupChange()] + +#### ToggleLinkedObjectState(Boolean) + +Toggles the GameObject state of each of the items in the [LinkedObjects] collection. + +##### Declaration + +``` +protected virtual void ToggleLinkedObjectState(bool state) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| System.Boolean | state | The state to set the GameObject active state to. | + +[GrabInteractableAction]: GrabInteractableAction.md +[GrabInteractableAction.InputActiveCollisionConsumer]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_InputActiveCollisionConsumer +[GrabInteractableAction.InputGrabReceived]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_InputGrabReceived +[GrabInteractableAction.InputUngrabReceived]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_InputUngrabReceived +[GrabInteractableAction.InputGrabSetup]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_InputGrabSetup +[GrabInteractableAction.InputUngrabReset]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_InputUngrabReset +[GrabInteractableAction.GrabSetup]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_GrabSetup +[GrabInteractableAction.NotifyGrab(GameObject)]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_NotifyGrab_GameObject_ +[GrabInteractableAction.NotifyUngrab(GameObject)]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_NotifyUngrab_GameObject_ +[Tilia.Interactions.Interactables.Interactables.Grab.Action]: README.md +[LinkedObjects]: GrabInteractableControlDirectionAction.md#LinkedObjects +[LinkedObjects]: GrabInteractableControlDirectionAction.md#LinkedObjects +[GrabInteractableAction.OnAfterGrabSetupChange()]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_OnAfterGrabSetupChange +[LinkedObjects]: GrabInteractableControlDirectionAction.md#LinkedObjects +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Properties]: #Properties +[DirectionModifier]: #DirectionModifier +[LinkedObjects]: #LinkedObjects +[Methods]: #Methods +[DisableLinkedObjects()]: #DisableLinkedObjects +[EnableLinkedObjects()]: #EnableLinkedObjects +[OnAfterGrabSetupChange()]: #OnAfterGrabSetupChange +[ToggleLinkedObjectState(Boolean)]: #ToggleLinkedObjectStateBoolean diff --git a/Documentation/API/Interactables/Grab/Action/GrabInteractableControlDirectionAction.md.meta b/Documentation/API/Interactables/Grab/Action/GrabInteractableControlDirectionAction.md.meta new file mode 100644 index 0000000..be60331 --- /dev/null +++ b/Documentation/API/Interactables/Grab/Action/GrabInteractableControlDirectionAction.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e8bea2ad0d9cc9e4399e80a9e36e21d7 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Grab/Action/GrabInteractableFollowAction.OffsetType.md b/Documentation/API/Interactables/Grab/Action/GrabInteractableFollowAction.OffsetType.md new file mode 100644 index 0000000..951e846 --- /dev/null +++ b/Documentation/API/Interactables/Grab/Action/GrabInteractableFollowAction.OffsetType.md @@ -0,0 +1,37 @@ +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Fields] + +## Details + +# Enum GrabInteractableFollowAction.OffsetType + +The offset to apply on grab. + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactables.Grab.Action] + +##### Syntax + +``` +public enum OffsetType +``` + +### Fields + +| Name | Description | +| --- | --- | +| ForcePrecisionPoint | The precision point offset will always be re-created based on the latest Interactor grabbing the Interactable. | +| None | No offset is applied. | +| OrientationHandle | An offset of a specified GameObject is applied to orientate the interactable on grab. | +| PrecisionPoint | An offset of where the collision between the Interactor and Interactable is applied for precision grabbing. | + +[Tilia.Interactions.Interactables.Interactables.Grab.Action]: README.md +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Fields]: #Fields diff --git a/Documentation/API/Interactables/Grab/Action/GrabInteractableFollowAction.OffsetType.md.meta b/Documentation/API/Interactables/Grab/Action/GrabInteractableFollowAction.OffsetType.md.meta new file mode 100644 index 0000000..0e5a00b --- /dev/null +++ b/Documentation/API/Interactables/Grab/Action/GrabInteractableFollowAction.OffsetType.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d1783a50c5825c647b82b4abb9781541 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Grab/Action/GrabInteractableFollowAction.TrackingType.md b/Documentation/API/Interactables/Grab/Action/GrabInteractableFollowAction.TrackingType.md new file mode 100644 index 0000000..4d8f7f0 --- /dev/null +++ b/Documentation/API/Interactables/Grab/Action/GrabInteractableFollowAction.TrackingType.md @@ -0,0 +1,38 @@ +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Fields] + +## Details + +# Enum GrabInteractableFollowAction.TrackingType + +The way in which the object is moved. + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactables.Grab.Action] + +##### Syntax + +``` +public enum TrackingType +``` + +### Fields + +| Name | Description | +| --- | --- | +| FollowRigidbody | Updates the rigidbody using velocity to stay within the bounds of the physics system. | +| FollowRigidbodyForceRotate | Updates the rigidbody rotation by using a force at position. | +| FollowRotateAroundAngularVelocity | Updates the transform rotation based on the rotation of the interactor's angular velocity around a given axis. | +| FollowTransform | Updates the transform data directly, outside of the physics system. | +| FollowTransformPositionDifferenceRotate | Updates the transform rotation based on the position difference of the source. | + +[Tilia.Interactions.Interactables.Interactables.Grab.Action]: README.md +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Fields]: #Fields diff --git a/Documentation/API/Interactables/Grab/Action/GrabInteractableFollowAction.TrackingType.md.meta b/Documentation/API/Interactables/Grab/Action/GrabInteractableFollowAction.TrackingType.md.meta new file mode 100644 index 0000000..1b28abc --- /dev/null +++ b/Documentation/API/Interactables/Grab/Action/GrabInteractableFollowAction.TrackingType.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 80d57106853d2a547878968bda1d0cc6 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Grab/Action/GrabInteractableFollowAction.md b/Documentation/API/Interactables/Grab/Action/GrabInteractableFollowAction.md new file mode 100644 index 0000000..97e0cad --- /dev/null +++ b/Documentation/API/Interactables/Grab/Action/GrabInteractableFollowAction.md @@ -0,0 +1,399 @@ +# Class GrabInteractableFollowAction + +Describes an action that allows the Interactable to follow an Interactor's position, rotation and scale. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Properties] + * [FollowRigidbodyForceRotateModifier] + * [FollowRigidbodyModifier] + * [FollowRotateAroundAngularVelocityModifier] + * [FollowTracking] + * [FollowTransformModifier] + * [FollowTransformRotateOnPositionDifferenceModifier] + * [GrabOffset] + * [IsKinematicWhenActive] + * [IsKinematicWhenInactive] + * [ObjectFollower] + * [OrientationLogicContainer] + * [PositionModifiers] + * [PrecisionCreateContainer] + * [PrecisionForceCreateContainer] + * [PrecisionLogicContainer] + * [RotationModifiers] + * [ScaleModifiers] + * [VelocityApplier] + * [WillInheritIsKinematicWhenInactiveFromConsumerRigidbody] +* [Methods] + * [ApplyActiveKinematicState()] + * [ApplyInactiveKinematicState()] + * [ConfigureFollowTracking()] + * [ConfigureGrabOffset()] + * [OnAfterFollowTrackingChange()] + * [OnAfterGrabOffsetChange()] + * [OnAfterGrabSetupChange()] + * [OnEnable()] + +## Details + +##### Inheritance + +* System.Object +* [GrabInteractableAction] +* GrabInteractableFollowAction + +##### Inherited Members + +[GrabInteractableAction.InputActiveCollisionConsumer] + +[GrabInteractableAction.InputGrabReceived] + +[GrabInteractableAction.InputUngrabReceived] + +[GrabInteractableAction.InputGrabSetup] + +[GrabInteractableAction.InputUngrabReset] + +[GrabInteractableAction.GrabSetup] + +[GrabInteractableAction.NotifyGrab(GameObject)] + +[GrabInteractableAction.NotifyUngrab(GameObject)] + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactables.Grab.Action] + +##### Syntax + +``` +public class GrabInteractableFollowAction : GrabInteractableAction +``` + +### Properties + +#### FollowRigidbodyForceRotateModifier + +The FollowModifier to rotate by applying a force to the rigidbody. + +##### Declaration + +``` +public FollowModifier FollowRigidbodyForceRotateModifier { get; protected set; } +``` + +#### FollowRigidbodyModifier + +The FollowModifier to move by applying velocities to the rigidbody. + +##### Declaration + +``` +public FollowModifier FollowRigidbodyModifier { get; protected set; } +``` + +#### FollowRotateAroundAngularVelocityModifier + +The FollowModifier to rotate by the angular velocity of the source interactor. + +##### Declaration + +``` +public FollowModifier FollowRotateAroundAngularVelocityModifier { get; protected set; } +``` + +#### FollowTracking + +Determines how to track the movement of interactable to the interactor. + +##### Declaration + +``` +public GrabInteractableFollowAction.TrackingType FollowTracking { get; set; } +``` + +#### FollowTransformModifier + +The FollowModifier to move by following the transform. + +##### Declaration + +``` +public FollowModifier FollowTransformModifier { get; protected set; } +``` + +#### FollowTransformRotateOnPositionDifferenceModifier + +The FollowModifier to rotate by the angle difference between the source positions. + +##### Declaration + +``` +public FollowModifier FollowTransformRotateOnPositionDifferenceModifier { get; protected set; } +``` + +#### GrabOffset + +The offset to apply when grabbing the Interactable. + +##### Declaration + +``` +public GrabInteractableFollowAction.OffsetType GrabOffset { get; set; } +``` + +#### IsKinematicWhenActive + +Whether the Rigidbody of the interactable should be in a kinematic state when the follow action is active. + +##### Declaration + +``` +public bool IsKinematicWhenActive { get; set; } +``` + +#### IsKinematicWhenInactive + +Whether the Rigidbody of the interactable should be in a kinematic state when the follow action is inactive. + +##### Declaration + +``` +public bool IsKinematicWhenInactive { get; set; } +``` + +#### ObjectFollower + +The Zinnia.Tracking.Follow.ObjectFollower for tracking movement. + +##### Declaration + +``` +public ObjectFollower ObjectFollower { get; protected set; } +``` + +#### OrientationLogicContainer + +The container for the orientation handle logic. + +##### Declaration + +``` +public GameObject OrientationLogicContainer { get; protected set; } +``` + +#### PositionModifiers + +A GameObjectObservableList collection of all position modifiers used within the follow modifiers. + +##### Declaration + +``` +public GameObjectObservableList PositionModifiers { get; protected set; } +``` + +#### PrecisionCreateContainer + +The container for the precision point creation logic. + +##### Declaration + +``` +public GameObject PrecisionCreateContainer { get; protected set; } +``` + +#### PrecisionForceCreateContainer + +The container for the precision point force creation logic. + +##### Declaration + +``` +public GameObject PrecisionForceCreateContainer { get; protected set; } +``` + +#### PrecisionLogicContainer + +The container for the precision point logic. + +##### Declaration + +``` +public GameObject PrecisionLogicContainer { get; protected set; } +``` + +#### RotationModifiers + +A GameObjectObservableList collection of all rotation modifiers used within the follow modifiers. + +##### Declaration + +``` +public GameObjectObservableList RotationModifiers { get; protected set; } +``` + +#### ScaleModifiers + +A GameObjectObservableList collection of all scale modifiers used within the follow modifiers. + +##### Declaration + +``` +public GameObjectObservableList ScaleModifiers { get; protected set; } +``` + +#### VelocityApplier + +The Zinnia.Tracking.Velocity.VelocityApplier to apply velocity on ungrab. + +##### Declaration + +``` +public VelocityApplier VelocityApplier { get; protected set; } +``` + +#### WillInheritIsKinematicWhenInactiveFromConsumerRigidbody + +Whether the [IsKinematicWhenInactive] property inherits the kinematic state from GrabSetup.Facade.ConsumerRigidbody.isKinematic. + +##### Declaration + +``` +public bool WillInheritIsKinematicWhenInactiveFromConsumerRigidbody { get; set; } +``` + +### Methods + +#### ApplyActiveKinematicState() + +Applies the active kinematic state to the Rigidbody of the interactable. + +##### Declaration + +``` +public virtual void ApplyActiveKinematicState() +``` + +#### ApplyInactiveKinematicState() + +Applies the inactive kinematic state to the Rigidbody of the interactable. + +##### Declaration + +``` +public virtual void ApplyInactiveKinematicState() +``` + +#### ConfigureFollowTracking() + +Configures the appropriate processes to be used for follow tracking based on the [FollowTracking] setting. + +##### Declaration + +``` +protected virtual void ConfigureFollowTracking() +``` + +#### ConfigureGrabOffset() + +Configures the appropriate processes to be used for grab offset based on the [GrabOffset] setting. + +##### Declaration + +``` +protected virtual void ConfigureGrabOffset() +``` + +#### OnAfterFollowTrackingChange() + +Called after [FollowTracking] has been changed. + +##### Declaration + +``` +protected virtual void OnAfterFollowTrackingChange() +``` + +#### OnAfterGrabOffsetChange() + +Called after [GrabOffset] has been changed. + +##### Declaration + +``` +protected virtual void OnAfterGrabOffsetChange() +``` + +#### OnAfterGrabSetupChange() + +##### Declaration + +``` +protected override void OnAfterGrabSetupChange() +``` + +##### Overrides + +[GrabInteractableAction.OnAfterGrabSetupChange()] + +#### OnEnable() + +##### Declaration + +``` +protected virtual void OnEnable() +``` + +[GrabInteractableAction]: GrabInteractableAction.md +[GrabInteractableAction.InputActiveCollisionConsumer]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_InputActiveCollisionConsumer +[GrabInteractableAction.InputGrabReceived]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_InputGrabReceived +[GrabInteractableAction.InputUngrabReceived]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_InputUngrabReceived +[GrabInteractableAction.InputGrabSetup]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_InputGrabSetup +[GrabInteractableAction.InputUngrabReset]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_InputUngrabReset +[GrabInteractableAction.GrabSetup]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_GrabSetup +[GrabInteractableAction.NotifyGrab(GameObject)]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_NotifyGrab_GameObject_ +[GrabInteractableAction.NotifyUngrab(GameObject)]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_NotifyUngrab_GameObject_ +[Tilia.Interactions.Interactables.Interactables.Grab.Action]: README.md +[GrabInteractableFollowAction.TrackingType]: GrabInteractableFollowAction.TrackingType.md +[GrabInteractableFollowAction.OffsetType]: GrabInteractableFollowAction.OffsetType.md +[IsKinematicWhenInactive]: GrabInteractableFollowAction.md#IsKinematicWhenInactive +[FollowTracking]: GrabInteractableFollowAction.md#FollowTracking +[GrabOffset]: GrabInteractableFollowAction.md#GrabOffset +[FollowTracking]: GrabInteractableFollowAction.md#FollowTracking +[GrabOffset]: GrabInteractableFollowAction.md#GrabOffset +[GrabInteractableAction.OnAfterGrabSetupChange()]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_OnAfterGrabSetupChange +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Properties]: #Properties +[FollowRigidbodyForceRotateModifier]: #FollowRigidbodyForceRotateModifier +[FollowRigidbodyModifier]: #FollowRigidbodyModifier +[FollowRotateAroundAngularVelocityModifier]: #FollowRotateAroundAngularVelocityModifier +[FollowTracking]: #FollowTracking +[FollowTransformModifier]: #FollowTransformModifier +[FollowTransformRotateOnPositionDifferenceModifier]: #FollowTransformRotateOnPositionDifferenceModifier +[GrabOffset]: #GrabOffset +[IsKinematicWhenActive]: #IsKinematicWhenActive +[IsKinematicWhenInactive]: #IsKinematicWhenInactive +[ObjectFollower]: #ObjectFollower +[OrientationLogicContainer]: #OrientationLogicContainer +[PositionModifiers]: #PositionModifiers +[PrecisionCreateContainer]: #PrecisionCreateContainer +[PrecisionForceCreateContainer]: #PrecisionForceCreateContainer +[PrecisionLogicContainer]: #PrecisionLogicContainer +[RotationModifiers]: #RotationModifiers +[ScaleModifiers]: #ScaleModifiers +[VelocityApplier]: #VelocityApplier +[WillInheritIsKinematicWhenInactiveFromConsumerRigidbody]: #WillInheritIsKinematicWhenInactiveFromConsumerRigidbody +[Methods]: #Methods +[ApplyActiveKinematicState()]: #ApplyActiveKinematicState +[ApplyInactiveKinematicState()]: #ApplyInactiveKinematicState +[ConfigureFollowTracking()]: #ConfigureFollowTracking +[ConfigureGrabOffset()]: #ConfigureGrabOffset +[OnAfterFollowTrackingChange()]: #OnAfterFollowTrackingChange +[OnAfterGrabOffsetChange()]: #OnAfterGrabOffsetChange +[OnAfterGrabSetupChange()]: #OnAfterGrabSetupChange +[OnEnable()]: #OnEnable diff --git a/Documentation/API/Interactables/Grab/Action/GrabInteractableFollowAction.md.meta b/Documentation/API/Interactables/Grab/Action/GrabInteractableFollowAction.md.meta new file mode 100644 index 0000000..870e7cd --- /dev/null +++ b/Documentation/API/Interactables/Grab/Action/GrabInteractableFollowAction.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: edfbaea0add46eb4c8118e8fd42559cf +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Grab/Action/GrabInteractableScaleAction.md b/Documentation/API/Interactables/Grab/Action/GrabInteractableScaleAction.md new file mode 100644 index 0000000..8a2a650 --- /dev/null +++ b/Documentation/API/Interactables/Grab/Action/GrabInteractableScaleAction.md @@ -0,0 +1,94 @@ +# Class GrabInteractableScaleAction + +Describes an action that allows the Interactable to be scaled in size between the points of two specified Interactors. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Properties] + * [PinchScaler] +* [Methods] + * [OnAfterGrabSetupChange()] + +## Details + +##### Inheritance + +* System.Object +* [GrabInteractableAction] +* GrabInteractableScaleAction + +##### Inherited Members + +[GrabInteractableAction.InputActiveCollisionConsumer] + +[GrabInteractableAction.InputGrabReceived] + +[GrabInteractableAction.InputUngrabReceived] + +[GrabInteractableAction.InputGrabSetup] + +[GrabInteractableAction.InputUngrabReset] + +[GrabInteractableAction.GrabSetup] + +[GrabInteractableAction.NotifyGrab(GameObject)] + +[GrabInteractableAction.NotifyUngrab(GameObject)] + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactables.Grab.Action] + +##### Syntax + +``` +public class GrabInteractableScaleAction : GrabInteractableAction +``` + +### Properties + +#### PinchScaler + +The Zinnia.Tracking.Modification.PinchScaler to process the scale control. + +##### Declaration + +``` +public PinchScaler PinchScaler { get; protected set; } +``` + +### Methods + +#### OnAfterGrabSetupChange() + +##### Declaration + +``` +protected override void OnAfterGrabSetupChange() +``` + +##### Overrides + +[GrabInteractableAction.OnAfterGrabSetupChange()] + +[GrabInteractableAction]: GrabInteractableAction.md +[GrabInteractableAction.InputActiveCollisionConsumer]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_InputActiveCollisionConsumer +[GrabInteractableAction.InputGrabReceived]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_InputGrabReceived +[GrabInteractableAction.InputUngrabReceived]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_InputUngrabReceived +[GrabInteractableAction.InputGrabSetup]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_InputGrabSetup +[GrabInteractableAction.InputUngrabReset]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_InputUngrabReset +[GrabInteractableAction.GrabSetup]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_GrabSetup +[GrabInteractableAction.NotifyGrab(GameObject)]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_NotifyGrab_GameObject_ +[GrabInteractableAction.NotifyUngrab(GameObject)]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_NotifyUngrab_GameObject_ +[Tilia.Interactions.Interactables.Interactables.Grab.Action]: README.md +[GrabInteractableAction.OnAfterGrabSetupChange()]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_OnAfterGrabSetupChange +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Properties]: #Properties +[PinchScaler]: #PinchScaler +[Methods]: #Methods +[OnAfterGrabSetupChange()]: #OnAfterGrabSetupChange diff --git a/Documentation/API/Interactables/Grab/Action/GrabInteractableScaleAction.md.meta b/Documentation/API/Interactables/Grab/Action/GrabInteractableScaleAction.md.meta new file mode 100644 index 0000000..04e49b2 --- /dev/null +++ b/Documentation/API/Interactables/Grab/Action/GrabInteractableScaleAction.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d168615ad9cd5bc4ebbfbe62a9c8d445 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Grab/Action/GrabInteractableSwapAction.md b/Documentation/API/Interactables/Grab/Action/GrabInteractableSwapAction.md new file mode 100644 index 0000000..e485086 --- /dev/null +++ b/Documentation/API/Interactables/Grab/Action/GrabInteractableSwapAction.md @@ -0,0 +1,156 @@ +# Class GrabInteractableSwapAction + +Describes the action of swapping a an action from being the secondary action to the primary action. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Methods] + * [ClearStack()] + * [EmitActiveCollisionConsumerPayload()] + * [PushToStack(GameObject)] + * [ResetToggle(GameObject)] + * [ToStackInteractorProvider(GrabInteractableInteractorProvider)] + +## Details + +##### Inheritance + +* System.Object +* [GrabInteractableAction] +* GrabInteractableSwapAction + +##### Inherited Members + +[GrabInteractableAction.InputActiveCollisionConsumer] + +[GrabInteractableAction.InputGrabReceived] + +[GrabInteractableAction.InputUngrabReceived] + +[GrabInteractableAction.InputGrabSetup] + +[GrabInteractableAction.InputUngrabReset] + +[GrabInteractableAction.GrabSetup] + +[GrabInteractableAction.NotifyGrab(GameObject)] + +[GrabInteractableAction.NotifyUngrab(GameObject)] + +[GrabInteractableAction.OnAfterGrabSetupChange()] + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactables.Grab.Action] + +##### Syntax + +``` +public class GrabInteractableSwapAction : GrabInteractableAction +``` + +##### **Remarks** + +Can only be used in conjunction with [GrabInteractableStackInteractorProvider]. + +### Methods + +#### ClearStack() + +Clears the stack. + +##### Declaration + +``` +public virtual void ClearStack() +``` + +#### EmitActiveCollisionConsumerPayload() + +Emits the active collision payload. + +##### Declaration + +``` +public virtual void EmitActiveCollisionConsumerPayload() +``` + +#### PushToStack(GameObject) + +Pushes the given Interactor to the stack. + +##### Declaration + +``` +public virtual void PushToStack(GameObject interactor) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| GameObject | interactor | The Interactor to push to the stack. | + +#### ResetToggle(GameObject) + +Resets the toggle state on the Grab Receiver. + +##### Declaration + +``` +public virtual void ResetToggle(GameObject interactor) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| GameObject | interactor | The Interactor to remove from the toggle state. | + +#### ToStackInteractorProvider(GrabInteractableInteractorProvider) + +Casts a given [GrabInteractableInteractorProvider] to the required [GrabInteractableStackInteractorProvider] type. + +##### Declaration + +``` +protected virtual GrabInteractableStackInteractorProvider ToStackInteractorProvider(GrabInteractableInteractorProvider provider) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [GrabInteractableInteractorProvider] | provider | The base provider to cast. | + +##### Returns + +| Type | Description | +| --- | --- | +| [GrabInteractableStackInteractorProvider] | The casted provider. | + +[GrabInteractableAction]: GrabInteractableAction.md +[GrabInteractableAction.InputActiveCollisionConsumer]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_InputActiveCollisionConsumer +[GrabInteractableAction.InputGrabReceived]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_InputGrabReceived +[GrabInteractableAction.InputUngrabReceived]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_InputUngrabReceived +[GrabInteractableAction.InputGrabSetup]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_InputGrabSetup +[GrabInteractableAction.InputUngrabReset]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_InputUngrabReset +[GrabInteractableAction.GrabSetup]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_GrabSetup +[GrabInteractableAction.NotifyGrab(GameObject)]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_NotifyGrab_GameObject_ +[GrabInteractableAction.NotifyUngrab(GameObject)]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_NotifyUngrab_GameObject_ +[GrabInteractableAction.OnAfterGrabSetupChange()]: GrabInteractableAction.md#Tilia_Interactions_Interactables_Interactables_Grab_Action_GrabInteractableAction_OnAfterGrabSetupChange +[Tilia.Interactions.Interactables.Interactables.Grab.Action]: README.md +[GrabInteractableStackInteractorProvider]: ../../../Interactables/Grab/Provider/GrabInteractableStackInteractorProvider.md +[GrabInteractableInteractorProvider]: ../../../Interactables/Grab/Provider/GrabInteractableInteractorProvider.md +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Methods]: #Methods +[ClearStack()]: #ClearStack +[EmitActiveCollisionConsumerPayload()]: #EmitActiveCollisionConsumerPayload +[PushToStack(GameObject)]: #PushToStackGameObject +[ResetToggle(GameObject)]: #ResetToggleGameObject +[ToStackInteractorProvider(GrabInteractableInteractorProvider)]: #ToStackInteractorProviderGrabInteractableInteractorProvider diff --git a/Documentation/API/Interactables/Grab/Action/GrabInteractableSwapAction.md.meta b/Documentation/API/Interactables/Grab/Action/GrabInteractableSwapAction.md.meta new file mode 100644 index 0000000..c519913 --- /dev/null +++ b/Documentation/API/Interactables/Grab/Action/GrabInteractableSwapAction.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 200b7ea18d6b21944880f1e5083b1d4f +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Grab/Action/README.md b/Documentation/API/Interactables/Grab/Action/README.md new file mode 100644 index 0000000..f761c34 --- /dev/null +++ b/Documentation/API/Interactables/Grab/Action/README.md @@ -0,0 +1,41 @@ +# Namespace Tilia.Interactions.Interactables.Interactables.Grab.Action + +### Classes + +#### [GrabInteractableAction] + +Describes an action to perform when a Grab Process is executed. + +#### [GrabInteractableControlDirectionAction] + +Describes an action that allows the Interactable to point in the direction of a given Interactor. + +#### [GrabInteractableFollowAction] + +Describes an action that allows the Interactable to follow an Interactor's position, rotation and scale. + +#### [GrabInteractableScaleAction] + +Describes an action that allows the Interactable to be scaled in size between the points of two specified Interactors. + +#### [GrabInteractableSwapAction] + +Describes the action of swapping a an action from being the secondary action to the primary action. + +### Enums + +#### [GrabInteractableFollowAction.OffsetType] + +The offset to apply on grab. + +#### [GrabInteractableFollowAction.TrackingType] + +The way in which the object is moved. + +[GrabInteractableAction]: GrabInteractableAction.md +[GrabInteractableControlDirectionAction]: GrabInteractableControlDirectionAction.md +[GrabInteractableFollowAction]: GrabInteractableFollowAction.md +[GrabInteractableScaleAction]: GrabInteractableScaleAction.md +[GrabInteractableSwapAction]: GrabInteractableSwapAction.md +[GrabInteractableFollowAction.OffsetType]: GrabInteractableFollowAction.OffsetType.md +[GrabInteractableFollowAction.TrackingType]: GrabInteractableFollowAction.TrackingType.md diff --git a/Documentation/API/Interactables/Grab/Action/README.md.meta b/Documentation/API/Interactables/Grab/Action/README.md.meta new file mode 100644 index 0000000..3a2a265 --- /dev/null +++ b/Documentation/API/Interactables/Grab/Action/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6f898847cbab8aa42ab34b599a599b5b +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Grab/GrabInteractableConfigurator.md b/Documentation/API/Interactables/Grab/GrabInteractableConfigurator.md new file mode 100644 index 0000000..aa03245 --- /dev/null +++ b/Documentation/API/Interactables/Grab/GrabInteractableConfigurator.md @@ -0,0 +1,439 @@ +# Class GrabInteractableConfigurator + +Sets up the Interactable Prefab grab settings based on the provided user settings. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Properties] + * [ActionTypes] + * [Facade] + * [GrabbingInteractors] + * [GrabProvider] + * [GrabProviderOptions] + * [GrabReceiver] + * [IsGrabTypeToggle] + * [PrimaryAction] + * [SecondaryAction] +* [Methods] + * [ConfigureActionContainer(GrabInteractableAction)] + * [ConfigureContainer()] + * [Grab(InteractorFacade)] + * [LinkReceiverToProvider()] + * [LinkToPrimaryAction()] + * [LinkToSecondaryAction()] + * [NotifyGrab(GameObject)] + * [NotifyUngrab(GameObject)] + * [OnAfterPrimaryActionChange()] + * [OnAfterSecondaryActionChange()] + * [OnBeforePrimaryActionChange()] + * [OnBeforeSecondaryActionChange()] + * [OnDisable()] + * [OnEnable()] + * [SetGrabProvider(Int32)] + * [Ungrab(Int32)] + * [Ungrab(InteractorFacade)] + * [UnlinkReceiverToProvider()] + * [UnlinkToPrimaryAction()] + * [UnlinkToSecondaryAction()] + +## Details + +##### Inheritance + +* System.Object +* GrabInteractableConfigurator + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactables.Grab] + +##### Syntax + +``` +public class GrabInteractableConfigurator : MonoBehaviour +``` + +### Properties + +#### ActionTypes + +The GameObjectObservableList that contains the available grab action prefabs. + +##### Declaration + +``` +public GameObjectObservableList ActionTypes { get; protected set; } +``` + +#### Facade + +The public interface facade. + +##### Declaration + +``` +public InteractableFacade Facade { get; protected set; } +``` + +#### GrabbingInteractors + +A collection of Interactors that are currently grabbing the Interactable. + +##### Declaration + +``` +public IReadOnlyList GrabbingInteractors { get; } +``` + +#### GrabProvider + +The Grab Provider setup. + +##### Declaration + +``` +public GrabInteractableInteractorProvider GrabProvider { get; protected set; } +``` + +#### GrabProviderOptions + +The potential options for the [GrabProvider]. + +##### Declaration + +``` +public GrabInteractableInteractorProvider[] GrabProviderOptions { get; protected set; } +``` + +#### GrabReceiver + +The Grab Receiver setup. + +##### Declaration + +``` +public GrabInteractableReceiver GrabReceiver { get; protected set; } +``` + +#### IsGrabTypeToggle + +Determines if the grab type is set to toggle. + +##### Declaration + +``` +public bool IsGrabTypeToggle { get; } +``` + +#### PrimaryAction + +The action to perform when grabbing the interactable for the first time. + +##### Declaration + +``` +public GrabInteractableAction PrimaryAction { get; set; } +``` + +#### SecondaryAction + +The action to perform when grabbing the interactable for the second time. + +##### Declaration + +``` +public GrabInteractableAction SecondaryAction { get; set; } +``` + +### Methods + +#### ConfigureActionContainer(GrabInteractableAction) + +Configures the action containers. + +##### Declaration + +``` +protected virtual void ConfigureActionContainer(GrabInteractableAction action) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [GrabInteractableAction] | action | The action to configure. | + +#### ConfigureContainer() + +Sets the consumer containers to the current active container. + +##### Declaration + +``` +public virtual void ConfigureContainer() +``` + +#### Grab(InteractorFacade) + +Attempt to grab the Interactable to the given Interactor. + +##### Declaration + +``` +public virtual void Grab(InteractorFacade interactor) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractorFacade] | interactor | The Interactor to attach the Interactable to. | + +#### LinkReceiverToProvider() + +Links the Grab Receiver to the Grab Provider. + +##### Declaration + +``` +protected virtual void LinkReceiverToProvider() +``` + +#### LinkToPrimaryAction() + +Links the Grab Receiver and Grab Provider to the Primary Grab Action. + +##### Declaration + +``` +protected virtual void LinkToPrimaryAction() +``` + +#### LinkToSecondaryAction() + +Links the Grab Receiver and Grab Provider to the Secondary Grab Action. + +##### Declaration + +``` +protected virtual void LinkToSecondaryAction() +``` + +#### NotifyGrab(GameObject) + +Notifies that the Interactable is being grabbed. + +##### Declaration + +``` +public virtual void NotifyGrab(GameObject data) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| GameObject | data | The grabbing object. | + +#### NotifyUngrab(GameObject) + +Notifies that the Interactable is no longer being grabbed. + +##### Declaration + +``` +public virtual void NotifyUngrab(GameObject data) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| GameObject | data | The previous grabbing object. | + +#### OnAfterPrimaryActionChange() + +Called after [PrimaryAction] has been changed. + +##### Declaration + +``` +protected virtual void OnAfterPrimaryActionChange() +``` + +#### OnAfterSecondaryActionChange() + +Called after [SecondaryAction] has been changed. + +##### Declaration + +``` +protected virtual void OnAfterSecondaryActionChange() +``` + +#### OnBeforePrimaryActionChange() + +Called after [PrimaryAction] has been changed. + +##### Declaration + +``` +protected virtual void OnBeforePrimaryActionChange() +``` + +#### OnBeforeSecondaryActionChange() + +Called after [SecondaryAction] has been changed. + +##### Declaration + +``` +protected virtual void OnBeforeSecondaryActionChange() +``` + +#### OnDisable() + +##### Declaration + +``` +protected virtual void OnDisable() +``` + +#### OnEnable() + +##### Declaration + +``` +protected virtual void OnEnable() +``` + +#### SetGrabProvider(Int32) + +Sets the [GrabProvider] to the index of the [GrabProviderOptions] collection. + +##### Declaration + +``` +public virtual void SetGrabProvider(int providerIndex) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| System.Int32 | providerIndex | The index of the [GrabProviderOptions] to set the [GrabProvider] to. | + +#### Ungrab(Int32) + +Attempt to ungrab the Interactable. + +##### Declaration + +``` +public virtual void Ungrab(int sequenceIndex = 0) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| System.Int32 | sequenceIndex | The Interactor sequence index to ungrab from. | + +#### Ungrab(InteractorFacade) + +Attempts to ungrab the Interactable. + +##### Declaration + +``` +public virtual void Ungrab(InteractorFacade interactor) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractorFacade] | interactor | The Interactor to ungrab from. | + +#### UnlinkReceiverToProvider() + +Unlinks the Grab Receiver to the Grab Provider. + +##### Declaration + +``` +protected virtual void UnlinkReceiverToProvider() +``` + +#### UnlinkToPrimaryAction() + +Unlinks the Grab Receiver and Grab Provider to the Primary Grab Action. + +##### Declaration + +``` +protected virtual void UnlinkToPrimaryAction() +``` + +#### UnlinkToSecondaryAction() + +Unlinks the Grab Receiver and Grab Provider to the Secondary Grab Action. + +##### Declaration + +``` +protected virtual void UnlinkToSecondaryAction() +``` + +[Tilia.Interactions.Interactables.Interactables.Grab]: README.md +[InteractableFacade]: ../../Interactables/InteractableFacade.md +[InteractorFacade]: ../../Interactors/InteractorFacade.md +[GrabInteractableInteractorProvider]: Provider/GrabInteractableInteractorProvider.md +[GrabProvider]: GrabInteractableConfigurator.md#GrabProvider +[GrabInteractableReceiver]: Receiver/GrabInteractableReceiver.md +[GrabInteractableAction]: Action/GrabInteractableAction.md +[PrimaryAction]: GrabInteractableConfigurator.md#PrimaryAction +[SecondaryAction]: GrabInteractableConfigurator.md#SecondaryAction +[PrimaryAction]: GrabInteractableConfigurator.md#PrimaryAction +[SecondaryAction]: GrabInteractableConfigurator.md#SecondaryAction +[GrabProvider]: GrabInteractableConfigurator.md#GrabProvider +[GrabProviderOptions]: GrabInteractableConfigurator.md#GrabProviderOptions +[GrabProviderOptions]: GrabInteractableConfigurator.md#GrabProviderOptions +[GrabProvider]: GrabInteractableConfigurator.md#GrabProvider +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Properties]: #Properties +[ActionTypes]: #ActionTypes +[Facade]: #Facade +[GrabbingInteractors]: #GrabbingInteractors +[GrabProvider]: #GrabProvider +[GrabProviderOptions]: #GrabProviderOptions +[GrabReceiver]: #GrabReceiver +[IsGrabTypeToggle]: #IsGrabTypeToggle +[PrimaryAction]: #PrimaryAction +[SecondaryAction]: #SecondaryAction +[Methods]: #Methods +[ConfigureActionContainer(GrabInteractableAction)]: #ConfigureActionContainerGrabInteractableAction +[ConfigureContainer()]: #ConfigureContainer +[Grab(InteractorFacade)]: #GrabInteractorFacade +[LinkReceiverToProvider()]: #LinkReceiverToProvider +[LinkToPrimaryAction()]: #LinkToPrimaryAction +[LinkToSecondaryAction()]: #LinkToSecondaryAction +[NotifyGrab(GameObject)]: #NotifyGrabGameObject +[NotifyUngrab(GameObject)]: #NotifyUngrabGameObject +[OnAfterPrimaryActionChange()]: #OnAfterPrimaryActionChange +[OnAfterSecondaryActionChange()]: #OnAfterSecondaryActionChange +[OnBeforePrimaryActionChange()]: #OnBeforePrimaryActionChange +[OnBeforeSecondaryActionChange()]: #OnBeforeSecondaryActionChange +[OnDisable()]: #OnDisable +[OnEnable()]: #OnEnable +[SetGrabProvider(Int32)]: #SetGrabProviderInt32 +[Ungrab(Int32)]: #UngrabInt32 +[Ungrab(InteractorFacade)]: #UngrabInteractorFacade +[UnlinkReceiverToProvider()]: #UnlinkReceiverToProvider +[UnlinkToPrimaryAction()]: #UnlinkToPrimaryAction +[UnlinkToSecondaryAction()]: #UnlinkToSecondaryAction diff --git a/Documentation/API/Interactables/Grab/GrabInteractableConfigurator.md.meta b/Documentation/API/Interactables/Grab/GrabInteractableConfigurator.md.meta new file mode 100644 index 0000000..0b9a197 --- /dev/null +++ b/Documentation/API/Interactables/Grab/GrabInteractableConfigurator.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 66bff47644c6e4246876772286199198 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Grab/InteractableGrabStateEmitter.UnityEvent.md b/Documentation/API/Interactables/Grab/InteractableGrabStateEmitter.UnityEvent.md new file mode 100644 index 0000000..14abaae --- /dev/null +++ b/Documentation/API/Interactables/Grab/InteractableGrabStateEmitter.UnityEvent.md @@ -0,0 +1,20 @@ +# Class InteractableGrabStateEmitter.UnityEvent + +Defines the event with the specified [InteractableFacade]. + +##### Inheritance + +* System.Object +* InteractableGrabStateEmitter.UnityEvent + +###### **Namespace**: [Tilia.Interactions.Interactables.Interactables.Grab] + +##### Syntax + +``` +[Serializable] +public class UnityEvent : InteractableGrabStateEmitter.UnityEvent +``` + +[InteractableFacade]: ../../Interactables/InteractableFacade.md +[Tilia.Interactions.Interactables.Interactables.Grab]: README.md diff --git a/Documentation/API/Interactables/Grab/InteractableGrabStateEmitter.UnityEvent.md.meta b/Documentation/API/Interactables/Grab/InteractableGrabStateEmitter.UnityEvent.md.meta new file mode 100644 index 0000000..5354982 --- /dev/null +++ b/Documentation/API/Interactables/Grab/InteractableGrabStateEmitter.UnityEvent.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bce851dd611fdeb4fbcbcfa4e3bec32a +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Grab/InteractableGrabStateEmitter.md b/Documentation/API/Interactables/Grab/InteractableGrabStateEmitter.md new file mode 100644 index 0000000..cf012ee --- /dev/null +++ b/Documentation/API/Interactables/Grab/InteractableGrabStateEmitter.md @@ -0,0 +1,149 @@ +# Class InteractableGrabStateEmitter + +Emits an appropriate event based on the state of whether an [InteractableFacade] is currently being grabbed or not. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Fields] + * [Grabbed] + * [NotGrabbed] +* [Methods] + * [DoIsGrabbed(GameObject)] + * [DoIsGrabbed(InteractableFacade)] + * [IsGrabbed(GameObject)] + * [IsGrabbed(InteractableFacade)] + +## Details + +##### Inheritance + +* System.Object +* InteractableGrabStateEmitter + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactables.Grab] + +##### Syntax + +``` +public class InteractableGrabStateEmitter : MonoBehaviour +``` + +### Fields + +#### Grabbed + +Emitted if the [InteractableFacade] is grabbed. + +##### Declaration + +``` +public InteractableGrabStateEmitter.UnityEvent Grabbed +``` + +#### NotGrabbed + +Emitted if the [InteractableFacade] is not grabbed. + +##### Declaration + +``` +public InteractableGrabStateEmitter.UnityEvent NotGrabbed +``` + +### Methods + +#### DoIsGrabbed(GameObject) + +Determines if the given GameObject's [InteractableFacade] is currently grabbed by a valid Interactor. + +##### Declaration + +``` +public virtual void DoIsGrabbed(GameObject interactable) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| GameObject | interactable | The GameObject to check. | + +#### DoIsGrabbed(InteractableFacade) + +Determines if the given Interactable is currently grabbed by a valid Interactor. + +##### Declaration + +``` +public virtual void DoIsGrabbed(InteractableFacade interactable) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractableFacade] | interactable | The Interactable to check. | + +#### IsGrabbed(GameObject) + +Determines if the given GameObject's [InteractableFacade] is currently grabbed by a valid Interactor. + +##### Declaration + +``` +public virtual bool IsGrabbed(GameObject interactable) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| GameObject | interactable | The GameObject to check. | + +##### Returns + +| Type | Description | +| --- | --- | +| System.Boolean | Whether the Interactable is being grabbed. | + +#### IsGrabbed(InteractableFacade) + +Determines if the given Interactable is currently grabbed by a valid Interactor. + +##### Declaration + +``` +public virtual bool IsGrabbed(InteractableFacade interactable) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractableFacade] | interactable | The Interactable to check. | + +##### Returns + +| Type | Description | +| --- | --- | +| System.Boolean | Whether the Interactable is being grabbed. | + +[InteractableFacade]: ../../Interactables/InteractableFacade.md +[Tilia.Interactions.Interactables.Interactables.Grab]: README.md +[InteractableGrabStateEmitter.UnityEvent]: InteractableGrabStateEmitter.UnityEvent.md +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Fields]: #Fields +[Grabbed]: #Grabbed +[NotGrabbed]: #NotGrabbed +[Methods]: #Methods +[DoIsGrabbed(GameObject)]: #DoIsGrabbedGameObject +[DoIsGrabbed(InteractableFacade)]: #DoIsGrabbedInteractableFacade +[IsGrabbed(GameObject)]: #IsGrabbedGameObject +[IsGrabbed(InteractableFacade)]: #IsGrabbedInteractableFacade diff --git a/Documentation/API/Interactables/Grab/InteractableGrabStateEmitter.md.meta b/Documentation/API/Interactables/Grab/InteractableGrabStateEmitter.md.meta new file mode 100644 index 0000000..34bb4f2 --- /dev/null +++ b/Documentation/API/Interactables/Grab/InteractableGrabStateEmitter.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6418ec1440f3f10488fc313b98990f21 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Grab/InteractableGrabStateRegistrar.UnityEvent.md b/Documentation/API/Interactables/Grab/InteractableGrabStateRegistrar.UnityEvent.md new file mode 100644 index 0000000..caa20e1 --- /dev/null +++ b/Documentation/API/Interactables/Grab/InteractableGrabStateRegistrar.UnityEvent.md @@ -0,0 +1,20 @@ +# Class InteractableGrabStateRegistrar.UnityEvent + +Defines the event with the specified [InteractableFacade]. + +##### Inheritance + +* System.Object +* InteractableGrabStateRegistrar.UnityEvent + +###### **Namespace**: [Tilia.Interactions.Interactables.Interactables.Grab] + +##### Syntax + +``` +[Serializable] +public class UnityEvent : InteractableGrabStateRegistrar.UnityEvent +``` + +[InteractableFacade]: ../../Interactables/InteractableFacade.md +[Tilia.Interactions.Interactables.Interactables.Grab]: README.md diff --git a/Documentation/API/Interactables/Grab/InteractableGrabStateRegistrar.UnityEvent.md.meta b/Documentation/API/Interactables/Grab/InteractableGrabStateRegistrar.UnityEvent.md.meta new file mode 100644 index 0000000..cb3e058 --- /dev/null +++ b/Documentation/API/Interactables/Grab/InteractableGrabStateRegistrar.UnityEvent.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bea5c3a223d726f488f04e8c595aafa1 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Grab/InteractableGrabStateRegistrar.md b/Documentation/API/Interactables/Grab/InteractableGrabStateRegistrar.md new file mode 100644 index 0000000..6a8a407 --- /dev/null +++ b/Documentation/API/Interactables/Grab/InteractableGrabStateRegistrar.md @@ -0,0 +1,331 @@ +# Class InteractableGrabStateRegistrar + +Registers listeners to the initial grab and final ungrab states of an [InteractableFacade] and emits the [InteractableFacade] as the event payload. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Fields] + * [Grabbed] + * [Ungrabbed] + * [unsubscribeGrabActions] + * [unsubscribeUngrabActions] +* [Properties] + * [UnsubscribeOnDisable] +* [Methods] + * [InteractableGrabbed(InteractableFacade)] + * [InteractableUngrabbed(InteractableFacade)] + * [OnDisable()] + * [RegisterGrabbed(GameObject)] + * [RegisterGrabbed(InteractableFacade)] + * [RegisterUngrabbed(GameObject)] + * [RegisterUngrabbed(InteractableFacade)] + * [UnregisterAll()] + * [UnregisterAllGrabbed()] + * [UnregisterAllUngrabbed()] + * [UnregisterGrabbed(GameObject)] + * [UnregisterGrabbed(InteractableFacade)] + * [UnregisterUngrabbed(GameObject)] + * [UnregisterUngrabbed(InteractableFacade)] + +## Details + +##### Inheritance + +* System.Object +* InteractableGrabStateRegistrar + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactables.Grab] + +##### Syntax + +``` +public class InteractableGrabStateRegistrar : MonoBehaviour +``` + +### Fields + +#### Grabbed + +Emitted when the [InteractableFacade] is grabbed. + +##### Declaration + +``` +public InteractableGrabStateRegistrar.UnityEvent Grabbed +``` + +#### Ungrabbed + +Emitted when the [InteractableFacade] is ungrabbed. + +##### Declaration + +``` +public InteractableGrabStateRegistrar.UnityEvent Ungrabbed +``` + +#### unsubscribeGrabActions + +Actions that unsubscribe the added grab event listeners. + +##### Declaration + +``` +protected readonly Dictionary unsubscribeGrabActions +``` + +#### unsubscribeUngrabActions + +Actions that unsubscribe the added ungrab event listeners. + +##### Declaration + +``` +protected readonly Dictionary unsubscribeUngrabActions +``` + +### Properties + +#### UnsubscribeOnDisable + +Determines whether to unsubscribe all registered listeners when the component is disabled. + +##### Declaration + +``` +public bool UnsubscribeOnDisable { get; set; } +``` + +### Methods + +#### InteractableGrabbed(InteractableFacade) + +Processes the grabbed event on the given Interactable. + +##### Declaration + +``` +protected virtual void InteractableGrabbed(InteractableFacade interactable) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractableFacade] | interactable | The Interactable to process the grab event for. | + +#### InteractableUngrabbed(InteractableFacade) + +Processes the ungrabbed event on the given Interactable. + +##### Declaration + +``` +protected virtual void InteractableUngrabbed(InteractableFacade interactable) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractableFacade] | interactable | The Interactable to process the ungrab event for. | + +#### OnDisable() + +##### Declaration + +``` +protected virtual void OnDisable() +``` + +#### RegisterGrabbed(GameObject) + +Registers a listener on the given GameObject's [InteractableFacade] Grabbed event. + +##### Declaration + +``` +public virtual void RegisterGrabbed(GameObject grabbable) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| GameObject | grabbable | The GameObject to get the [InteractableFacade] from to register the grab event on. | + +#### RegisterGrabbed(InteractableFacade) + +Registers a listener on the given [InteractableFacade] Grabbed event. + +##### Declaration + +``` +public virtual void RegisterGrabbed(InteractableFacade grabbable) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractableFacade] | grabbable | The interactable to register the grab event on. | + +#### RegisterUngrabbed(GameObject) + +Registers a listener on the given GameObject's [InteractableFacade] Ungrabbed event. + +##### Declaration + +``` +public virtual void RegisterUngrabbed(GameObject ungrabbable) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| GameObject | ungrabbable | The GameObject to get the [InteractableFacade] from to register the ungrab event on. | + +#### RegisterUngrabbed(InteractableFacade) + +Registers a listener on the given [InteractableFacade] Ungrabbed event. + +##### Declaration + +``` +public virtual void RegisterUngrabbed(InteractableFacade ungrabbable) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractableFacade] | ungrabbable | The interactable to register the ungrab event on. | + +#### UnregisterAll() + +Unregisters all listeners for all events. + +##### Declaration + +``` +public virtual void UnregisterAll() +``` + +#### UnregisterAllGrabbed() + +Unregisters all listeners for all grabbed events. + +##### Declaration + +``` +public virtual void UnregisterAllGrabbed() +``` + +#### UnregisterAllUngrabbed() + +Unregisters all listeners for all ungrabbed events. + +##### Declaration + +``` +public virtual void UnregisterAllUngrabbed() +``` + +#### UnregisterGrabbed(GameObject) + +Unregisters a listener from the given GameObject's [InteractableFacade] Grabbed event. + +##### Declaration + +``` +public virtual void UnregisterGrabbed(GameObject grabbable) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| GameObject | grabbable | The GameObject to get the [InteractableFacade] from to unregister the grab event from. | + +#### UnregisterGrabbed(InteractableFacade) + +Unregisters a listener from the given [InteractableFacade] Grabbed event. + +##### Declaration + +``` +public virtual void UnregisterGrabbed(InteractableFacade grabbable) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractableFacade] | grabbable | The interactable to unregister the grab event from. | + +#### UnregisterUngrabbed(GameObject) + +Unregisters a listener from the given GameObject's [InteractableFacade] Ungrabbed event. + +##### Declaration + +``` +public virtual void UnregisterUngrabbed(GameObject ungrabbable) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| GameObject | ungrabbable | The GameObject to get the [InteractableFacade] from to unregister the ungrab event from. | + +#### UnregisterUngrabbed(InteractableFacade) + +Unregisters a listener from the given [InteractableFacade] Ungrabbed event. + +##### Declaration + +``` +public virtual void UnregisterUngrabbed(InteractableFacade ungrabbable) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractableFacade] | ungrabbable | The interactable to unregister the ungrab event from. | + +[InteractableFacade]: ../../Interactables/InteractableFacade.md +[Tilia.Interactions.Interactables.Interactables.Grab]: README.md +[InteractableGrabStateRegistrar.UnityEvent]: InteractableGrabStateRegistrar.UnityEvent.md +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Fields]: #Fields +[Grabbed]: #Grabbed +[Ungrabbed]: #Ungrabbed +[unsubscribeGrabActions]: #unsubscribeGrabActions +[unsubscribeUngrabActions]: #unsubscribeUngrabActions +[Properties]: #Properties +[UnsubscribeOnDisable]: #UnsubscribeOnDisable +[Methods]: #Methods +[InteractableGrabbed(InteractableFacade)]: #InteractableGrabbedInteractableFacade +[InteractableUngrabbed(InteractableFacade)]: #InteractableUngrabbedInteractableFacade +[OnDisable()]: #OnDisable +[RegisterGrabbed(GameObject)]: #RegisterGrabbedGameObject +[RegisterGrabbed(InteractableFacade)]: #RegisterGrabbedInteractableFacade +[RegisterUngrabbed(GameObject)]: #RegisterUngrabbedGameObject +[RegisterUngrabbed(InteractableFacade)]: #RegisterUngrabbedInteractableFacade +[UnregisterAll()]: #UnregisterAll +[UnregisterAllGrabbed()]: #UnregisterAllGrabbed +[UnregisterAllUngrabbed()]: #UnregisterAllUngrabbed +[UnregisterGrabbed(GameObject)]: #UnregisterGrabbedGameObject +[UnregisterGrabbed(InteractableFacade)]: #UnregisterGrabbedInteractableFacade +[UnregisterUngrabbed(GameObject)]: #UnregisterUngrabbedGameObject +[UnregisterUngrabbed(InteractableFacade)]: #UnregisterUngrabbedInteractableFacade diff --git a/Documentation/API/Interactables/Grab/InteractableGrabStateRegistrar.md.meta b/Documentation/API/Interactables/Grab/InteractableGrabStateRegistrar.md.meta new file mode 100644 index 0000000..59f2aca --- /dev/null +++ b/Documentation/API/Interactables/Grab/InteractableGrabStateRegistrar.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b5117f1c49e165e4b9dfb1e50da0b2b2 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Grab/Provider.meta b/Documentation/API/Interactables/Grab/Provider.meta new file mode 100644 index 0000000..a7a6a72 --- /dev/null +++ b/Documentation/API/Interactables/Grab/Provider.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: da93e2a70f9c88b48b4b5dd7b244a9b3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Grab/Provider/GrabInteractableInteractorProvider.md b/Documentation/API/Interactables/Grab/Provider/GrabInteractableInteractorProvider.md new file mode 100644 index 0000000..4e502a5 --- /dev/null +++ b/Documentation/API/Interactables/Grab/Provider/GrabInteractableInteractorProvider.md @@ -0,0 +1,198 @@ +# Class GrabInteractableInteractorProvider + +Processes a received grab event and passes it over to the appropriate grab actions. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Fields] + * [grabbingInteractors] +* [Properties] + * [GrabbingInteractors] + * [InputGrabReceived] + * [InputUngrabReceived] + * [OutputPrimaryGrabAction] + * [OutputPrimaryGrabSetupOnSecondaryAction] + * [OutputPrimaryUngrabAction] + * [OutputPrimaryUngrabResetOnSecondaryAction] + * [OutputSecondaryGrabAction] + * [OutputSecondaryUngrabAction] +* [Methods] + * [GetGrabbingInteractors(IEnumerable)] + +## Details + +##### Inheritance + +* System.Object +* GrabInteractableInteractorProvider +* [GrabInteractableListInteractorProvider] +* [GrabInteractableStackInteractorProvider] + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactables.Grab.Provider] + +##### Syntax + +``` +public abstract class GrabInteractableInteractorProvider : MonoBehaviour +``` + +### Fields + +#### grabbingInteractors + +A reusable collection to hold the returned grabbing interactors. + +##### Declaration + +``` +protected readonly List grabbingInteractors +``` + +### Properties + +#### GrabbingInteractors + +Gets the available grabbing Interactors from the provider. + +##### Declaration + +``` +public abstract IReadOnlyList GrabbingInteractors { get; } +``` + +##### Property Value + +| Type | Description | +| --- | --- | +| System.Collections.Generic.IReadOnlyList<[InteractorFacade]\> | A collection of Interactors that are currently grabbing the Interactable. | + +#### InputGrabReceived + +The input GameObjectEventProxyEmitter for the grab action. + +##### Declaration + +``` +public GameObjectEventProxyEmitter InputGrabReceived { get; protected set; } +``` + +#### InputUngrabReceived + +The input GameObjectEventProxyEmitter for the ungrab action. + +##### Declaration + +``` +public GameObjectEventProxyEmitter InputUngrabReceived { get; protected set; } +``` + +#### OutputPrimaryGrabAction + +The output GameObjectEventProxyEmitter for the primary grab action. + +##### Declaration + +``` +public GameObjectEventProxyEmitter OutputPrimaryGrabAction { get; protected set; } +``` + +#### OutputPrimaryGrabSetupOnSecondaryAction + +The output GameObjectEventProxyEmitter for the primary grab setup on secondary action. + +##### Declaration + +``` +public GameObjectEventProxyEmitter OutputPrimaryGrabSetupOnSecondaryAction { get; protected set; } +``` + +#### OutputPrimaryUngrabAction + +The output GameObjectEventProxyEmitter for the primary ungrab action. + +##### Declaration + +``` +public GameObjectEventProxyEmitter OutputPrimaryUngrabAction { get; protected set; } +``` + +#### OutputPrimaryUngrabResetOnSecondaryAction + +The output GameObjectEventProxyEmitter for the primary ungrab reset on secondary action. + +##### Declaration + +``` +public GameObjectEventProxyEmitter OutputPrimaryUngrabResetOnSecondaryAction { get; protected set; } +``` + +#### OutputSecondaryGrabAction + +The output GameObjectEventProxyEmitter for the secondary grab action. + +##### Declaration + +``` +public GameObjectEventProxyEmitter OutputSecondaryGrabAction { get; protected set; } +``` + +#### OutputSecondaryUngrabAction + +The output GameObjectEventProxyEmitter for the Secondary ungrab action. + +##### Declaration + +``` +public GameObjectEventProxyEmitter OutputSecondaryUngrabAction { get; protected set; } +``` + +### Methods + +#### GetGrabbingInteractors(IEnumerable) + +Gets the Grabbing Interactors stored in the given collection. + +##### Declaration + +``` +protected virtual IReadOnlyList GetGrabbingInteractors(IEnumerable elements) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| System.Collections.Generic.IEnumerable | elements | The collection to retrieve the Grabbing Interactors from. | + +##### Returns + +| Type | Description | +| --- | --- | +| System.Collections.Generic.IReadOnlyList<[InteractorFacade]\> | A collection of Grabbing Interactors. | + +[GrabInteractableListInteractorProvider]: GrabInteractableListInteractorProvider.md +[GrabInteractableStackInteractorProvider]: GrabInteractableStackInteractorProvider.md +[Tilia.Interactions.Interactables.Interactables.Grab.Provider]: README.md +[InteractorFacade]: ../../../Interactors/InteractorFacade.md +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Fields]: #Fields +[grabbingInteractors]: #grabbingInteractors +[Properties]: #Properties +[GrabbingInteractors]: #GrabbingInteractors +[InputGrabReceived]: #InputGrabReceived +[InputUngrabReceived]: #InputUngrabReceived +[OutputPrimaryGrabAction]: #OutputPrimaryGrabAction +[OutputPrimaryGrabSetupOnSecondaryAction]: #OutputPrimaryGrabSetupOnSecondaryAction +[OutputPrimaryUngrabAction]: #OutputPrimaryUngrabAction +[OutputPrimaryUngrabResetOnSecondaryAction]: #OutputPrimaryUngrabResetOnSecondaryAction +[OutputSecondaryGrabAction]: #OutputSecondaryGrabAction +[OutputSecondaryUngrabAction]: #OutputSecondaryUngrabAction +[Methods]: #Methods +[GetGrabbingInteractors(IEnumerable)]: #GetGrabbingInteractorsIEnumerable diff --git a/Documentation/API/Interactables/Grab/Provider/GrabInteractableInteractorProvider.md.meta b/Documentation/API/Interactables/Grab/Provider/GrabInteractableInteractorProvider.md.meta new file mode 100644 index 0000000..6916940 --- /dev/null +++ b/Documentation/API/Interactables/Grab/Provider/GrabInteractableInteractorProvider.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f478b801c9d29b34693a0f6cccfb4ddb +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Grab/Provider/GrabInteractableListInteractorProvider.md b/Documentation/API/Interactables/Grab/Provider/GrabInteractableListInteractorProvider.md new file mode 100644 index 0000000..0df1551 --- /dev/null +++ b/Documentation/API/Interactables/Grab/Provider/GrabInteractableListInteractorProvider.md @@ -0,0 +1,97 @@ +# Class GrabInteractableListInteractorProvider + +Processes a received grab event into an Observable Set to handle a simplified grab process. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Properties] + * [EventList] + * [GrabbingInteractors] + +## Details + +##### Inheritance + +* System.Object +* [GrabInteractableInteractorProvider] +* GrabInteractableListInteractorProvider + +##### Inherited Members + +[GrabInteractableInteractorProvider.InputGrabReceived] + +[GrabInteractableInteractorProvider.InputUngrabReceived] + +[GrabInteractableInteractorProvider.OutputPrimaryGrabAction] + +[GrabInteractableInteractorProvider.OutputPrimaryGrabSetupOnSecondaryAction] + +[GrabInteractableInteractorProvider.OutputPrimaryUngrabAction] + +[GrabInteractableInteractorProvider.OutputPrimaryUngrabResetOnSecondaryAction] + +[GrabInteractableInteractorProvider.OutputSecondaryGrabAction] + +[GrabInteractableInteractorProvider.OutputSecondaryUngrabAction] + +[GrabInteractableInteractorProvider.grabbingInteractors] + +[GrabInteractableInteractorProvider.GetGrabbingInteractors(IEnumerable)] + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactables.Grab.Provider] + +##### Syntax + +``` +public class GrabInteractableListInteractorProvider : GrabInteractableInteractorProvider +``` + +### Properties + +#### EventList + +The set to get the current interactors from. + +##### Declaration + +``` +public GameObjectObservableList EventList { get; protected set; } +``` + +#### GrabbingInteractors + +##### Declaration + +``` +public override IReadOnlyList GrabbingInteractors { get; } +``` + +##### Overrides + +[GrabInteractableInteractorProvider.GrabbingInteractors] + +[GrabInteractableInteractorProvider]: GrabInteractableInteractorProvider.md +[GrabInteractableInteractorProvider.InputGrabReceived]: GrabInteractableInteractorProvider.md#Tilia_Interactions_Interactables_Interactables_Grab_Provider_GrabInteractableInteractorProvider_InputGrabReceived +[GrabInteractableInteractorProvider.InputUngrabReceived]: GrabInteractableInteractorProvider.md#Tilia_Interactions_Interactables_Interactables_Grab_Provider_GrabInteractableInteractorProvider_InputUngrabReceived +[GrabInteractableInteractorProvider.OutputPrimaryGrabAction]: GrabInteractableInteractorProvider.md#Tilia_Interactions_Interactables_Interactables_Grab_Provider_GrabInteractableInteractorProvider_OutputPrimaryGrabAction +[GrabInteractableInteractorProvider.OutputPrimaryGrabSetupOnSecondaryAction]: GrabInteractableInteractorProvider.md#Tilia_Interactions_Interactables_Interactables_Grab_Provider_GrabInteractableInteractorProvider_OutputPrimaryGrabSetupOnSecondaryAction +[GrabInteractableInteractorProvider.OutputPrimaryUngrabAction]: GrabInteractableInteractorProvider.md#Tilia_Interactions_Interactables_Interactables_Grab_Provider_GrabInteractableInteractorProvider_OutputPrimaryUngrabAction +[GrabInteractableInteractorProvider.OutputPrimaryUngrabResetOnSecondaryAction]: GrabInteractableInteractorProvider.md#Tilia_Interactions_Interactables_Interactables_Grab_Provider_GrabInteractableInteractorProvider_OutputPrimaryUngrabResetOnSecondaryAction +[GrabInteractableInteractorProvider.OutputSecondaryGrabAction]: GrabInteractableInteractorProvider.md#Tilia_Interactions_Interactables_Interactables_Grab_Provider_GrabInteractableInteractorProvider_OutputSecondaryGrabAction +[GrabInteractableInteractorProvider.OutputSecondaryUngrabAction]: GrabInteractableInteractorProvider.md#Tilia_Interactions_Interactables_Interactables_Grab_Provider_GrabInteractableInteractorProvider_OutputSecondaryUngrabAction +[GrabInteractableInteractorProvider.grabbingInteractors]: GrabInteractableInteractorProvider.md#Tilia_Interactions_Interactables_Interactables_Grab_Provider_GrabInteractableInteractorProvider_grabbingInteractors +[GrabInteractableInteractorProvider.GetGrabbingInteractors(IEnumerable)]: GrabInteractableInteractorProvider.md#Tilia_Interactions_Interactables_Interactables_Grab_Provider_GrabInteractableInteractorProvider_GetGrabbingInteractors_System_Collections_Generic_IEnumerable_GameObject__ +[Tilia.Interactions.Interactables.Interactables.Grab.Provider]: README.md +[InteractorFacade]: ../../../Interactors/InteractorFacade.md +[GrabInteractableInteractorProvider.GrabbingInteractors]: GrabInteractableInteractorProvider.md#Tilia_Interactions_Interactables_Interactables_Grab_Provider_GrabInteractableInteractorProvider_GrabbingInteractors +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Properties]: #Properties +[EventList]: #EventList +[GrabbingInteractors]: #GrabbingInteractors diff --git a/Documentation/API/Interactables/Grab/Provider/GrabInteractableListInteractorProvider.md.meta b/Documentation/API/Interactables/Grab/Provider/GrabInteractableListInteractorProvider.md.meta new file mode 100644 index 0000000..9653f9b --- /dev/null +++ b/Documentation/API/Interactables/Grab/Provider/GrabInteractableListInteractorProvider.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2fd44c6534945a24da902eaf12c9f64f +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Grab/Provider/GrabInteractableStackInteractorProvider.md b/Documentation/API/Interactables/Grab/Provider/GrabInteractableStackInteractorProvider.md new file mode 100644 index 0000000..b867e14 --- /dev/null +++ b/Documentation/API/Interactables/Grab/Provider/GrabInteractableStackInteractorProvider.md @@ -0,0 +1,97 @@ +# Class GrabInteractableStackInteractorProvider + +Processes a received grab event into an Observable Stack to handle multiple output options for each grab type. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Properties] + * [EventStack] + * [GrabbingInteractors] + +## Details + +##### Inheritance + +* System.Object +* [GrabInteractableInteractorProvider] +* GrabInteractableStackInteractorProvider + +##### Inherited Members + +[GrabInteractableInteractorProvider.InputGrabReceived] + +[GrabInteractableInteractorProvider.InputUngrabReceived] + +[GrabInteractableInteractorProvider.OutputPrimaryGrabAction] + +[GrabInteractableInteractorProvider.OutputPrimaryGrabSetupOnSecondaryAction] + +[GrabInteractableInteractorProvider.OutputPrimaryUngrabAction] + +[GrabInteractableInteractorProvider.OutputPrimaryUngrabResetOnSecondaryAction] + +[GrabInteractableInteractorProvider.OutputSecondaryGrabAction] + +[GrabInteractableInteractorProvider.OutputSecondaryUngrabAction] + +[GrabInteractableInteractorProvider.grabbingInteractors] + +[GrabInteractableInteractorProvider.GetGrabbingInteractors(IEnumerable)] + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactables.Grab.Provider] + +##### Syntax + +``` +public class GrabInteractableStackInteractorProvider : GrabInteractableInteractorProvider +``` + +### Properties + +#### EventStack + +The stack to get the current interactors from. + +##### Declaration + +``` +public GameObjectObservableStack EventStack { get; protected set; } +``` + +#### GrabbingInteractors + +##### Declaration + +``` +public override IReadOnlyList GrabbingInteractors { get; } +``` + +##### Overrides + +[GrabInteractableInteractorProvider.GrabbingInteractors] + +[GrabInteractableInteractorProvider]: GrabInteractableInteractorProvider.md +[GrabInteractableInteractorProvider.InputGrabReceived]: GrabInteractableInteractorProvider.md#Tilia_Interactions_Interactables_Interactables_Grab_Provider_GrabInteractableInteractorProvider_InputGrabReceived +[GrabInteractableInteractorProvider.InputUngrabReceived]: GrabInteractableInteractorProvider.md#Tilia_Interactions_Interactables_Interactables_Grab_Provider_GrabInteractableInteractorProvider_InputUngrabReceived +[GrabInteractableInteractorProvider.OutputPrimaryGrabAction]: GrabInteractableInteractorProvider.md#Tilia_Interactions_Interactables_Interactables_Grab_Provider_GrabInteractableInteractorProvider_OutputPrimaryGrabAction +[GrabInteractableInteractorProvider.OutputPrimaryGrabSetupOnSecondaryAction]: GrabInteractableInteractorProvider.md#Tilia_Interactions_Interactables_Interactables_Grab_Provider_GrabInteractableInteractorProvider_OutputPrimaryGrabSetupOnSecondaryAction +[GrabInteractableInteractorProvider.OutputPrimaryUngrabAction]: GrabInteractableInteractorProvider.md#Tilia_Interactions_Interactables_Interactables_Grab_Provider_GrabInteractableInteractorProvider_OutputPrimaryUngrabAction +[GrabInteractableInteractorProvider.OutputPrimaryUngrabResetOnSecondaryAction]: GrabInteractableInteractorProvider.md#Tilia_Interactions_Interactables_Interactables_Grab_Provider_GrabInteractableInteractorProvider_OutputPrimaryUngrabResetOnSecondaryAction +[GrabInteractableInteractorProvider.OutputSecondaryGrabAction]: GrabInteractableInteractorProvider.md#Tilia_Interactions_Interactables_Interactables_Grab_Provider_GrabInteractableInteractorProvider_OutputSecondaryGrabAction +[GrabInteractableInteractorProvider.OutputSecondaryUngrabAction]: GrabInteractableInteractorProvider.md#Tilia_Interactions_Interactables_Interactables_Grab_Provider_GrabInteractableInteractorProvider_OutputSecondaryUngrabAction +[GrabInteractableInteractorProvider.grabbingInteractors]: GrabInteractableInteractorProvider.md#Tilia_Interactions_Interactables_Interactables_Grab_Provider_GrabInteractableInteractorProvider_grabbingInteractors +[GrabInteractableInteractorProvider.GetGrabbingInteractors(IEnumerable)]: GrabInteractableInteractorProvider.md#Tilia_Interactions_Interactables_Interactables_Grab_Provider_GrabInteractableInteractorProvider_GetGrabbingInteractors_System_Collections_Generic_IEnumerable_GameObject__ +[Tilia.Interactions.Interactables.Interactables.Grab.Provider]: README.md +[InteractorFacade]: ../../../Interactors/InteractorFacade.md +[GrabInteractableInteractorProvider.GrabbingInteractors]: GrabInteractableInteractorProvider.md#Tilia_Interactions_Interactables_Interactables_Grab_Provider_GrabInteractableInteractorProvider_GrabbingInteractors +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Properties]: #Properties +[EventStack]: #EventStack +[GrabbingInteractors]: #GrabbingInteractors diff --git a/Documentation/API/Interactables/Grab/Provider/GrabInteractableStackInteractorProvider.md.meta b/Documentation/API/Interactables/Grab/Provider/GrabInteractableStackInteractorProvider.md.meta new file mode 100644 index 0000000..357d497 --- /dev/null +++ b/Documentation/API/Interactables/Grab/Provider/GrabInteractableStackInteractorProvider.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3547a2c2d1d88434dbd1ec09a935b07b +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Grab/Provider/README.md b/Documentation/API/Interactables/Grab/Provider/README.md new file mode 100644 index 0000000..c1d6ae6 --- /dev/null +++ b/Documentation/API/Interactables/Grab/Provider/README.md @@ -0,0 +1,19 @@ +# Namespace Tilia.Interactions.Interactables.Interactables.Grab.Provider + +### Classes + +#### [GrabInteractableInteractorProvider] + +Processes a received grab event and passes it over to the appropriate grab actions. + +#### [GrabInteractableListInteractorProvider] + +Processes a received grab event into an Observable Set to handle a simplified grab process. + +#### [GrabInteractableStackInteractorProvider] + +Processes a received grab event into an Observable Stack to handle multiple output options for each grab type. + +[GrabInteractableInteractorProvider]: GrabInteractableInteractorProvider.md +[GrabInteractableListInteractorProvider]: GrabInteractableListInteractorProvider.md +[GrabInteractableStackInteractorProvider]: GrabInteractableStackInteractorProvider.md diff --git a/Documentation/API/Interactables/Grab/Provider/README.md.meta b/Documentation/API/Interactables/Grab/Provider/README.md.meta new file mode 100644 index 0000000..67f0c4e --- /dev/null +++ b/Documentation/API/Interactables/Grab/Provider/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f48386ce8fcd1f343ab4ca31610e7eb6 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Grab/README.md b/Documentation/API/Interactables/Grab/README.md new file mode 100644 index 0000000..7454bb0 --- /dev/null +++ b/Documentation/API/Interactables/Grab/README.md @@ -0,0 +1,30 @@ +# Namespace Tilia.Interactions.Interactables.Interactables.Grab + +### Classes + +#### [GrabInteractableConfigurator] + +Sets up the Interactable Prefab grab settings based on the provided user settings. + +#### [InteractableGrabStateEmitter] + +Emits an appropriate event based on the state of whether an [InteractableFacade] is currently being grabbed or not. + +#### [InteractableGrabStateEmitter.UnityEvent] + +Defines the event with the specified [InteractableFacade]. + +#### [InteractableGrabStateRegistrar] + +Registers listeners to the initial grab and final ungrab states of an [InteractableFacade] and emits the [InteractableFacade] as the event payload. + +#### [InteractableGrabStateRegistrar.UnityEvent] + +Defines the event with the specified [InteractableFacade]. + +[GrabInteractableConfigurator]: GrabInteractableConfigurator.md +[InteractableGrabStateEmitter]: InteractableGrabStateEmitter.md +[InteractableFacade]: ../../Interactables/InteractableFacade.md +[InteractableGrabStateEmitter.UnityEvent]: InteractableGrabStateEmitter.UnityEvent.md +[InteractableGrabStateRegistrar]: InteractableGrabStateRegistrar.md +[InteractableGrabStateRegistrar.UnityEvent]: InteractableGrabStateRegistrar.UnityEvent.md diff --git a/Documentation/API/Interactables/Grab/README.md.meta b/Documentation/API/Interactables/Grab/README.md.meta new file mode 100644 index 0000000..52ce3f6 --- /dev/null +++ b/Documentation/API/Interactables/Grab/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 00b30b2f7d5cc3843b34ff85352fb00b +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Grab/Receiver.meta b/Documentation/API/Interactables/Grab/Receiver.meta new file mode 100644 index 0000000..3ef2007 --- /dev/null +++ b/Documentation/API/Interactables/Grab/Receiver.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8a25ee818de20794983bb611e82687e4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Grab/Receiver/GrabInteractableReceiver.ActiveType.md b/Documentation/API/Interactables/Grab/Receiver/GrabInteractableReceiver.ActiveType.md new file mode 100644 index 0000000..adb575b --- /dev/null +++ b/Documentation/API/Interactables/Grab/Receiver/GrabInteractableReceiver.ActiveType.md @@ -0,0 +1,35 @@ +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Fields] + +## Details + +# Enum GrabInteractableReceiver.ActiveType + +The way in which the grab is kept active. + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactables.Grab.Receiver] + +##### Syntax + +``` +public enum ActiveType +``` + +### Fields + +| Name | Description | +| --- | --- | +| HoldTillRelease | The grab will occur when the button is held down and will ungrab when the button is released. | +| Toggle | The grab will occur on the first press of the button and stay grabbed until a second press of the button. | + +[Tilia.Interactions.Interactables.Interactables.Grab.Receiver]: README.md +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Fields]: #Fields diff --git a/Documentation/API/Interactables/Grab/Receiver/GrabInteractableReceiver.ActiveType.md.meta b/Documentation/API/Interactables/Grab/Receiver/GrabInteractableReceiver.ActiveType.md.meta new file mode 100644 index 0000000..008d270 --- /dev/null +++ b/Documentation/API/Interactables/Grab/Receiver/GrabInteractableReceiver.ActiveType.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4723f91ff0c6dc64ba4641b942e65763 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Grab/Receiver/GrabInteractableReceiver.md b/Documentation/API/Interactables/Grab/Receiver/GrabInteractableReceiver.md new file mode 100644 index 0000000..101eec8 --- /dev/null +++ b/Documentation/API/Interactables/Grab/Receiver/GrabInteractableReceiver.md @@ -0,0 +1,237 @@ +# Class GrabInteractableReceiver + +Handles the way in which a grab event from an Interactor is received and processed by the Interactable. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Properties] + * [GrabConsumer] + * [GrabType] + * [GrabValidity] + * [OutputActiveCollisionConsumer] + * [OutputGrabAction] + * [OutputUngrabAction] + * [OutputUngrabOnUntouchAction] + * [StartStateGrab] + * [StopStateGrab] + * [ToggleGrab] + * [ToggleList] + * [UngrabConsumer] +* [Methods] + * [ConfigureConsumerContainers(GameObject)] + * [ConfigureGrabType()] + * [OnAfterGrabTypeChange()] + * [OnEnable()] + +## Details + +##### Inheritance + +* System.Object +* GrabInteractableReceiver + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactables.Grab.Receiver] + +##### Syntax + +``` +public class GrabInteractableReceiver : MonoBehaviour +``` + +### Properties + +#### GrabConsumer + +The ActiveCollisionConsumer that listens for the grab payload. + +##### Declaration + +``` +public ActiveCollisionConsumer GrabConsumer { get; protected set; } +``` + +#### GrabType + +The mechanism of how to keep the grab action active. + +##### Declaration + +``` +public GrabInteractableReceiver.ActiveType GrabType { get; set; } +``` + +#### GrabValidity + +The GameObjectEventProxyEmitter used to determine the grab validity. + +##### Declaration + +``` +public GameObjectEventProxyEmitter GrabValidity { get; set; } +``` + +#### OutputActiveCollisionConsumer + +The output ActiveCollisionConsumerEventProxyEmitter for the grab action. + +##### Declaration + +``` +public ActiveCollisionConsumerEventProxyEmitter OutputActiveCollisionConsumer { get; protected set; } +``` + +#### OutputGrabAction + +The output GameObjectEventProxyEmitter for the grab action. + +##### Declaration + +``` +public GameObjectEventProxyEmitter OutputGrabAction { get; protected set; } +``` + +#### OutputUngrabAction + +The output GameObjectEventProxyEmitter for the ungrab action. + +##### Declaration + +``` +public GameObjectEventProxyEmitter OutputUngrabAction { get; protected set; } +``` + +#### OutputUngrabOnUntouchAction + +The output GameObjectEventProxyEmitter for the ungrab on untouch action. + +##### Declaration + +``` +public GameObjectEventProxyEmitter OutputUngrabOnUntouchAction { get; protected set; } +``` + +#### StartStateGrab + +The GameObject containing the logic for starting HoldTillRelease grabbing. + +##### Declaration + +``` +public GameObject StartStateGrab { get; protected set; } +``` + +#### StopStateGrab + +The GameObject containing the logic for ending HoldTillRelease grabbing. + +##### Declaration + +``` +public GameObject StopStateGrab { get; protected set; } +``` + +#### ToggleGrab + +The GameObject containing the logic for starting and ending Toggle grabbing. + +##### Declaration + +``` +public GameObject ToggleGrab { get; protected set; } +``` + +#### ToggleList + +The GameObjectObservableSet containing the logic for starting and ending Toggle grabbing. + +##### Declaration + +``` +public GameObjectObservableList ToggleList { get; protected set; } +``` + +#### UngrabConsumer + +The ActiveCollisionConsumer that listens for the ungrab payload. + +##### Declaration + +``` +public ActiveCollisionConsumer UngrabConsumer { get; protected set; } +``` + +### Methods + +#### ConfigureConsumerContainers(GameObject) + +Sets the consumer containers to the current active container. + +##### Declaration + +``` +public virtual void ConfigureConsumerContainers(GameObject container) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| GameObject | container | The container for the consumer. | + +#### ConfigureGrabType() + +Configures the Grab Type to be used. + +##### Declaration + +``` +public virtual void ConfigureGrabType() +``` + +#### OnAfterGrabTypeChange() + +Called after [GrabType] has been changed. + +##### Declaration + +``` +protected virtual void OnAfterGrabTypeChange() +``` + +#### OnEnable() + +##### Declaration + +``` +protected virtual void OnEnable() +``` + +[Tilia.Interactions.Interactables.Interactables.Grab.Receiver]: README.md +[GrabInteractableReceiver.ActiveType]: GrabInteractableReceiver.ActiveType.md +[GrabType]: GrabInteractableReceiver.md#GrabType +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Properties]: #Properties +[GrabConsumer]: #GrabConsumer +[GrabType]: #GrabType +[GrabValidity]: #GrabValidity +[OutputActiveCollisionConsumer]: #OutputActiveCollisionConsumer +[OutputGrabAction]: #OutputGrabAction +[OutputUngrabAction]: #OutputUngrabAction +[OutputUngrabOnUntouchAction]: #OutputUngrabOnUntouchAction +[StartStateGrab]: #StartStateGrab +[StopStateGrab]: #StopStateGrab +[ToggleGrab]: #ToggleGrab +[ToggleList]: #ToggleList +[UngrabConsumer]: #UngrabConsumer +[Methods]: #Methods +[ConfigureConsumerContainers(GameObject)]: #ConfigureConsumerContainersGameObject +[ConfigureGrabType()]: #ConfigureGrabType +[OnAfterGrabTypeChange()]: #OnAfterGrabTypeChange +[OnEnable()]: #OnEnable diff --git a/Documentation/API/Interactables/Grab/Receiver/GrabInteractableReceiver.md.meta b/Documentation/API/Interactables/Grab/Receiver/GrabInteractableReceiver.md.meta new file mode 100644 index 0000000..2e5a61b --- /dev/null +++ b/Documentation/API/Interactables/Grab/Receiver/GrabInteractableReceiver.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5ff727b5a659e674ebf74c9e529b91ae +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Grab/Receiver/README.md b/Documentation/API/Interactables/Grab/Receiver/README.md new file mode 100644 index 0000000..55d9be5 --- /dev/null +++ b/Documentation/API/Interactables/Grab/Receiver/README.md @@ -0,0 +1,16 @@ +# Namespace Tilia.Interactions.Interactables.Interactables.Grab.Receiver + +### Classes + +#### [GrabInteractableReceiver] + +Handles the way in which a grab event from an Interactor is received and processed by the Interactable. + +### Enums + +#### [GrabInteractableReceiver.ActiveType] + +The way in which the grab is kept active. + +[GrabInteractableReceiver]: GrabInteractableReceiver.md +[GrabInteractableReceiver.ActiveType]: GrabInteractableReceiver.ActiveType.md diff --git a/Documentation/API/Interactables/Grab/Receiver/README.md.meta b/Documentation/API/Interactables/Grab/Receiver/README.md.meta new file mode 100644 index 0000000..7848566 --- /dev/null +++ b/Documentation/API/Interactables/Grab/Receiver/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9cb3aaf05cab78f4f9d4c86684709688 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/InteractableActionReceiverConfigurator.md b/Documentation/API/Interactables/InteractableActionReceiverConfigurator.md new file mode 100644 index 0000000..81cd314 --- /dev/null +++ b/Documentation/API/Interactables/InteractableActionReceiverConfigurator.md @@ -0,0 +1,330 @@ +# Class InteractableActionReceiverConfigurator + +Sets up the Interactor Action Receiver Prefab action settings based on the provided user settings. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Fields] + * [defaultParent] +* [Properties] + * [ActionRegistrar] + * [Facade] + * [ReceiveStartActionStringRule] + * [ReceiveStopActionStringRule] + * [StartActionConsumer] + * [StopActionConsumer] + * [TargetActions] +* [Methods] + * [ActivateOutputAction(Type)] + * [Awake()] + * [ClearPublisherSetup()] + * [IsValidPublisherElement(Object, Object, String)] + * [LinkInteractableToConsumers()] + * [OnDisable()] + * [OnEnable()] + * [ProcessPublisher(InteractorActionPublisherFacade, ref String, ref Type)] + * [ProcessPublisherList()] + * [RegisterInteractableEvents(InteractableFacade, InteractableActionReceiverFacade.InteractionState)] + * [SetupPublisherLinks(InteractorActionPublisherFacade)] + * [UnregisterInteractableEvents(InteractableFacade, InteractableActionReceiverFacade.InteractionState)] + +## Details + +##### Inheritance + +* System.Object +* InteractableActionReceiverConfigurator + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactables] + +##### Syntax + +``` +public class InteractableActionReceiverConfigurator : MonoBehaviour +``` + +### Fields + +#### defaultParent + +The parent Transform to child the [InteractableActionReceiverFacade] by default. + +##### Declaration + +``` +protected Transform defaultParent +``` + +### Properties + +#### ActionRegistrar + +The [ActionRegistrar] to create the appropriate action links. + +##### Declaration + +``` +public ActionRegistrar ActionRegistrar { get; protected set; } +``` + +#### Facade + +The public interface facade. + +##### Declaration + +``` +public InteractableActionReceiverFacade Facade { get; protected set; } +``` + +#### ReceiveStartActionStringRule + +The StringInListRule for the start action. + +##### Declaration + +``` +public StringInListRule ReceiveStartActionStringRule { get; protected set; } +``` + +#### ReceiveStopActionStringRule + +The StringInListRule for the stop action. + +##### Declaration + +``` +public StringInListRule ReceiveStopActionStringRule { get; protected set; } +``` + +#### StartActionConsumer + +The ActiveCollisionConsumer for checking valid start action. + +##### Declaration + +``` +public ActiveCollisionConsumer StartActionConsumer { get; protected set; } +``` + +#### StopActionConsumer + +The ActiveCollisionConsumer for checking valid stop action. + +##### Declaration + +``` +public ActiveCollisionConsumer StopActionConsumer { get; protected set; } +``` + +#### TargetActions + +The ActionObservableList that containts the Zinnia.Action.Action collection that can be linked to the InteractorActionFacade.SourceAction. + +##### Declaration + +``` +public ActionObservableList TargetActions { get; protected set; } +``` + +### Methods + +#### ActivateOutputAction(Type) + +Activates the correct output Zinnia.Action.Action based on the linked Zinnia.Action.Action from the publisher. + +##### Declaration + +``` +protected virtual void ActivateOutputAction(Type actionType) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| System.Type | actionType | The Zinnia.Action.Action type to activate. | + +#### Awake() + +##### Declaration + +``` +protected virtual void Awake() +``` + +#### ClearPublisherSetup() + +Clears the publisher setup. + +##### Declaration + +``` +protected virtual void ClearPublisherSetup() +``` + +#### IsValidPublisherElement(Object, Object, String) + +Determines if the given publisher element is valid. + +##### Declaration + +``` +protected virtual bool IsValidPublisherElement(object cachedValue, object currentValue, string exceptionMessage) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| System.Object | cachedValue | The cached value to check against. | +| System.Object | currentValue | The current value to check with. | +| System.String | exceptionMessage | The message to display in the exception if the element is not valid. | + +##### Returns + +| Type | Description | +| --- | --- | +| System.Boolean | Whether the given publisher element is valid. | + +#### LinkInteractableToConsumers() + +Links the InteractorActionFacade.SourceInteractor to the payload source containers on the start and stop publishers. + +##### Declaration + +``` +public virtual void LinkInteractableToConsumers() +``` + +#### OnDisable() + +##### Declaration + +``` +protected virtual void OnDisable() +``` + +#### OnEnable() + +##### Declaration + +``` +protected virtual void OnEnable() +``` + +#### ProcessPublisher(InteractorActionPublisherFacade, ref String, ref Type) + +Processes the given publisher data. + +##### Declaration + +``` +protected virtual void ProcessPublisher(InteractorActionPublisherFacade publisher, ref string previousIdentifier, ref Type previousActionType) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractorActionPublisherFacade] | publisher | The publisher to process. | +| System.String | previousIdentifier | The previous publisher's identifier. | +| System.Type | previousActionType | The previous publisher's action type. | + +#### ProcessPublisherList() + +Processes the publishers linked in the Facade.SourcePublishers collection. + +##### Declaration + +``` +public virtual void ProcessPublisherList() +``` + +#### RegisterInteractableEvents(InteractableFacade, InteractableActionReceiverFacade.InteractionState) + +Registers the activation/deactivation events for the interactable on the appropraite interactionState. + +##### Declaration + +``` +public virtual void RegisterInteractableEvents(InteractableFacade interactable, InteractableActionReceiverFacade.InteractionState interactionState) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractableFacade] | interactable | The interactable to register the events on. | +| [InteractableActionReceiverFacade.InteractionState] | interactionState | The interaction state of the interactable to register the events on. | + +#### SetupPublisherLinks(InteractorActionPublisherFacade) + +Sets up the links from the publisher to the receiver. + +##### Declaration + +``` +protected virtual void SetupPublisherLinks(InteractorActionPublisherFacade publisher) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractorActionPublisherFacade] | publisher | The publisher to link to. | + +#### UnregisterInteractableEvents(InteractableFacade, InteractableActionReceiverFacade.InteractionState) + +Unregisters the activation/deactivation events for the interactable from the appropraite interactionState. + +##### Declaration + +``` +public virtual void UnregisterInteractableEvents(InteractableFacade interactable, InteractableActionReceiverFacade.InteractionState interactionState) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractableFacade] | interactable | The interactable to unregister the events from. | +| [InteractableActionReceiverFacade.InteractionState] | interactionState | The interaction state of the interactable to unregister the events from. | + +[Tilia.Interactions.Interactables.Interactables]: README.md +[ActionRegistrar]: InteractableActionReceiverConfigurator.md#ActionRegistrar +[InteractableActionReceiverFacade]: InteractableActionReceiverFacade.md +[InteractorActionPublisherFacade]: ../Interactors/InteractorActionPublisherFacade.md +[InteractableFacade]: InteractableFacade.md +[InteractableActionReceiverFacade.InteractionState]: InteractableActionReceiverFacade.InteractionState.md +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Fields]: #Fields +[defaultParent]: #defaultParent +[Properties]: #Properties +[ActionRegistrar]: #ActionRegistrar +[Facade]: #Facade +[ReceiveStartActionStringRule]: #ReceiveStartActionStringRule +[ReceiveStopActionStringRule]: #ReceiveStopActionStringRule +[StartActionConsumer]: #StartActionConsumer +[StopActionConsumer]: #StopActionConsumer +[TargetActions]: #TargetActions +[Methods]: #Methods +[ActivateOutputAction(Type)]: #ActivateOutputActionType +[Awake()]: #Awake +[ClearPublisherSetup()]: #ClearPublisherSetup +[IsValidPublisherElement(Object, Object, String)]: #IsValidPublisherElementObject, Object, String +[LinkInteractableToConsumers()]: #LinkInteractableToConsumers +[OnDisable()]: #OnDisable +[OnEnable()]: #OnEnable +[ProcessPublisher(InteractorActionPublisherFacade, ref String, ref Type)]: #ProcessPublisherInteractorActionPublisherFacade, ref String, ref Type +[ProcessPublisherList()]: #ProcessPublisherList +[RegisterInteractableEvents(InteractableFacade, InteractableActionReceiverFacade.InteractionState)]: #RegisterInteractableEventsInteractableFacade, InteractableActionReceiverFacade.InteractionState +[SetupPublisherLinks(InteractorActionPublisherFacade)]: #SetupPublisherLinksInteractorActionPublisherFacade +[UnregisterInteractableEvents(InteractableFacade, InteractableActionReceiverFacade.InteractionState)]: #UnregisterInteractableEventsInteractableFacade, InteractableActionReceiverFacade.InteractionState diff --git a/Documentation/API/Interactables/InteractableActionReceiverConfigurator.md.meta b/Documentation/API/Interactables/InteractableActionReceiverConfigurator.md.meta new file mode 100644 index 0000000..c4e0f05 --- /dev/null +++ b/Documentation/API/Interactables/InteractableActionReceiverConfigurator.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 23d0b1793d31ff34c8390eab7b80eb88 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/InteractableActionReceiverFacade.InteractionState.md b/Documentation/API/Interactables/InteractableActionReceiverFacade.InteractionState.md new file mode 100644 index 0000000..7704397 --- /dev/null +++ b/Documentation/API/Interactables/InteractableActionReceiverFacade.InteractionState.md @@ -0,0 +1,38 @@ +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Fields] + +## Details + +# Enum InteractableActionReceiverFacade.InteractionState + +The states of interaction. + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactables] + +##### Syntax + +``` +public enum InteractionState +``` + +### Fields + +| Name | Description | +| --- | --- | +| Custom | A custom state that will not automatically register any events. | +| FirstGrab | When the first interactor starts grabbing the interactable. | +| FirstTouch | When the first interactor starts touching the interactable. | +| Grab | When an interactor grabs the interactable. | +| Touch | When an interactor touches the interactable. | + +[Tilia.Interactions.Interactables.Interactables]: README.md +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Fields]: #Fields diff --git a/Documentation/API/Interactables/InteractableActionReceiverFacade.InteractionState.md.meta b/Documentation/API/Interactables/InteractableActionReceiverFacade.InteractionState.md.meta new file mode 100644 index 0000000..3e3c98d --- /dev/null +++ b/Documentation/API/Interactables/InteractableActionReceiverFacade.InteractionState.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1897d5f3ea1a1a24b8d86049208f3773 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/InteractableActionReceiverFacade.md b/Documentation/API/Interactables/InteractableActionReceiverFacade.md new file mode 100644 index 0000000..13361cb --- /dev/null +++ b/Documentation/API/Interactables/InteractableActionReceiverFacade.md @@ -0,0 +1,217 @@ +# Class InteractableActionReceiverFacade + +The public interface into the Interactor Action Receiver Prefab. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Properties] + * [ActivationState] + * [Configuration] + * [SourcePublishers] + * [TargetInteractable] +* [Methods] + * [DisableActionRegistrar(GameObject)] + * [DisableActionRegistrar(InteractorFacade)] + * [EnableActionRegistrar(GameObject)] + * [EnableActionRegistrar(InteractorFacade)] + * [OnAfterActivationStateChange()] + * [OnAfterTargetInteractableChange()] + * [OnBeforeActivationStateChange()] + * [OnBeforeTargetInteractableChange()] + +## Details + +##### Inheritance + +* System.Object +* InteractableActionReceiverFacade + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactables] + +##### Syntax + +``` +public class InteractableActionReceiverFacade : MonoBehaviour +``` + +### Properties + +#### ActivationState + +The [InteractableActionReceiverFacade.InteractionState] that determies when to activate the action receiver. + +##### Declaration + +``` +public InteractableActionReceiverFacade.InteractionState ActivationState { get; set; } +``` + +#### Configuration + +The Action that will be linked to the SourceAction. + +##### Declaration + +``` +public InteractableActionReceiverConfigurator Configuration { get; protected set; } +``` + +#### SourcePublishers + +The [InteractorActionPublisherFacade] collection of the publishers to receive data from. + +##### Declaration + +``` +public InteractorActionPublisherFacadeObservableList SourcePublishers { get; set; } +``` + +#### TargetInteractable + +The [InteractableFacade] that the action receiver will target. + +##### Declaration + +``` +public InteractableFacade TargetInteractable { get; set; } +``` + +### Methods + +#### DisableActionRegistrar(GameObject) + +Disables the given source GameObject on the ActionRegistrar. + +##### Declaration + +``` +public virtual void DisableActionRegistrar(GameObject source) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| GameObject | source | The source to disable. | + +#### DisableActionRegistrar(InteractorFacade) + +Disables the given source [InteractorFacade] on the ActionRegistrar. + +##### Declaration + +``` +public virtual void DisableActionRegistrar(InteractorFacade source) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractorFacade] | source | The source to disable. | + +#### EnableActionRegistrar(GameObject) + +Enables the given source GameObject on the ActionRegistrar. + +##### Declaration + +``` +public virtual void EnableActionRegistrar(GameObject source) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| GameObject | source | The source to enable. | + +#### EnableActionRegistrar(InteractorFacade) + +Enables the given source [InteractorFacade] on the ActionRegistrar. + +##### Declaration + +``` +public virtual void EnableActionRegistrar(InteractorFacade source) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractorFacade] | source | The source to enable. | + +#### OnAfterActivationStateChange() + +Called after [ActivationState] has been changed. + +##### Declaration + +``` +protected virtual void OnAfterActivationStateChange() +``` + +#### OnAfterTargetInteractableChange() + +Called after [TargetInteractable] has been changed. + +##### Declaration + +``` +protected virtual void OnAfterTargetInteractableChange() +``` + +#### OnBeforeActivationStateChange() + +Called before [ActivationState] has been changed. + +##### Declaration + +``` +protected virtual void OnBeforeActivationStateChange() +``` + +#### OnBeforeTargetInteractableChange() + +Called before [TargetInteractable] has been changed. + +##### Declaration + +``` +protected virtual void OnBeforeTargetInteractableChange() +``` + +[Tilia.Interactions.Interactables.Interactables]: README.md +[InteractableActionReceiverFacade.InteractionState]: InteractableActionReceiverFacade.InteractionState.md +[InteractableActionReceiverConfigurator]: InteractableActionReceiverConfigurator.md +[InteractorActionPublisherFacade]: ../Interactors/InteractorActionPublisherFacade.md +[InteractorActionPublisherFacadeObservableList]: ../Interactors/Collection/InteractorActionPublisherFacadeObservableList.md +[InteractableFacade]: InteractableFacade.md +[InteractorFacade]: ../Interactors/InteractorFacade.md +[ActivationState]: InteractableActionReceiverFacade.md#ActivationState +[TargetInteractable]: InteractableActionReceiverFacade.md#TargetInteractable +[ActivationState]: InteractableActionReceiverFacade.md#ActivationState +[TargetInteractable]: InteractableActionReceiverFacade.md#TargetInteractable +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Properties]: #Properties +[ActivationState]: #ActivationState +[Configuration]: #Configuration +[SourcePublishers]: #SourcePublishers +[TargetInteractable]: #TargetInteractable +[Methods]: #Methods +[DisableActionRegistrar(GameObject)]: #DisableActionRegistrarGameObject +[DisableActionRegistrar(InteractorFacade)]: #DisableActionRegistrarInteractorFacade +[EnableActionRegistrar(GameObject)]: #EnableActionRegistrarGameObject +[EnableActionRegistrar(InteractorFacade)]: #EnableActionRegistrarInteractorFacade +[OnAfterActivationStateChange()]: #OnAfterActivationStateChange +[OnAfterTargetInteractableChange()]: #OnAfterTargetInteractableChange +[OnBeforeActivationStateChange()]: #OnBeforeActivationStateChange +[OnBeforeTargetInteractableChange()]: #OnBeforeTargetInteractableChange diff --git a/Documentation/API/Interactables/InteractableActionReceiverFacade.md.meta b/Documentation/API/Interactables/InteractableActionReceiverFacade.md.meta new file mode 100644 index 0000000..478a9ac --- /dev/null +++ b/Documentation/API/Interactables/InteractableActionReceiverFacade.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1219cf4ea10a3614782b40f03c7f36f3 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/InteractableConfigurator.md b/Documentation/API/Interactables/InteractableConfigurator.md new file mode 100644 index 0000000..2d83545 --- /dev/null +++ b/Documentation/API/Interactables/InteractableConfigurator.md @@ -0,0 +1,225 @@ +# Class InteractableConfigurator + +Sets up the Interactable Prefab based on the provided user settings. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Properties] + * [ActiveCollisions] + * [CollisionNotifier] + * [ConsumerContainer] + * [ConsumerRigidbody] + * [DisallowedGrabInteractors] + * [DisallowedTouchInteractors] + * [Facade] + * [GrabConfiguration] + * [MeshContainer] + * [TouchConfiguration] +* [Methods] + * [ConfigureContainer()] + * [OnAfterConsumerContainerChange()] + * [OnAfterConsumerRigidbodyChange()] + * [OnAfterDisallowedGrabInteractorsChange()] + * [OnAfterDisallowedTouchInteractorsChange()] + +## Details + +##### Inheritance + +* System.Object +* InteractableConfigurator + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactables] + +##### Syntax + +``` +public class InteractableConfigurator : MonoBehaviour +``` + +### Properties + +#### ActiveCollisions + +The linked GameObjectObservableList. + +##### Declaration + +``` +public GameObjectObservableList ActiveCollisions { get; protected set; } +``` + +#### CollisionNotifier + +The linked [CollisionNotifier]. + +##### Declaration + +``` +public CollisionNotifier CollisionNotifier { get; protected set; } +``` + +#### ConsumerContainer + +The overall container for the interactable consumers. + +##### Declaration + +``` +public GameObject ConsumerContainer { get; set; } +``` + +#### ConsumerRigidbody + +##### Declaration + +``` +public Rigidbody ConsumerRigidbody { get; set; } +``` + +#### DisallowedGrabInteractors + +The rule to determine what is not allowed to grab this interactable. + +##### Declaration + +``` +public RuleContainer DisallowedGrabInteractors { get; set; } +``` + +#### DisallowedTouchInteractors + +The rule to determine what is not allowed to touch this interactable. + +##### Declaration + +``` +public RuleContainer DisallowedTouchInteractors { get; set; } +``` + +#### Facade + +The public interface facade. + +##### Declaration + +``` +public InteractableFacade Facade { get; protected set; } +``` + +#### GrabConfiguration + +The linked Grab Internal Setup. + +##### Declaration + +``` +public GrabInteractableConfigurator GrabConfiguration { get; protected set; } +``` + +#### MeshContainer + +The GameObject that contains the mesh for the Interactable. + +##### Declaration + +``` +public GameObject MeshContainer { get; protected set; } +``` + +#### TouchConfiguration + +The linked Touch Internal Setup. + +##### Declaration + +``` +public TouchInteractableConfigurator TouchConfiguration { get; protected set; } +``` + +### Methods + +#### ConfigureContainer() + +Configures any container data to the sub setup components. + +##### Declaration + +``` +protected virtual void ConfigureContainer() +``` + +#### OnAfterConsumerContainerChange() + +Called after [ConsumerContainer] has been changed. + +##### Declaration + +``` +protected virtual void OnAfterConsumerContainerChange() +``` + +#### OnAfterConsumerRigidbodyChange() + +Called after [ConsumerRigidbody] has been changed. + +##### Declaration + +``` +protected virtual void OnAfterConsumerRigidbodyChange() +``` + +#### OnAfterDisallowedGrabInteractorsChange() + +Called after [DisallowedGrabInteractors] has been changed. + +##### Declaration + +``` +protected virtual void OnAfterDisallowedGrabInteractorsChange() +``` + +#### OnAfterDisallowedTouchInteractorsChange() + +Called after [DisallowedTouchInteractors] has been changed. + +##### Declaration + +``` +protected virtual void OnAfterDisallowedTouchInteractorsChange() +``` + +[Tilia.Interactions.Interactables.Interactables]: README.md +[CollisionNotifier]: InteractableConfigurator.md#CollisionNotifier +[InteractableFacade]: InteractableFacade.md +[GrabInteractableConfigurator]: Grab/GrabInteractableConfigurator.md +[TouchInteractableConfigurator]: Touch/TouchInteractableConfigurator.md +[ConsumerContainer]: InteractableConfigurator.md#ConsumerContainer +[ConsumerRigidbody]: InteractableConfigurator.md#ConsumerRigidbody +[DisallowedGrabInteractors]: InteractableConfigurator.md#DisallowedGrabInteractors +[DisallowedTouchInteractors]: InteractableConfigurator.md#DisallowedTouchInteractors +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Properties]: #Properties +[ActiveCollisions]: #ActiveCollisions +[CollisionNotifier]: #CollisionNotifier +[ConsumerContainer]: #ConsumerContainer +[ConsumerRigidbody]: #ConsumerRigidbody +[DisallowedGrabInteractors]: #DisallowedGrabInteractors +[DisallowedTouchInteractors]: #DisallowedTouchInteractors +[Facade]: #Facade +[GrabConfiguration]: #GrabConfiguration +[MeshContainer]: #MeshContainer +[TouchConfiguration]: #TouchConfiguration +[Methods]: #Methods +[ConfigureContainer()]: #ConfigureContainer +[OnAfterConsumerContainerChange()]: #OnAfterConsumerContainerChange +[OnAfterConsumerRigidbodyChange()]: #OnAfterConsumerRigidbodyChange +[OnAfterDisallowedGrabInteractorsChange()]: #OnAfterDisallowedGrabInteractorsChange +[OnAfterDisallowedTouchInteractorsChange()]: #OnAfterDisallowedTouchInteractorsChange diff --git a/Documentation/API/Interactables/InteractableConfigurator.md.meta b/Documentation/API/Interactables/InteractableConfigurator.md.meta new file mode 100644 index 0000000..67741e0 --- /dev/null +++ b/Documentation/API/Interactables/InteractableConfigurator.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 535120551a151a64d949d30ccef884fb +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/InteractableFacade.UnityEvent.md b/Documentation/API/Interactables/InteractableFacade.UnityEvent.md new file mode 100644 index 0000000..4cc1bbe --- /dev/null +++ b/Documentation/API/Interactables/InteractableFacade.UnityEvent.md @@ -0,0 +1,20 @@ +# Class InteractableFacade.UnityEvent + +Defines the event with the [InteractorFacade]. + +##### Inheritance + +* System.Object +* InteractableFacade.UnityEvent + +###### **Namespace**: [Tilia.Interactions.Interactables.Interactables] + +##### Syntax + +``` +[Serializable] +public class UnityEvent : InteractableFacade.UnityEvent +``` + +[InteractorFacade]: ../Interactors/InteractorFacade.md +[Tilia.Interactions.Interactables.Interactables]: README.md diff --git a/Documentation/API/Interactables/InteractableFacade.UnityEvent.md.meta b/Documentation/API/Interactables/InteractableFacade.UnityEvent.md.meta new file mode 100644 index 0000000..126d20a --- /dev/null +++ b/Documentation/API/Interactables/InteractableFacade.UnityEvent.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 82be83fd8af379b459eb89b38f336afa +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/InteractableFacade.md b/Documentation/API/Interactables/InteractableFacade.md new file mode 100644 index 0000000..7c9aefa --- /dev/null +++ b/Documentation/API/Interactables/InteractableFacade.md @@ -0,0 +1,355 @@ +# Class InteractableFacade + +The public interface into the Interactable Prefab. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Fields] + * [FirstGrabbed] + * [FirstTouched] + * [Grabbed] + * [LastUngrabbed] + * [LastUntouched] + * [Touched] + * [Ungrabbed] + * [Untouched] +* [Properties] + * [Configuration] + * [GrabbingInteractors] + * [GrabProviderIndex] + * [GrabType] + * [IsGrabbed] + * [IsGrabTypeToggle] + * [IsTouched] + * [TouchingInteractors] +* [Methods] + * [Grab(GameObject)] + * [Grab(InteractorFacade)] + * [OnAfterGrabProviderIndexChange()] + * [OnAfterGrabTypeChange()] + * [Ungrab(GameObject)] + * [Ungrab(Int32)] + * [Ungrab(InteractorFacade)] + +## Details + +##### Inheritance + +* System.Object +* InteractableFacade + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactables] + +##### Syntax + +``` +public class InteractableFacade : MonoBehaviour +``` + +### Fields + +#### FirstGrabbed + +Emitted when the Interactable is grabbed for the first time by an Interactor. + +##### Declaration + +``` +public InteractableFacade.UnityEvent FirstGrabbed +``` + +#### FirstTouched + +Emitted when the Interactable is touched for the first time by an Interactor. + +##### Declaration + +``` +public InteractableFacade.UnityEvent FirstTouched +``` + +#### Grabbed + +Emitted when an Interactor grabs the Interactable. + +##### Declaration + +``` +public InteractableFacade.UnityEvent Grabbed +``` + +#### LastUngrabbed + +Emitted when the Interactable is ungrabbed for the last time by an Interactor. + +##### Declaration + +``` +public InteractableFacade.UnityEvent LastUngrabbed +``` + +#### LastUntouched + +Emitted when the Interactable is untouched for the last time by an Interactor. + +##### Declaration + +``` +public InteractableFacade.UnityEvent LastUntouched +``` + +#### Touched + +Emitted when an Interactor touches the Interactable. + +##### Declaration + +``` +public InteractableFacade.UnityEvent Touched +``` + +#### Ungrabbed + +Emitted when an Interactor ungrabs the Interactable. + +##### Declaration + +``` +public InteractableFacade.UnityEvent Ungrabbed +``` + +#### Untouched + +Emitted when an Interactor stops touching the Interactable. + +##### Declaration + +``` +public InteractableFacade.UnityEvent Untouched +``` + +### Properties + +#### Configuration + +The linked [InteractableConfigurator]. + +##### Declaration + +``` +public InteractableConfigurator Configuration { get; protected set; } +``` + +#### GrabbingInteractors + +A collection of Interactors that are currently grabbing the Interactable. + +##### Declaration + +``` +public IReadOnlyList GrabbingInteractors { get; } +``` + +#### GrabProviderIndex + +The GrabInteractableInteractorProvider to use. + +##### Declaration + +``` +public int GrabProviderIndex { get; set; } +``` + +#### GrabType + +The linked [GrabInteractableReceiver.ActiveType]. + +##### Declaration + +``` +public GrabInteractableReceiver.ActiveType GrabType { get; set; } +``` + +#### IsGrabbed + +Whether the Interactable is currently being grabbed by any valid Interactor. + +##### Declaration + +``` +public bool IsGrabbed { get; } +``` + +#### IsGrabTypeToggle + +Determines if the grab type is set to toggle. + +##### Declaration + +``` +public bool IsGrabTypeToggle { get; } +``` + +#### IsTouched + +Whether the Interactable is currently being touched by any valid Interactor. + +##### Declaration + +``` +public bool IsTouched { get; } +``` + +#### TouchingInteractors + +A collection of Interactors that are currently touching the Interactable. + +##### Declaration + +``` +public IReadOnlyList TouchingInteractors { get; } +``` + +### Methods + +#### Grab(GameObject) + +Attempt to grab the Interactable to the given GameObject that contains an Interactor. + +##### Declaration + +``` +public virtual void Grab(GameObject interactor) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| GameObject | interactor | The GameObject that the Interactor is on. | + +#### Grab(InteractorFacade) + +Attempt to grab the Interactable to the given Interactor. + +##### Declaration + +``` +public virtual void Grab(InteractorFacade interactor) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractorFacade] | interactor | The Interactor to attach the Interactable to. | + +#### OnAfterGrabProviderIndexChange() + +Called after [GrabProviderIndex] has been changed. + +##### Declaration + +``` +protected virtual void OnAfterGrabProviderIndexChange() +``` + +#### OnAfterGrabTypeChange() + +Called after [GrabType] has been changed. + +##### Declaration + +``` +protected virtual void OnAfterGrabTypeChange() +``` + +#### Ungrab(GameObject) + +Attempt to ungrab the Interactable to the given GameObject that contains an Interactor. + +##### Declaration + +``` +public virtual void Ungrab(GameObject interactor) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| GameObject | interactor | The GameObject that the Interactor is on. | + +#### Ungrab(Int32) + +Attempt to ungrab the Interactable at a specific grabbing index. + +##### Declaration + +``` +public virtual void Ungrab(int sequenceIndex = 0) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| System.Int32 | sequenceIndex | The Interactor sequence index to ungrab from. | + +#### Ungrab(InteractorFacade) + +Attempt to ungrab the Interactable. + +##### Declaration + +``` +public virtual void Ungrab(InteractorFacade interactor) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractorFacade] | interactor | The Interactor to ungrab from. | + +[Tilia.Interactions.Interactables.Interactables]: README.md +[InteractableFacade.UnityEvent]: InteractableFacade.UnityEvent.md +[InteractableConfigurator]: InteractableConfigurator.md +[InteractorFacade]: ../Interactors/InteractorFacade.md +[GrabInteractableReceiver.ActiveType]: Grab/Receiver/GrabInteractableReceiver.ActiveType.md +[GrabProviderIndex]: InteractableFacade.md#GrabProviderIndex +[GrabType]: InteractableFacade.md#GrabType +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Fields]: #Fields +[FirstGrabbed]: #FirstGrabbed +[FirstTouched]: #FirstTouched +[Grabbed]: #Grabbed +[LastUngrabbed]: #LastUngrabbed +[LastUntouched]: #LastUntouched +[Touched]: #Touched +[Ungrabbed]: #Ungrabbed +[Untouched]: #Untouched +[Properties]: #Properties +[Configuration]: #Configuration +[GrabbingInteractors]: #GrabbingInteractors +[GrabProviderIndex]: #GrabProviderIndex +[GrabType]: #GrabType +[IsGrabbed]: #IsGrabbed +[IsGrabTypeToggle]: #IsGrabTypeToggle +[IsTouched]: #IsTouched +[TouchingInteractors]: #TouchingInteractors +[Methods]: #Methods +[Grab(GameObject)]: #GrabGameObject +[Grab(InteractorFacade)]: #GrabInteractorFacade +[OnAfterGrabProviderIndexChange()]: #OnAfterGrabProviderIndexChange +[OnAfterGrabTypeChange()]: #OnAfterGrabTypeChange +[Ungrab(GameObject)]: #UngrabGameObject +[Ungrab(Int32)]: #UngrabInt32 +[Ungrab(InteractorFacade)]: #UngrabInteractorFacade diff --git a/Documentation/API/Interactables/InteractableFacade.md.meta b/Documentation/API/Interactables/InteractableFacade.md.meta new file mode 100644 index 0000000..1b70aed --- /dev/null +++ b/Documentation/API/Interactables/InteractableFacade.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 32cd0143c2b460d45810bad59cb1e66c +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/InteractablePropertyCache.md b/Documentation/API/Interactables/InteractablePropertyCache.md new file mode 100644 index 0000000..27c3269 --- /dev/null +++ b/Documentation/API/Interactables/InteractablePropertyCache.md @@ -0,0 +1,247 @@ +# Class InteractablePropertyCache + +Caches common properties for an [InteractableFacade] to be restored at a later point in time. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Fields] + * [cachedLocalPosition] + * [cachedLocalRotation] + * [cachedLocalScale] + * [cachedRigidbodyKinematicState] +* [Properties] + * [Source] +* [Methods] + * [CacheAll()] + * [CachePosition()] + * [CacheRigidbodyKinematicState()] + * [CacheRotation()] + * [CacheScale()] + * [RestoreAll()] + * [RestorePosition()] + * [RestoreRigidbodyKinematicState()] + * [RestoreRotation()] + * [RestoreScale()] + * [SetSource(GameObject)] + +## Details + +##### Inheritance + +* System.Object +* InteractablePropertyCache + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactables] + +##### Syntax + +``` +public class InteractablePropertyCache : MonoBehaviour +``` + +### Fields + +#### cachedLocalPosition + +The cached local position of the [Source] + +##### Declaration + +``` +protected Vector3? cachedLocalPosition +``` + +#### cachedLocalRotation + +The cached local rotation of the [Source] + +##### Declaration + +``` +protected Quaternion cachedLocalRotation +``` + +#### cachedLocalScale + +The cached local scale of the [Source] + +##### Declaration + +``` +protected Vector3 cachedLocalScale +``` + +#### cachedRigidbodyKinematicState + +The cached kinematic state of the the [Source] + +##### Declaration + +``` +protected bool cachedRigidbodyKinematicState +``` + +### Properties + +#### Source + +The source to cache properties for. + +##### Declaration + +``` +public InteractableFacade Source { get; set; } +``` + +### Methods + +#### CacheAll() + +Caches all of the properties. + +##### Declaration + +``` +public virtual void CacheAll() +``` + +#### CachePosition() + +Caches the position. + +##### Declaration + +``` +public virtual void CachePosition() +``` + +#### CacheRigidbodyKinematicState() + +Caches the rigidbody kinematic state.. + +##### Declaration + +``` +public virtual void CacheRigidbodyKinematicState() +``` + +#### CacheRotation() + +Caches the rotation. + +##### Declaration + +``` +public virtual void CacheRotation() +``` + +#### CacheScale() + +Caches the scale. + +##### Declaration + +``` +public virtual void CacheScale() +``` + +#### RestoreAll() + +Restores the all of cached properties. + +##### Declaration + +``` +public virtual void RestoreAll() +``` + +#### RestorePosition() + +Restores the cached position. + +##### Declaration + +``` +public virtual void RestorePosition() +``` + +#### RestoreRigidbodyKinematicState() + +Restores the cached rigidbody kinematic state. + +##### Declaration + +``` +public virtual void RestoreRigidbodyKinematicState() +``` + +#### RestoreRotation() + +Restores the cached rotation. + +##### Declaration + +``` +public virtual void RestoreRotation() +``` + +#### RestoreScale() + +Restores the cached scale. + +##### Declaration + +``` +public virtual void RestoreScale() +``` + +#### SetSource(GameObject) + +Sets the [Source] property from a given GameObject. + +##### Declaration + +``` +public virtual void SetSource(GameObject source) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| GameObject | source | The source to set to. | + +[Tilia.Interactions.Interactables.Interactables]: README.md +[Source]: InteractablePropertyCache.md#Source +[Source]: InteractablePropertyCache.md#Source +[Source]: InteractablePropertyCache.md#Source +[Source]: InteractablePropertyCache.md#Source +[InteractableFacade]: InteractableFacade.md +[Source]: InteractablePropertyCache.md#Source +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Fields]: #Fields +[cachedLocalPosition]: #cachedLocalPosition +[cachedLocalRotation]: #cachedLocalRotation +[cachedLocalScale]: #cachedLocalScale +[cachedRigidbodyKinematicState]: #cachedRigidbodyKinematicState +[Properties]: #Properties +[Source]: #Source +[Methods]: #Methods +[CacheAll()]: #CacheAll +[CachePosition()]: #CachePosition +[CacheRigidbodyKinematicState()]: #CacheRigidbodyKinematicState +[CacheRotation()]: #CacheRotation +[CacheScale()]: #CacheScale +[RestoreAll()]: #RestoreAll +[RestorePosition()]: #RestorePosition +[RestoreRigidbodyKinematicState()]: #RestoreRigidbodyKinematicState +[RestoreRotation()]: #RestoreRotation +[RestoreScale()]: #RestoreScale +[SetSource(GameObject)]: #SetSourceGameObject diff --git a/Documentation/API/Interactables/InteractablePropertyCache.md.meta b/Documentation/API/Interactables/InteractablePropertyCache.md.meta new file mode 100644 index 0000000..f5d38b2 --- /dev/null +++ b/Documentation/API/Interactables/InteractablePropertyCache.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 357dac54287e3824286d0f36267b5dc0 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Operation.meta b/Documentation/API/Interactables/Operation.meta new file mode 100644 index 0000000..24e0a51 --- /dev/null +++ b/Documentation/API/Interactables/Operation.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: aabfa104d7a80dc4ea136ac37bf84142 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Operation/Extraction.meta b/Documentation/API/Interactables/Operation/Extraction.meta new file mode 100644 index 0000000..09a82a2 --- /dev/null +++ b/Documentation/API/Interactables/Operation/Extraction.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: acaeb793ceefe0041a48577ac3e61b4b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Operation/Extraction/InteractableConsumerContainerExtractor.md b/Documentation/API/Interactables/Operation/Extraction/InteractableConsumerContainerExtractor.md new file mode 100644 index 0000000..4cc6b90 --- /dev/null +++ b/Documentation/API/Interactables/Operation/Extraction/InteractableConsumerContainerExtractor.md @@ -0,0 +1,51 @@ +# Class InteractableConsumerContainerExtractor + +Extracts the GameObject of the InteractableFacade.ConsumerContainer. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Methods] + * [ExtractValue()] + +## Details + +##### Inheritance + +* System.Object +* InteractableConsumerContainerExtractor + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactables.Operation.Extraction] + +##### Syntax + +``` +public class InteractableConsumerContainerExtractor : ComponentGameObjectExtractor +``` + +### Methods + +#### ExtractValue() + +##### Declaration + +``` +protected override GameObject ExtractValue() +``` + +##### Returns + +| Type | Description | +| --- | --- | +| GameObject | n/a | + +[Tilia.Interactions.Interactables.Interactables.Operation.Extraction]: README.md +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Methods]: #Methods +[ExtractValue()]: #ExtractValue diff --git a/Documentation/API/Interactables/Operation/Extraction/InteractableConsumerContainerExtractor.md.meta b/Documentation/API/Interactables/Operation/Extraction/InteractableConsumerContainerExtractor.md.meta new file mode 100644 index 0000000..e561a91 --- /dev/null +++ b/Documentation/API/Interactables/Operation/Extraction/InteractableConsumerContainerExtractor.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4a3cb65fd035b3541807c019870ebfa8 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Operation/Extraction/InteractableConsumerRigidbodyExtractor.md b/Documentation/API/Interactables/Operation/Extraction/InteractableConsumerRigidbodyExtractor.md new file mode 100644 index 0000000..5ca890e --- /dev/null +++ b/Documentation/API/Interactables/Operation/Extraction/InteractableConsumerRigidbodyExtractor.md @@ -0,0 +1,51 @@ +# Class InteractableConsumerRigidbodyExtractor + +Extracts the GameObject of the InteractableFacade.ConsumerRigidbody. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Methods] + * [ExtractValue()] + +## Details + +##### Inheritance + +* System.Object +* InteractableConsumerRigidbodyExtractor + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactables.Operation.Extraction] + +##### Syntax + +``` +public class InteractableConsumerRigidbodyExtractor : ComponentGameObjectExtractor +``` + +### Methods + +#### ExtractValue() + +##### Declaration + +``` +protected override GameObject ExtractValue() +``` + +##### Returns + +| Type | Description | +| --- | --- | +| GameObject | n/a | + +[Tilia.Interactions.Interactables.Interactables.Operation.Extraction]: README.md +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Methods]: #Methods +[ExtractValue()]: #ExtractValue diff --git a/Documentation/API/Interactables/Operation/Extraction/InteractableConsumerRigidbodyExtractor.md.meta b/Documentation/API/Interactables/Operation/Extraction/InteractableConsumerRigidbodyExtractor.md.meta new file mode 100644 index 0000000..ab9eb09 --- /dev/null +++ b/Documentation/API/Interactables/Operation/Extraction/InteractableConsumerRigidbodyExtractor.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5015af5654697884f8a0490769d3f2f6 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Operation/Extraction/InteractableFacadeExtractor.UnityEvent.md b/Documentation/API/Interactables/Operation/Extraction/InteractableFacadeExtractor.UnityEvent.md new file mode 100644 index 0000000..c051fd9 --- /dev/null +++ b/Documentation/API/Interactables/Operation/Extraction/InteractableFacadeExtractor.UnityEvent.md @@ -0,0 +1,20 @@ +# Class InteractableFacadeExtractor.UnityEvent + +Defines the event with the specified [InteractableFacade]. + +##### Inheritance + +* System.Object +* InteractableFacadeExtractor.UnityEvent + +###### **Namespace**: [Tilia.Interactions.Interactables.Interactables.Operation.Extraction] + +##### Syntax + +``` +[Serializable] +public class UnityEvent : InteractableFacadeExtractor.UnityEvent +``` + +[InteractableFacade]: ../../../Interactables/InteractableFacade.md +[Tilia.Interactions.Interactables.Interactables.Operation.Extraction]: README.md diff --git a/Documentation/API/Interactables/Operation/Extraction/InteractableFacadeExtractor.UnityEvent.md.meta b/Documentation/API/Interactables/Operation/Extraction/InteractableFacadeExtractor.UnityEvent.md.meta new file mode 100644 index 0000000..9966324 --- /dev/null +++ b/Documentation/API/Interactables/Operation/Extraction/InteractableFacadeExtractor.UnityEvent.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2d93fee6d5761874d8fbb318d3517e03 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Operation/Extraction/InteractableFacadeExtractor.md b/Documentation/API/Interactables/Operation/Extraction/InteractableFacadeExtractor.md new file mode 100644 index 0000000..1f070cd --- /dev/null +++ b/Documentation/API/Interactables/Operation/Extraction/InteractableFacadeExtractor.md @@ -0,0 +1,74 @@ +# Class InteractableFacadeExtractor + +Extracts and emits the [InteractableFacade] found in relation to the Source. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Methods] + * [ExtractValue()] + * [InvokeResult(InteractableFacade)] + +## Details + +##### Inheritance + +* System.Object +* InteractableFacadeExtractor + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactables.Operation.Extraction] + +##### Syntax + +``` +public class InteractableFacadeExtractor : ComponentExtractor +``` + +### Methods + +#### ExtractValue() + +##### Declaration + +``` +protected override InteractableFacade ExtractValue() +``` + +##### Returns + +| Type | Description | +| --- | --- | +| [InteractableFacade] | n/a | + +#### InvokeResult(InteractableFacade) + +##### Declaration + +``` +protected override bool InvokeResult(InteractableFacade data) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractableFacade] | data | n/a | + +##### Returns + +| Type | Description | +| --- | --- | +| System.Boolean | n/a | + +[InteractableFacade]: ../../../Interactables/InteractableFacade.md +[Tilia.Interactions.Interactables.Interactables.Operation.Extraction]: README.md +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Methods]: #Methods +[ExtractValue()]: #ExtractValue +[InvokeResult(InteractableFacade)]: #InvokeResultInteractableFacade diff --git a/Documentation/API/Interactables/Operation/Extraction/InteractableFacadeExtractor.md.meta b/Documentation/API/Interactables/Operation/Extraction/InteractableFacadeExtractor.md.meta new file mode 100644 index 0000000..2abf645 --- /dev/null +++ b/Documentation/API/Interactables/Operation/Extraction/InteractableFacadeExtractor.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 50f390a1517a3a147b4f677b0aaa6383 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Operation/Extraction/README.md b/Documentation/API/Interactables/Operation/Extraction/README.md new file mode 100644 index 0000000..a6c5ac9 --- /dev/null +++ b/Documentation/API/Interactables/Operation/Extraction/README.md @@ -0,0 +1,25 @@ +# Namespace Tilia.Interactions.Interactables.Interactables.Operation.Extraction + +### Classes + +#### [InteractableConsumerContainerExtractor] + +Extracts the GameObject of the InteractableFacade.ConsumerContainer. + +#### [InteractableConsumerRigidbodyExtractor] + +Extracts the GameObject of the InteractableFacade.ConsumerRigidbody. + +#### [InteractableFacadeExtractor] + +Extracts and emits the [InteractableFacade] found in relation to the Source. + +#### [InteractableFacadeExtractor.UnityEvent] + +Defines the event with the specified [InteractableFacade]. + +[InteractableConsumerContainerExtractor]: InteractableConsumerContainerExtractor.md +[InteractableConsumerRigidbodyExtractor]: InteractableConsumerRigidbodyExtractor.md +[InteractableFacadeExtractor]: InteractableFacadeExtractor.md +[InteractableFacade]: ../../../Interactables/InteractableFacade.md +[InteractableFacadeExtractor.UnityEvent]: InteractableFacadeExtractor.UnityEvent.md diff --git a/Documentation/API/Interactables/Operation/Extraction/README.md.meta b/Documentation/API/Interactables/Operation/Extraction/README.md.meta new file mode 100644 index 0000000..30a6cff --- /dev/null +++ b/Documentation/API/Interactables/Operation/Extraction/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 20c99608dc7a1bb41a65d74df1fee565 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/README.md b/Documentation/API/Interactables/README.md new file mode 100644 index 0000000..0a4d562 --- /dev/null +++ b/Documentation/API/Interactables/README.md @@ -0,0 +1,42 @@ +# Namespace Tilia.Interactions.Interactables.Interactables + +### Classes + +#### [InteractableActionReceiverConfigurator] + +Sets up the Interactor Action Receiver Prefab action settings based on the provided user settings. + +#### [InteractableActionReceiverFacade] + +The public interface into the Interactor Action Receiver Prefab. + +#### [InteractableConfigurator] + +Sets up the Interactable Prefab based on the provided user settings. + +#### [InteractableFacade] + +The public interface into the Interactable Prefab. + +#### [InteractableFacade.UnityEvent] + +Defines the event with the [InteractorFacade]. + +#### [InteractablePropertyCache] + +Caches common properties for an [InteractableFacade] to be restored at a later point in time. + +### Enums + +#### [InteractableActionReceiverFacade.InteractionState] + +The states of interaction. + +[InteractableActionReceiverConfigurator]: InteractableActionReceiverConfigurator.md +[InteractableActionReceiverFacade]: InteractableActionReceiverFacade.md +[InteractableConfigurator]: InteractableConfigurator.md +[InteractableFacade.UnityEvent]: InteractableFacade.UnityEvent.md +[InteractorFacade]: ../Interactors/InteractorFacade.md +[InteractablePropertyCache]: InteractablePropertyCache.md +[InteractableFacade]: InteractableFacade.md +[InteractableActionReceiverFacade.InteractionState]: InteractableActionReceiverFacade.InteractionState.md diff --git a/Documentation/API/Interactables/README.md.meta b/Documentation/API/Interactables/README.md.meta new file mode 100644 index 0000000..4790b69 --- /dev/null +++ b/Documentation/API/Interactables/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 67026430134dee843ae2b25347891b6d +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Touch.meta b/Documentation/API/Interactables/Touch.meta new file mode 100644 index 0000000..24a0d35 --- /dev/null +++ b/Documentation/API/Interactables/Touch.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d39d7219de006a5478a664a1b1fdc8a8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Touch/README.md b/Documentation/API/Interactables/Touch/README.md new file mode 100644 index 0000000..e1c1fcd --- /dev/null +++ b/Documentation/API/Interactables/Touch/README.md @@ -0,0 +1,7 @@ +# Namespace Tilia.Interactions.Interactables.Interactables.Touch + +### Classes + +#### [TouchInteractableConfigurator] + +[TouchInteractableConfigurator]: TouchInteractableConfigurator.md diff --git a/Documentation/API/Interactables/Touch/README.md.meta b/Documentation/API/Interactables/Touch/README.md.meta new file mode 100644 index 0000000..b4a0522 --- /dev/null +++ b/Documentation/API/Interactables/Touch/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6a41ac4109d535d48a867fcd62f693ab +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactables/Touch/TouchInteractableConfigurator.md b/Documentation/API/Interactables/Touch/TouchInteractableConfigurator.md new file mode 100644 index 0000000..7e369e9 --- /dev/null +++ b/Documentation/API/Interactables/Touch/TouchInteractableConfigurator.md @@ -0,0 +1,291 @@ +# Class TouchInteractableConfigurator + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Fields] + * [touchingInteractors] +* [Properties] + * [AddActiveInteractor] + * [CurrentTouchingObjects] + * [Facade] + * [PotentialInteractors] + * [RemoveActiveInteractor] + * [TouchConsumer] + * [TouchingInteractors] + * [TouchValidity] + * [UntouchConsumer] +* [Methods] + * [ConfigureContainer()] + * [GetTouchingInteractors()] + * [LinkActiveInteractorCollisions()] + * [NotifyTouch(GameObject)] + * [NotifyUntouch(GameObject)] + * [OnDisable()] + * [OnEnable()] + * [ProcessPotentialInteractorContentChange(CollisionNotifier.EventData)] + * [UnlinkActiveInteractorCollisions()] + +## Details + +##### Inheritance + +* System.Object +* TouchInteractableConfigurator + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactables.Touch] + +##### Syntax + +``` +public class TouchInteractableConfigurator : MonoBehaviour +``` + +### Fields + +#### touchingInteractors + +A reusable collection to hold the returned touching interactors. + +##### Declaration + +``` +protected readonly List touchingInteractors +``` + +### Properties + +#### AddActiveInteractor + +The NotifierContainerExtractor for adding active interactors. + +##### Declaration + +``` +public NotifierContainerExtractor AddActiveInteractor { get; protected set; } +``` + +#### CurrentTouchingObjects + +The GameObjectObservableList that holds the current touching objects data. + +##### Declaration + +``` +public GameObjectObservableList CurrentTouchingObjects { get; protected set; } +``` + +#### Facade + +The public interface facade. + +##### Declaration + +``` +public InteractableFacade Facade { get; protected set; } +``` + +#### PotentialInteractors + +The ActiveCollisionsContainer for potential interactors. + +##### Declaration + +``` +public ActiveCollisionsContainer PotentialInteractors { get; protected set; } +``` + +#### RemoveActiveInteractor + +The NotifierContainerExtractor for removing active interactors. + +##### Declaration + +``` +public NotifierContainerExtractor RemoveActiveInteractor { get; protected set; } +``` + +#### TouchConsumer + +The ActiveCollisionConsumer that listens for the touch payload. + +##### Declaration + +``` +public ActiveCollisionConsumer TouchConsumer { get; protected set; } +``` + +#### TouchingInteractors + +A collection of Interactors that are currently touching the Interactable. + +##### Declaration + +``` +public IReadOnlyList TouchingInteractors { get; } +``` + +#### TouchValidity + +The GameObjectEventProxyEmitter used to determine the touch validity. + +##### Declaration + +``` +public GameObjectEventProxyEmitter TouchValidity { get; protected set; } +``` + +#### UntouchConsumer + +The ActiveCollisionConsumer that listens for the untouch payload. + +##### Declaration + +``` +public ActiveCollisionConsumer UntouchConsumer { get; protected set; } +``` + +### Methods + +#### ConfigureContainer() + +Sets the consumer containers to the current active container. + +##### Declaration + +``` +public virtual void ConfigureContainer() +``` + +#### GetTouchingInteractors() + +Retrieves a collection of Interactors that are touching the Interactable. + +##### Declaration + +``` +protected virtual IReadOnlyList GetTouchingInteractors() +``` + +##### Returns + +| Type | Description | +| --- | --- | +| System.Collections.Generic.IReadOnlyList<[InteractorFacade]\> | The touching Interactors. | + +#### LinkActiveInteractorCollisions() + +Links the CollisionNotifier to the potential and active interactor logic. + +##### Declaration + +``` +protected virtual void LinkActiveInteractorCollisions() +``` + +#### NotifyTouch(GameObject) + +Notifies that the Interactable is being touched. + +##### Declaration + +``` +public virtual void NotifyTouch(GameObject data) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| GameObject | data | The touching object. | + +#### NotifyUntouch(GameObject) + +Notifies that the Interactable is being no longer touched. + +##### Declaration + +``` +public virtual void NotifyUntouch(GameObject data) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| GameObject | data | The previous touching object. | + +#### OnDisable() + +##### Declaration + +``` +protected virtual void OnDisable() +``` + +#### OnEnable() + +##### Declaration + +``` +protected virtual void OnEnable() +``` + +#### ProcessPotentialInteractorContentChange(CollisionNotifier.EventData) + +Handles any change of collision contents. + +##### Declaration + +``` +protected virtual void ProcessPotentialInteractorContentChange(CollisionNotifier.EventData data) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| CollisionNotifier.EventData | data | The changed collision data. | + +#### UnlinkActiveInteractorCollisions() + +Unlinks the CollisionNotifier to the potential and active interactor logic. + +##### Declaration + +``` +protected virtual void UnlinkActiveInteractorCollisions() +``` + +[Tilia.Interactions.Interactables.Interactables.Touch]: README.md +[InteractorFacade]: ../../Interactors/InteractorFacade.md +[InteractableFacade]: ../../Interactables/InteractableFacade.md +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Fields]: #Fields +[touchingInteractors]: #touchingInteractors +[Properties]: #Properties +[AddActiveInteractor]: #AddActiveInteractor +[CurrentTouchingObjects]: #CurrentTouchingObjects +[Facade]: #Facade +[PotentialInteractors]: #PotentialInteractors +[RemoveActiveInteractor]: #RemoveActiveInteractor +[TouchConsumer]: #TouchConsumer +[TouchingInteractors]: #TouchingInteractors +[TouchValidity]: #TouchValidity +[UntouchConsumer]: #UntouchConsumer +[Methods]: #Methods +[ConfigureContainer()]: #ConfigureContainer +[GetTouchingInteractors()]: #GetTouchingInteractors +[LinkActiveInteractorCollisions()]: #LinkActiveInteractorCollisions +[NotifyTouch(GameObject)]: #NotifyTouchGameObject +[NotifyUntouch(GameObject)]: #NotifyUntouchGameObject +[OnDisable()]: #OnDisable +[OnEnable()]: #OnEnable +[ProcessPotentialInteractorContentChange(CollisionNotifier.EventData)]: #ProcessPotentialInteractorContentChangeCollisionNotifier.EventData +[UnlinkActiveInteractorCollisions()]: #UnlinkActiveInteractorCollisions diff --git a/Documentation/API/Interactables/Touch/TouchInteractableConfigurator.md.meta b/Documentation/API/Interactables/Touch/TouchInteractableConfigurator.md.meta new file mode 100644 index 0000000..2ddeb7a --- /dev/null +++ b/Documentation/API/Interactables/Touch/TouchInteractableConfigurator.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4d8607470f3fbc944aa62ccc3f1b803d +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors.meta b/Documentation/API/Interactors.meta new file mode 100644 index 0000000..e80688d --- /dev/null +++ b/Documentation/API/Interactors.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7b7f0f5d4af722749b690c78f8cc3006 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/Collection.meta b/Documentation/API/Interactors/Collection.meta new file mode 100644 index 0000000..88cfbce --- /dev/null +++ b/Documentation/API/Interactors/Collection.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c9c8cd6474d63f847afce44a10c9f45f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/Collection/InteractorActionPublisherFacadeObservableList.UnityEvent.md b/Documentation/API/Interactors/Collection/InteractorActionPublisherFacadeObservableList.UnityEvent.md new file mode 100644 index 0000000..f763072 --- /dev/null +++ b/Documentation/API/Interactors/Collection/InteractorActionPublisherFacadeObservableList.UnityEvent.md @@ -0,0 +1,20 @@ +# Class InteractorActionPublisherFacadeObservableList.UnityEvent + +Defines the event with the [InteractorActionPublisherFacade]. + +##### Inheritance + +* System.Object +* InteractorActionPublisherFacadeObservableList.UnityEvent + +###### **Namespace**: [Tilia.Interactions.Interactables.Interactors.Collection] + +##### Syntax + +``` +[Serializable] +public class UnityEvent : InteractorActionPublisherFacadeObservableList.UnityEvent +``` + +[InteractorActionPublisherFacade]: ../../Interactors/InteractorActionPublisherFacade.md +[Tilia.Interactions.Interactables.Interactors.Collection]: README.md diff --git a/Documentation/API/Interactors/Collection/InteractorActionPublisherFacadeObservableList.UnityEvent.md.meta b/Documentation/API/Interactors/Collection/InteractorActionPublisherFacadeObservableList.UnityEvent.md.meta new file mode 100644 index 0000000..17c19c0 --- /dev/null +++ b/Documentation/API/Interactors/Collection/InteractorActionPublisherFacadeObservableList.UnityEvent.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fd87a9665f6c7d54a83b0f4ea9e76047 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/Collection/InteractorActionPublisherFacadeObservableList.md b/Documentation/API/Interactors/Collection/InteractorActionPublisherFacadeObservableList.md new file mode 100644 index 0000000..7f3f8c3 --- /dev/null +++ b/Documentation/API/Interactors/Collection/InteractorActionPublisherFacadeObservableList.md @@ -0,0 +1,19 @@ +# Class InteractorActionPublisherFacadeObservableList + +Allows observing changes to a System.Collections.Generic.List of [InteractorActionPublisherFacade]s. + +##### Inheritance + +* System.Object +* InteractorActionPublisherFacadeObservableList + +###### **Namespace**: [Tilia.Interactions.Interactables.Interactors.Collection] + +##### Syntax + +``` +public class InteractorActionPublisherFacadeObservableList : DefaultObservableList +``` + +[InteractorActionPublisherFacade]: ../../Interactors/InteractorActionPublisherFacade.md +[Tilia.Interactions.Interactables.Interactors.Collection]: README.md diff --git a/Documentation/API/Interactors/Collection/InteractorActionPublisherFacadeObservableList.md.meta b/Documentation/API/Interactors/Collection/InteractorActionPublisherFacadeObservableList.md.meta new file mode 100644 index 0000000..a9f3880 --- /dev/null +++ b/Documentation/API/Interactors/Collection/InteractorActionPublisherFacadeObservableList.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 45cefc89dbc2d16418cf8d9877e0ead5 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/Collection/InteractorFacadeObservableList.UnityEvent.md b/Documentation/API/Interactors/Collection/InteractorFacadeObservableList.UnityEvent.md new file mode 100644 index 0000000..a94be90 --- /dev/null +++ b/Documentation/API/Interactors/Collection/InteractorFacadeObservableList.UnityEvent.md @@ -0,0 +1,20 @@ +# Class InteractorFacadeObservableList.UnityEvent + +Defines the event with the [InteractorFacade]. + +##### Inheritance + +* System.Object +* InteractorFacadeObservableList.UnityEvent + +###### **Namespace**: [Tilia.Interactions.Interactables.Interactors.Collection] + +##### Syntax + +``` +[Serializable] +public class UnityEvent : InteractorFacadeObservableList.UnityEvent +``` + +[InteractorFacade]: ../../Interactors/InteractorFacade.md +[Tilia.Interactions.Interactables.Interactors.Collection]: README.md diff --git a/Documentation/API/Interactors/Collection/InteractorFacadeObservableList.UnityEvent.md.meta b/Documentation/API/Interactors/Collection/InteractorFacadeObservableList.UnityEvent.md.meta new file mode 100644 index 0000000..b8e77d6 --- /dev/null +++ b/Documentation/API/Interactors/Collection/InteractorFacadeObservableList.UnityEvent.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5374086a95bf97c46b3393805fbeaf64 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/Collection/InteractorFacadeObservableList.md b/Documentation/API/Interactors/Collection/InteractorFacadeObservableList.md new file mode 100644 index 0000000..503bd2c --- /dev/null +++ b/Documentation/API/Interactors/Collection/InteractorFacadeObservableList.md @@ -0,0 +1,19 @@ +# Class InteractorFacadeObservableList + +Allows observing changes to a System.Collections.Generic.List of [InteractorFacade]s. + +##### Inheritance + +* System.Object +* InteractorFacadeObservableList + +###### **Namespace**: [Tilia.Interactions.Interactables.Interactors.Collection] + +##### Syntax + +``` +public class InteractorFacadeObservableList : DefaultObservableList +``` + +[InteractorFacade]: ../../Interactors/InteractorFacade.md +[Tilia.Interactions.Interactables.Interactors.Collection]: README.md diff --git a/Documentation/API/Interactors/Collection/InteractorFacadeObservableList.md.meta b/Documentation/API/Interactors/Collection/InteractorFacadeObservableList.md.meta new file mode 100644 index 0000000..6078e97 --- /dev/null +++ b/Documentation/API/Interactors/Collection/InteractorFacadeObservableList.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 59615fb344205bd4abf2c9c5f42db836 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/Collection/README.md b/Documentation/API/Interactors/Collection/README.md new file mode 100644 index 0000000..0341736 --- /dev/null +++ b/Documentation/API/Interactors/Collection/README.md @@ -0,0 +1,26 @@ +# Namespace Tilia.Interactions.Interactables.Interactors.Collection + +### Classes + +#### [InteractorActionPublisherFacadeObservableList] + +Allows observing changes to a System.Collections.Generic.List of [InteractorActionPublisherFacade]s. + +#### [InteractorActionPublisherFacadeObservableList.UnityEvent] + +Defines the event with the [InteractorActionPublisherFacade]. + +#### [InteractorFacadeObservableList] + +Allows observing changes to a System.Collections.Generic.List of [InteractorFacade]s. + +#### [InteractorFacadeObservableList.UnityEvent] + +Defines the event with the [InteractorFacade]. + +[InteractorActionPublisherFacadeObservableList]: InteractorActionPublisherFacadeObservableList.md +[InteractorActionPublisherFacade]: ../../Interactors/InteractorActionPublisherFacade.md +[InteractorActionPublisherFacadeObservableList.UnityEvent]: InteractorActionPublisherFacadeObservableList.UnityEvent.md +[InteractorFacadeObservableList]: InteractorFacadeObservableList.md +[InteractorFacade]: ../../Interactors/InteractorFacade.md +[InteractorFacadeObservableList.UnityEvent]: InteractorFacadeObservableList.UnityEvent.md diff --git a/Documentation/API/Interactors/Collection/README.md.meta b/Documentation/API/Interactors/Collection/README.md.meta new file mode 100644 index 0000000..a3b2b5c --- /dev/null +++ b/Documentation/API/Interactors/Collection/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: baf4925bccb91f948afa2c4ee5a77c04 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/ComponentTags.meta b/Documentation/API/Interactors/ComponentTags.meta new file mode 100644 index 0000000..1146f66 --- /dev/null +++ b/Documentation/API/Interactors/ComponentTags.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3fb3d2ca158b1eb4fb345226bcdfde2c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/ComponentTags/AllowInteractorCollisionTag.md b/Documentation/API/Interactors/ComponentTags/AllowInteractorCollisionTag.md new file mode 100644 index 0000000..13860d4 --- /dev/null +++ b/Documentation/API/Interactors/ComponentTags/AllowInteractorCollisionTag.md @@ -0,0 +1,16 @@ +# Class AllowInteractorCollisionTag + +##### Inheritance + +* System.Object +* AllowInteractorCollisionTag + +###### **Namespace**: [Tilia.Interactions.Interactables.Interactors.ComponentTags] + +##### Syntax + +``` +public class AllowInteractorCollisionTag : MonoBehaviour +``` + +[Tilia.Interactions.Interactables.Interactors.ComponentTags]: README.md diff --git a/Documentation/API/Interactors/ComponentTags/AllowInteractorCollisionTag.md.meta b/Documentation/API/Interactors/ComponentTags/AllowInteractorCollisionTag.md.meta new file mode 100644 index 0000000..bffbe5a --- /dev/null +++ b/Documentation/API/Interactors/ComponentTags/AllowInteractorCollisionTag.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e5ee1e3936777e749a9797240b430a9b +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/ComponentTags/IgnoreInteractorCollisionTag.md b/Documentation/API/Interactors/ComponentTags/IgnoreInteractorCollisionTag.md new file mode 100644 index 0000000..73cdb13 --- /dev/null +++ b/Documentation/API/Interactors/ComponentTags/IgnoreInteractorCollisionTag.md @@ -0,0 +1,16 @@ +# Class IgnoreInteractorCollisionTag + +##### Inheritance + +* System.Object +* IgnoreInteractorCollisionTag + +###### **Namespace**: [Tilia.Interactions.Interactables.Interactors.ComponentTags] + +##### Syntax + +``` +public class IgnoreInteractorCollisionTag : MonoBehaviour +``` + +[Tilia.Interactions.Interactables.Interactors.ComponentTags]: README.md diff --git a/Documentation/API/Interactors/ComponentTags/IgnoreInteractorCollisionTag.md.meta b/Documentation/API/Interactors/ComponentTags/IgnoreInteractorCollisionTag.md.meta new file mode 100644 index 0000000..386a463 --- /dev/null +++ b/Documentation/API/Interactors/ComponentTags/IgnoreInteractorCollisionTag.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0e239d150637b854e9c71ae38992ed19 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/ComponentTags/README.md b/Documentation/API/Interactors/ComponentTags/README.md new file mode 100644 index 0000000..c990fa8 --- /dev/null +++ b/Documentation/API/Interactors/ComponentTags/README.md @@ -0,0 +1,10 @@ +# Namespace Tilia.Interactions.Interactables.Interactors.ComponentTags + +### Classes + +#### [AllowInteractorCollisionTag] + +#### [IgnoreInteractorCollisionTag] + +[AllowInteractorCollisionTag]: AllowInteractorCollisionTag.md +[IgnoreInteractorCollisionTag]: IgnoreInteractorCollisionTag.md diff --git a/Documentation/API/Interactors/ComponentTags/README.md.meta b/Documentation/API/Interactors/ComponentTags/README.md.meta new file mode 100644 index 0000000..b9dfde4 --- /dev/null +++ b/Documentation/API/Interactors/ComponentTags/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b9a3c61089d7c7243a0627cf36c040e3 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/Event.meta b/Documentation/API/Interactors/Event.meta new file mode 100644 index 0000000..a39c482 --- /dev/null +++ b/Documentation/API/Interactors/Event.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ceee7a76bbb928b41a6e272b92599650 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/Event/Proxy.meta b/Documentation/API/Interactors/Event/Proxy.meta new file mode 100644 index 0000000..fdf49ae --- /dev/null +++ b/Documentation/API/Interactors/Event/Proxy.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6da424577cfc35d45a18fde88630afc5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/Event/Proxy/InteractorFacadeEventProxyEmitter.UnityEvent.md b/Documentation/API/Interactors/Event/Proxy/InteractorFacadeEventProxyEmitter.UnityEvent.md new file mode 100644 index 0000000..7214691 --- /dev/null +++ b/Documentation/API/Interactors/Event/Proxy/InteractorFacadeEventProxyEmitter.UnityEvent.md @@ -0,0 +1,19 @@ +# Class InteractorFacadeEventProxyEmitter.UnityEvent + +Defines the event with the specified state. + +##### Inheritance + +* System.Object +* InteractorFacadeEventProxyEmitter.UnityEvent + +###### **Namespace**: [Tilia.Interactions.Interactables.Interactors.Event.Proxy] + +##### Syntax + +``` +[Serializable] +public class UnityEvent : InteractorFacadeEventProxyEmitter.UnityEvent +``` + +[Tilia.Interactions.Interactables.Interactors.Event.Proxy]: README.md diff --git a/Documentation/API/Interactors/Event/Proxy/InteractorFacadeEventProxyEmitter.UnityEvent.md.meta b/Documentation/API/Interactors/Event/Proxy/InteractorFacadeEventProxyEmitter.UnityEvent.md.meta new file mode 100644 index 0000000..8a46ec0 --- /dev/null +++ b/Documentation/API/Interactors/Event/Proxy/InteractorFacadeEventProxyEmitter.UnityEvent.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8f326cd82399da044af3b82ab907fe97 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/Event/Proxy/InteractorFacadeEventProxyEmitter.md b/Documentation/API/Interactors/Event/Proxy/InteractorFacadeEventProxyEmitter.md new file mode 100644 index 0000000..fa3d5c6 --- /dev/null +++ b/Documentation/API/Interactors/Event/Proxy/InteractorFacadeEventProxyEmitter.md @@ -0,0 +1,52 @@ +# Class InteractorFacadeEventProxyEmitter + +Emits a UnityEvent with an [InteractorFacade] payload whenever SingleEventProxyEmitter.Receive is called. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Methods] + * [GetTargetToCheck()] + +## Details + +##### Inheritance + +* System.Object +* InteractorFacadeEventProxyEmitter + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactors.Event.Proxy] + +##### Syntax + +``` +public class InteractorFacadeEventProxyEmitter : RestrictableSingleEventProxyEmitter +``` + +### Methods + +#### GetTargetToCheck() + +##### Declaration + +``` +protected override object GetTargetToCheck() +``` + +##### Returns + +| Type | Description | +| --- | --- | +| System.Object | n/a | + +[InteractorFacade]: ../../../Interactors/InteractorFacade.md +[Tilia.Interactions.Interactables.Interactors.Event.Proxy]: README.md +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Methods]: #Methods +[GetTargetToCheck()]: #GetTargetToCheck diff --git a/Documentation/API/Interactors/Event/Proxy/InteractorFacadeEventProxyEmitter.md.meta b/Documentation/API/Interactors/Event/Proxy/InteractorFacadeEventProxyEmitter.md.meta new file mode 100644 index 0000000..409def8 --- /dev/null +++ b/Documentation/API/Interactors/Event/Proxy/InteractorFacadeEventProxyEmitter.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bb5cad09e17132c4cb46e128b62f68c6 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/Event/Proxy/README.md b/Documentation/API/Interactors/Event/Proxy/README.md new file mode 100644 index 0000000..b28a01a --- /dev/null +++ b/Documentation/API/Interactors/Event/Proxy/README.md @@ -0,0 +1,15 @@ +# Namespace Tilia.Interactions.Interactables.Interactors.Event.Proxy + +### Classes + +#### [InteractorFacadeEventProxyEmitter] + +Emits a UnityEvent with an [InteractorFacade] payload whenever SingleEventProxyEmitter.Receive is called. + +#### [InteractorFacadeEventProxyEmitter.UnityEvent] + +Defines the event with the specified state. + +[InteractorFacadeEventProxyEmitter]: InteractorFacadeEventProxyEmitter.md +[InteractorFacade]: ../../../Interactors/InteractorFacade.md +[InteractorFacadeEventProxyEmitter.UnityEvent]: InteractorFacadeEventProxyEmitter.UnityEvent.md diff --git a/Documentation/API/Interactors/Event/Proxy/README.md.meta b/Documentation/API/Interactors/Event/Proxy/README.md.meta new file mode 100644 index 0000000..1415da2 --- /dev/null +++ b/Documentation/API/Interactors/Event/Proxy/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f878a2fb3fa36f14e8eb609a91e0e205 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/GrabInteractorConfigurator.md b/Documentation/API/Interactors/GrabInteractorConfigurator.md new file mode 100644 index 0000000..f2113d4 --- /dev/null +++ b/Documentation/API/Interactors/GrabInteractorConfigurator.md @@ -0,0 +1,337 @@ +# Class GrabInteractorConfigurator + +Sets up the Interactor Prefab grab settings based on the provided user settings. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Fields] + * [activeCollisionsEventData] +* [Properties] + * [Facade] + * [GrabAction] + * [GrabbedObjects] + * [GrabbedObjectsCollection] + * [InstantGrabProcessor] + * [MinPrecognitionTimer] + * [PrecognitionGrabProcessor] + * [PrecognitionTimer] + * [StartGrabbingPublisher] + * [StopGrabbingPublisher] + * [VelocityTracker] +* [Methods] + * [ChooseGrabProcessor()] + * [ConfigureGrabAction()] + * [ConfigureGrabPrecognition()] + * [ConfigureVelocityTrackers()] + * [CreateActiveCollisionsEventData(GameObject, Collision, Collider)] + * [Grab(InteractableFacade, Collision, Collider)] + * [OnAfterVelocityTrackerChange()] + * [OnEnable()] + * [ProcessGrabAction(ActiveCollisionPublisher, Boolean)] + * [Ungrab()] + +## Details + +##### Inheritance + +* System.Object +* GrabInteractorConfigurator + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactors] + +##### Syntax + +``` +public class GrabInteractorConfigurator : MonoBehaviour +``` + +### Fields + +#### activeCollisionsEventData + +A reusable instance of event data. + +##### Declaration + +``` +protected readonly ActiveCollisionsContainer.EventData activeCollisionsEventData +``` + +### Properties + +#### Facade + +The public interface facade. + +##### Declaration + +``` +public InteractorFacade Facade { get; protected set; } +``` + +#### GrabAction + +The BooleanAction that will initiate the Interactor grab mechanism. + +##### Declaration + +``` +public BooleanAction GrabAction { get; protected set; } +``` + +#### GrabbedObjects + +A collection of currently grabbed GameObjects. + +##### Declaration + +``` +public IReadOnlyList GrabbedObjects { get; } +``` + +#### GrabbedObjectsCollection + +The GameObjectObservableSet containing the currently grabbed objects. + +##### Declaration + +``` +public GameObjectObservableList GrabbedObjectsCollection { get; protected set; } +``` + +#### InstantGrabProcessor + +The processor for initiating an instant grab. + +##### Declaration + +``` +public GameObject InstantGrabProcessor { get; protected set; } +``` + +#### MinPrecognitionTimer + +The minimum timer value for the grab precognition CountdownTimer. + +##### Declaration + +``` +public float MinPrecognitionTimer { get; protected set; } +``` + +#### PrecognitionGrabProcessor + +The processor for initiating a precognitive grab. + +##### Declaration + +``` +public GameObject PrecognitionGrabProcessor { get; protected set; } +``` + +#### PrecognitionTimer + +The CountdownTimer to determine grab precognition. + +##### Declaration + +``` +public CountdownTimer PrecognitionTimer { get; protected set; } +``` + +#### StartGrabbingPublisher + +The ActiveCollisionPublisher for checking valid start grabbing action. + +##### Declaration + +``` +public ActiveCollisionPublisher StartGrabbingPublisher { get; protected set; } +``` + +#### StopGrabbingPublisher + +The ActiveCollisionPublisher for checking valid stop grabbing action. + +##### Declaration + +``` +public ActiveCollisionPublisher StopGrabbingPublisher { get; protected set; } +``` + +#### VelocityTracker + +The VelocityTrackerProcessor to measure the interactors current velocity for throwing on release. + +##### Declaration + +``` +public VelocityTrackerProcessor VelocityTracker { get; protected set; } +``` + +### Methods + +#### ChooseGrabProcessor() + +Chooses which grab processing to perform on the grab action. + +##### Declaration + +``` +protected virtual void ChooseGrabProcessor() +``` + +#### ConfigureGrabAction() + +Configures the action used to control grabbing. + +##### Declaration + +``` +public virtual void ConfigureGrabAction() +``` + +#### ConfigureGrabPrecognition() + +Configures the CountdownTimer components for grab precognition. + +##### Declaration + +``` +public virtual void ConfigureGrabPrecognition() +``` + +#### ConfigureVelocityTrackers() + +Configures the velocity tracker used for grabbing. + +##### Declaration + +``` +public virtual void ConfigureVelocityTrackers() +``` + +#### CreateActiveCollisionsEventData(GameObject, Collision, Collider) + +Creates Active Collision data based on the given parameters. + +##### Declaration + +``` +protected virtual ActiveCollisionsContainer.EventData CreateActiveCollisionsEventData(GameObject forwardSource, Collision collision = null, Collider collider = null) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| GameObject | forwardSource | The source of the GameObject forwarding the collision data. | +| Collision | collision | The data on the point of the collision for precision grabbing. | +| Collider | collider | The collider that has been collided with. | + +##### Returns + +| Type | Description | +| --- | --- | +| ActiveCollisionsContainer.EventData | n/a | + +#### Grab(InteractableFacade, Collision, Collider) + +Attempt to grab an Interactable to the current Interactor utilizing custom collision data. + +##### Declaration + +``` +public virtual void Grab(InteractableFacade interactable, Collision collision, Collider collider) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractableFacade] | interactable | The Interactable to attempt to grab. | +| Collision | collision | Custom collision data. | +| Collider | collider | Custom collider data. | + +#### OnAfterVelocityTrackerChange() + +Called after [VelocityTracker] has been changed. + +##### Declaration + +``` +protected virtual void OnAfterVelocityTrackerChange() +``` + +#### OnEnable() + +##### Declaration + +``` +protected virtual void OnEnable() +``` + +#### ProcessGrabAction(ActiveCollisionPublisher, Boolean) + +Processes the given collision data into a grab action based on the given state. + +##### Declaration + +``` +protected virtual void ProcessGrabAction(ActiveCollisionPublisher publisher, bool actionState) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| ActiveCollisionPublisher | publisher | The collision data to process. | +| System.Boolean | actionState | The grab state to check against. | + +#### Ungrab() + +Attempt to ungrab currently grabbed Interactables to the current Interactor. + +##### Declaration + +``` +public virtual void Ungrab() +``` + +[Tilia.Interactions.Interactables.Interactors]: README.md +[InteractorFacade]: InteractorFacade.md +[InteractableFacade]: ../Interactables/InteractableFacade.md +[VelocityTracker]: GrabInteractorConfigurator.md#VelocityTracker +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Fields]: #Fields +[activeCollisionsEventData]: #activeCollisionsEventData +[Properties]: #Properties +[Facade]: #Facade +[GrabAction]: #GrabAction +[GrabbedObjects]: #GrabbedObjects +[GrabbedObjectsCollection]: #GrabbedObjectsCollection +[InstantGrabProcessor]: #InstantGrabProcessor +[MinPrecognitionTimer]: #MinPrecognitionTimer +[PrecognitionGrabProcessor]: #PrecognitionGrabProcessor +[PrecognitionTimer]: #PrecognitionTimer +[StartGrabbingPublisher]: #StartGrabbingPublisher +[StopGrabbingPublisher]: #StopGrabbingPublisher +[VelocityTracker]: #VelocityTracker +[Methods]: #Methods +[ChooseGrabProcessor()]: #ChooseGrabProcessor +[ConfigureGrabAction()]: #ConfigureGrabAction +[ConfigureGrabPrecognition()]: #ConfigureGrabPrecognition +[ConfigureVelocityTrackers()]: #ConfigureVelocityTrackers +[CreateActiveCollisionsEventData(GameObject, Collision, Collider)]: #CreateActiveCollisionsEventDataGameObject, Collision, Collider +[Grab(InteractableFacade, Collision, Collider)]: #GrabInteractableFacade, Collision, Collider +[OnAfterVelocityTrackerChange()]: #OnAfterVelocityTrackerChange +[OnEnable()]: #OnEnable +[ProcessGrabAction(ActiveCollisionPublisher, Boolean)]: #ProcessGrabActionActiveCollisionPublisher, Boolean +[Ungrab()]: #Ungrab diff --git a/Documentation/API/Interactors/GrabInteractorConfigurator.md.meta b/Documentation/API/Interactors/GrabInteractorConfigurator.md.meta new file mode 100644 index 0000000..0c1c8e5 --- /dev/null +++ b/Documentation/API/Interactors/GrabInteractorConfigurator.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3e2f97ab6bbd7cb47bdab97c3ef8f310 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/InteractorActionPublisherConfigurator.md b/Documentation/API/Interactors/InteractorActionPublisherConfigurator.md new file mode 100644 index 0000000..b75eb71 --- /dev/null +++ b/Documentation/API/Interactors/InteractorActionPublisherConfigurator.md @@ -0,0 +1,205 @@ +# Class InteractorActionPublisherConfigurator + +Sets up the Interactor Action Publisher Prefab action settings based on the provided user settings. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Properties] + * [ActiveAction] + * [Facade] + * [StartActionPublisher] + * [StartActionStringCollection] + * [StopActionPublisher] + * [StopActionStringCollection] + * [TargetActions] +* [Methods] + * [LinkActiveCollisions()] + * [LinkSourceActionToTargetAction()] + * [LinkSourceContainerToPublishers()] + * [OnDisable()] + * [OnEnable()] + * [SetPublisherTags()] + * [UnlinkActiveCollisions()] + +## Details + +##### Inheritance + +* System.Object +* InteractorActionPublisherConfigurator + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactors] + +##### Syntax + +``` +public class InteractorActionPublisherConfigurator : MonoBehaviour +``` + +### Properties + +#### ActiveAction + +The current active Action. + +##### Declaration + +``` +public Action ActiveAction { get; protected set; } +``` + +#### Facade + +The public interface facade. + +##### Declaration + +``` +public InteractorActionPublisherFacade Facade { get; protected set; } +``` + +#### StartActionPublisher + +The ActiveCollisionPublisher for checking valid start action. + +##### Declaration + +``` +public ActiveCollisionPublisher StartActionPublisher { get; protected set; } +``` + +#### StartActionStringCollection + +The StringObservableList for tagging the valid start action. + +##### Declaration + +``` +public StringObservableList StartActionStringCollection { get; protected set; } +``` + +#### StopActionPublisher + +The ActiveCollisionPublisher for checking valid stop action. + +##### Declaration + +``` +public ActiveCollisionPublisher StopActionPublisher { get; protected set; } +``` + +#### StopActionStringCollection + +The StringObservableList for tagging the valid stop action. + +##### Declaration + +``` +public StringObservableList StopActionStringCollection { get; protected set; } +``` + +#### TargetActions + +The ActionObservableList that containts the Action collection that can be linked to the InteractorActionFacade.SourceAction. + +##### Declaration + +``` +public ActionObservableList TargetActions { get; protected set; } +``` + +### Methods + +#### LinkActiveCollisions() + +Links the start publisher to the InteractorActionFacade.SourceInteractor. + +##### Declaration + +``` +public virtual void LinkActiveCollisions() +``` + +#### LinkSourceActionToTargetAction() + +Links the InteractorActionFacade.SourceAction to the valid [TargetActions] Action. + +##### Declaration + +``` +public virtual void LinkSourceActionToTargetAction() +``` + +#### LinkSourceContainerToPublishers() + +Links the InteractorActionFacade.SourceInteractor to the payload source containers on the start and stop publishers. + +##### Declaration + +``` +public virtual void LinkSourceContainerToPublishers() +``` + +#### OnDisable() + +##### Declaration + +``` +protected virtual void OnDisable() +``` + +#### OnEnable() + +##### Declaration + +``` +protected virtual void OnEnable() +``` + +#### SetPublisherTags() + +Sets the tags of the relevant publishers to the facade identifier. + +##### Declaration + +``` +public virtual void SetPublisherTags() +``` + +#### UnlinkActiveCollisions() + +Unlinks the start publisher from the InteractorActionFacade.SourceInteractor. + +##### Declaration + +``` +public virtual void UnlinkActiveCollisions() +``` + +[Tilia.Interactions.Interactables.Interactors]: README.md +[InteractorActionPublisherFacade]: InteractorActionPublisherFacade.md +[TargetActions]: InteractorActionPublisherConfigurator.md#TargetActions +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Properties]: #Properties +[ActiveAction]: #ActiveAction +[Facade]: #Facade +[StartActionPublisher]: #StartActionPublisher +[StartActionStringCollection]: #StartActionStringCollection +[StopActionPublisher]: #StopActionPublisher +[StopActionStringCollection]: #StopActionStringCollection +[TargetActions]: #TargetActions +[Methods]: #Methods +[LinkActiveCollisions()]: #LinkActiveCollisions +[LinkSourceActionToTargetAction()]: #LinkSourceActionToTargetAction +[LinkSourceContainerToPublishers()]: #LinkSourceContainerToPublishers +[OnDisable()]: #OnDisable +[OnEnable()]: #OnEnable +[SetPublisherTags()]: #SetPublisherTags +[UnlinkActiveCollisions()]: #UnlinkActiveCollisions diff --git a/Documentation/API/Interactors/InteractorActionPublisherConfigurator.md.meta b/Documentation/API/Interactors/InteractorActionPublisherConfigurator.md.meta new file mode 100644 index 0000000..d16325a --- /dev/null +++ b/Documentation/API/Interactors/InteractorActionPublisherConfigurator.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5b9c7437344708a4d9ed3998ef937812 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/InteractorActionPublisherFacade.md b/Documentation/API/Interactors/InteractorActionPublisherFacade.md new file mode 100644 index 0000000..ad51df5 --- /dev/null +++ b/Documentation/API/Interactors/InteractorActionPublisherFacade.md @@ -0,0 +1,154 @@ +# Class InteractorActionPublisherFacade + +The public interface into the Interactor Action Publisher Prefab. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Properties] + * [ActiveAction] + * [Configuration] + * [PublisherIdentifier] + * [SourceAction] + * [SourceInteractor] +* [Methods] + * [OnAfterPublisherIdentifierChange()] + * [OnAfterSourceActionChange()] + * [OnAfterSourceInteractorChange()] + * [OnBeforeSourceInteractorChange()] + +## Details + +##### Inheritance + +* System.Object +* InteractorActionPublisherFacade + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactors] + +##### Syntax + +``` +public class InteractorActionPublisherFacade : MonoBehaviour +``` + +### Properties + +#### ActiveAction + +The current active Action. + +##### Declaration + +``` +public Action ActiveAction { get; } +``` + +#### Configuration + +The Action that will be linked to the [SourceAction]. + +##### Declaration + +``` +public InteractorActionPublisherConfigurator Configuration { get; protected set; } +``` + +#### PublisherIdentifier + +An indentifier for the publisher that is used by the Action Receiver to create the link between publisher and receiver. + +##### Declaration + +``` +public string PublisherIdentifier { get; set; } +``` + +#### SourceAction + +The Action to be monitored to control the interaction. + +##### Declaration + +``` +public Action SourceAction { get; set; } +``` + +#### SourceInteractor + +The source [InteractorFacade] that the action will be processed through. + +##### Declaration + +``` +public InteractorFacade SourceInteractor { get; set; } +``` + +### Methods + +#### OnAfterPublisherIdentifierChange() + +Called after [PublisherIdentifier] has been changed. + +##### Declaration + +``` +protected virtual void OnAfterPublisherIdentifierChange() +``` + +#### OnAfterSourceActionChange() + +Called after [SourceAction] has been changed. + +##### Declaration + +``` +protected virtual void OnAfterSourceActionChange() +``` + +#### OnAfterSourceInteractorChange() + +Called after [SourceInteractor] has been changed. + +##### Declaration + +``` +protected virtual void OnAfterSourceInteractorChange() +``` + +#### OnBeforeSourceInteractorChange() + +Called before [SourceInteractor] has been changed. + +##### Declaration + +``` +protected virtual void OnBeforeSourceInteractorChange() +``` + +[Tilia.Interactions.Interactables.Interactors]: README.md +[SourceAction]: InteractorActionPublisherFacade.md#SourceAction +[InteractorActionPublisherConfigurator]: InteractorActionPublisherConfigurator.md +[InteractorFacade]: InteractorFacade.md +[PublisherIdentifier]: InteractorActionPublisherFacade.md#PublisherIdentifier +[SourceAction]: InteractorActionPublisherFacade.md#SourceAction +[SourceInteractor]: InteractorActionPublisherFacade.md#SourceInteractor +[SourceInteractor]: InteractorActionPublisherFacade.md#SourceInteractor +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Properties]: #Properties +[ActiveAction]: #ActiveAction +[Configuration]: #Configuration +[PublisherIdentifier]: #PublisherIdentifier +[SourceAction]: #SourceAction +[SourceInteractor]: #SourceInteractor +[Methods]: #Methods +[OnAfterPublisherIdentifierChange()]: #OnAfterPublisherIdentifierChange +[OnAfterSourceActionChange()]: #OnAfterSourceActionChange +[OnAfterSourceInteractorChange()]: #OnAfterSourceInteractorChange +[OnBeforeSourceInteractorChange()]: #OnBeforeSourceInteractorChange diff --git a/Documentation/API/Interactors/InteractorActionPublisherFacade.md.meta b/Documentation/API/Interactors/InteractorActionPublisherFacade.md.meta new file mode 100644 index 0000000..52b1dd0 --- /dev/null +++ b/Documentation/API/Interactors/InteractorActionPublisherFacade.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 46fe9076ac60de3449ccc0cfd4e21f7e +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/InteractorFacade.UnityEvent.md b/Documentation/API/Interactors/InteractorFacade.UnityEvent.md new file mode 100644 index 0000000..f19bde4 --- /dev/null +++ b/Documentation/API/Interactors/InteractorFacade.UnityEvent.md @@ -0,0 +1,20 @@ +# Class InteractorFacade.UnityEvent + +Defines the event with the [InteractableFacade]. + +##### Inheritance + +* System.Object +* InteractorFacade.UnityEvent + +###### **Namespace**: [Tilia.Interactions.Interactables.Interactors] + +##### Syntax + +``` +[Serializable] +public class UnityEvent : InteractorFacade.UnityEvent +``` + +[InteractableFacade]: ../Interactables/InteractableFacade.md +[Tilia.Interactions.Interactables.Interactors]: README.md diff --git a/Documentation/API/Interactors/InteractorFacade.UnityEvent.md.meta b/Documentation/API/Interactors/InteractorFacade.UnityEvent.md.meta new file mode 100644 index 0000000..da248df --- /dev/null +++ b/Documentation/API/Interactors/InteractorFacade.UnityEvent.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5438ac576594fd8428d864cc1479ce79 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/InteractorFacade.md b/Documentation/API/Interactors/InteractorFacade.md new file mode 100644 index 0000000..061f381 --- /dev/null +++ b/Documentation/API/Interactors/InteractorFacade.md @@ -0,0 +1,414 @@ +# Class InteractorFacade + +The public interface into the Interactor Prefab. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Fields] + * [Grabbed] + * [Touched] + * [Ungrabbed] + * [Untouched] +* [Properties] + * [ActiveTouchedObject] + * [AvatarContainer] + * [GrabAction] + * [GrabAttachPoint] + * [GrabbedObjects] + * [GrabConfiguration] + * [GrabPrecognition] + * [TouchConfiguration] + * [TouchedObjects] + * [VelocityTracker] +* [Methods] + * [Grab(GameObject)] + * [Grab(SurfaceData)] + * [Grab(InteractableFacade)] + * [Grab(InteractableFacade, Collision, Collider)] + * [NotifyOfGrab(InteractableFacade)] + * [NotifyOfTouch(InteractableFacade)] + * [NotifyOfUngrab(InteractableFacade)] + * [NotifyOfUntouch(InteractableFacade)] + * [OnAfterGrabActionChange()] + * [OnAfterGrabPrecognitionChange()] + * [OnAfterVelocityTrackerChange()] + * [Ungrab()] + +## Details + +##### Inheritance + +* System.Object +* InteractorFacade + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactors] + +##### Syntax + +``` +public class InteractorFacade : MonoBehaviour +``` + +### Fields + +#### Grabbed + +Emitted when the Interactor starts grabbing a valid Interactable. + +##### Declaration + +``` +public InteractorFacade.UnityEvent Grabbed +``` + +#### Touched + +Emitted when the Interactor starts touching a valid Interactable. + +##### Declaration + +``` +public InteractorFacade.UnityEvent Touched +``` + +#### Ungrabbed + +Emitted when the Interactor stops grabbing a valid Interactable. + +##### Declaration + +``` +public InteractorFacade.UnityEvent Ungrabbed +``` + +#### Untouched + +Emitted when the Interactor stops touching a valid Interactable. + +##### Declaration + +``` +public InteractorFacade.UnityEvent Untouched +``` + +### Properties + +#### ActiveTouchedObject + +The currently active touched GameObject. + +##### Declaration + +``` +public GameObject ActiveTouchedObject { get; } +``` + +#### AvatarContainer + +The container of the Interactor avatar components. + +##### Declaration + +``` +public GameObject AvatarContainer { get; protected set; } +``` + +#### GrabAction + +The BooleanAction that will initiate the Interactor grab mechanism. + +##### Declaration + +``` +public BooleanAction GrabAction { get; set; } +``` + +#### GrabAttachPoint + +The point at which the grabbed Interactable will be attached to the Interactor. + +##### Declaration + +``` +public GameObject GrabAttachPoint { get; set; } +``` + +#### GrabbedObjects + +A collection of currently grabbed GameObjects. + +##### Declaration + +``` +public IReadOnlyList GrabbedObjects { get; } +``` + +#### GrabConfiguration + +The linked Grab Internal Setup. + +##### Declaration + +``` +public GrabInteractorConfigurator GrabConfiguration { get; protected set; } +``` + +#### GrabPrecognition + +The time between initiating the [GrabAction] and touching an Interactable to be considered a valid grab. + +##### Declaration + +``` +public float GrabPrecognition { get; set; } +``` + +#### TouchConfiguration + +The linked Touch Internal Setup. + +##### Declaration + +``` +public TouchInteractorConfigurator TouchConfiguration { get; protected set; } +``` + +#### TouchedObjects + +A collection of currently touched GameObjects. + +##### Declaration + +``` +public IReadOnlyList TouchedObjects { get; } +``` + +#### VelocityTracker + +The VelocityTrackerProcessor to measure the interactors current velocity. + +##### Declaration + +``` +public VelocityTrackerProcessor VelocityTracker { get; set; } +``` + +### Methods + +#### Grab(GameObject) + +Attempt to attach a GameObject that contains an [InteractableFacade] to this [InteractorFacade]. + +##### Declaration + +``` +public virtual void Grab(GameObject interactable) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| GameObject | interactable | The GameObject that the Interactable is on. | + +#### Grab(SurfaceData) + +Attempt to attach an [InteractableFacade] found in the given SurfaceData to this [InteractorFacade]. + +##### Declaration + +``` +public virtual void Grab(SurfaceData data) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| SurfaceData | data | The collision data containing a valid Interactable. | + +#### Grab(InteractableFacade) + +Attempt to attach an [InteractableFacade] to this [InteractorFacade]. + +##### Declaration + +``` +public virtual void Grab(InteractableFacade interactable) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractableFacade] | interactable | The Interactable to attempt to grab. | + +#### Grab(InteractableFacade, Collision, Collider) + +Attempt to attach an [InteractableFacade] to this [InteractorFacade] utilizing custom collision data. + +##### Declaration + +``` +public virtual void Grab(InteractableFacade interactable, Collision collision, Collider collider) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractableFacade] | interactable | The Interactable to attempt to grab. | +| Collision | collision | Custom collision data. | +| Collider | collider | Custom collider data. | + +#### NotifyOfGrab(InteractableFacade) + +Notifies the interactor that it is grabbing an interactable. + +##### Declaration + +``` +public virtual void NotifyOfGrab(InteractableFacade interactable) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractableFacade] | interactable | The interactable being grabbed. | + +#### NotifyOfTouch(InteractableFacade) + +Notifies the interactor that it is touching an interactable. + +##### Declaration + +``` +public virtual void NotifyOfTouch(InteractableFacade interactable) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractableFacade] | interactable | The interactable being touched. | + +#### NotifyOfUngrab(InteractableFacade) + +Notifies the interactor that it is no longer grabbing an interactable. + +##### Declaration + +``` +public virtual void NotifyOfUngrab(InteractableFacade interactable) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractableFacade] | interactable | The interactable being ungrabbed. | + +#### NotifyOfUntouch(InteractableFacade) + +Notifies the interactor that it is no longer touching an interactable. + +##### Declaration + +``` +public virtual void NotifyOfUntouch(InteractableFacade interactable) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractableFacade] | interactable | The interactable being untouched. | + +#### OnAfterGrabActionChange() + +Called after [GrabAction] has been changed. + +##### Declaration + +``` +protected virtual void OnAfterGrabActionChange() +``` + +#### OnAfterGrabPrecognitionChange() + +Called after [GrabPrecognition] has been changed. + +##### Declaration + +``` +protected virtual void OnAfterGrabPrecognitionChange() +``` + +#### OnAfterVelocityTrackerChange() + +Called after [VelocityTracker] has been changed. + +##### Declaration + +``` +protected virtual void OnAfterVelocityTrackerChange() +``` + +#### Ungrab() + +Attempt to ungrab currently grabbed Interactables to the current Interactor. + +##### Declaration + +``` +public virtual void Ungrab() +``` + +[Tilia.Interactions.Interactables.Interactors]: README.md +[InteractorFacade.UnityEvent]: InteractorFacade.UnityEvent.md +[GrabInteractorConfigurator]: GrabInteractorConfigurator.md +[GrabAction]: InteractorFacade.md#GrabAction +[TouchInteractorConfigurator]: TouchInteractorConfigurator.md +[InteractableFacade]: ../Interactables/InteractableFacade.md +[InteractorFacade]: InteractorFacade.md +[GrabAction]: InteractorFacade.md#GrabAction +[GrabPrecognition]: InteractorFacade.md#GrabPrecognition +[VelocityTracker]: InteractorFacade.md#VelocityTracker +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Fields]: #Fields +[Grabbed]: #Grabbed +[Touched]: #Touched +[Ungrabbed]: #Ungrabbed +[Untouched]: #Untouched +[Properties]: #Properties +[ActiveTouchedObject]: #ActiveTouchedObject +[AvatarContainer]: #AvatarContainer +[GrabAction]: #GrabAction +[GrabAttachPoint]: #GrabAttachPoint +[GrabbedObjects]: #GrabbedObjects +[GrabConfiguration]: #GrabConfiguration +[GrabPrecognition]: #GrabPrecognition +[TouchConfiguration]: #TouchConfiguration +[TouchedObjects]: #TouchedObjects +[VelocityTracker]: #VelocityTracker +[Methods]: #Methods +[Grab(GameObject)]: #GrabGameObject +[Grab(SurfaceData)]: #GrabSurfaceData +[Grab(InteractableFacade)]: #GrabInteractableFacade +[Grab(InteractableFacade, Collision, Collider)]: #GrabInteractableFacade, Collision, Collider +[NotifyOfGrab(InteractableFacade)]: #NotifyOfGrabInteractableFacade +[NotifyOfTouch(InteractableFacade)]: #NotifyOfTouchInteractableFacade +[NotifyOfUngrab(InteractableFacade)]: #NotifyOfUngrabInteractableFacade +[NotifyOfUntouch(InteractableFacade)]: #NotifyOfUntouchInteractableFacade +[OnAfterGrabActionChange()]: #OnAfterGrabActionChange +[OnAfterGrabPrecognitionChange()]: #OnAfterGrabPrecognitionChange +[OnAfterVelocityTrackerChange()]: #OnAfterVelocityTrackerChange +[Ungrab()]: #Ungrab diff --git a/Documentation/API/Interactors/InteractorFacade.md.meta b/Documentation/API/Interactors/InteractorFacade.md.meta new file mode 100644 index 0000000..c9c9515 --- /dev/null +++ b/Documentation/API/Interactors/InteractorFacade.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9d8f54e29c2967f4e88405b0bd17b7aa +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/InteractorFacadeSettingsModifier.InteractorElement.md b/Documentation/API/Interactors/InteractorFacadeSettingsModifier.InteractorElement.md new file mode 100644 index 0000000..8c50281 --- /dev/null +++ b/Documentation/API/Interactors/InteractorFacadeSettingsModifier.InteractorElement.md @@ -0,0 +1,264 @@ +# Class InteractorFacadeSettingsModifier.InteractorElement + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Fields] + * [cachedGrabAction] + * [cachedGrabPrecognition] + * [cachedVelocityTracker] +* [Properties] + * [TargetFacade] + * [TargetGrabAction] + * [TargetGrabPrecognition] + * [TargetVelocityTracker] +* [Methods] + * [OnAfterFacadeChange()] + * [RestoreCachedGrabAction()] + * [RestoreCachedGrabPrecognition()] + * [RestoreCachedVelocityTracker()] + * [SetTargetGrabAction(Boolean)] + * [SetTargetGrabPrecognition(Boolean)] + * [SetTargetVelocityTracker(Boolean)] + +## Details + +##### Inheritance + +* System.Object +* InteractorFacadeSettingsModifier.InteractorElement + +##### Inherited Members + +System.Object.ToString() + +System.Object.Equals(System.Object) + +System.Object.Equals(System.Object, System.Object) + +System.Object.ReferenceEquals(System.Object, System.Object) + +System.Object.GetHashCode() + +System.Object.GetType() + +System.Object.MemberwiseClone() + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactors] + +##### Syntax + +``` +[Serializable] +public class InteractorElement +``` + +### Fields + +#### cachedGrabAction + +The original BooleanAction on the [TargetFacade] to revert back to. + +##### Declaration + +``` +protected BooleanAction cachedGrabAction +``` + +#### cachedGrabPrecognition + +The original GrabPrecognition on the [TargetFacade] to revert back to. + +##### Declaration + +``` +protected float cachedGrabPrecognition +``` + +#### cachedVelocityTracker + +The original VelocityTrackerProcessor on the [TargetFacade] to revert back to. + +##### Declaration + +``` +protected VelocityTrackerProcessor cachedVelocityTracker +``` + +### Properties + +#### TargetFacade + +The [InteractorFacade] to modify the settings on. + +##### Declaration + +``` +public InteractorFacade TargetFacade { get; set; } +``` + +#### TargetGrabAction + +The BooleanAction to update the [GrabAction] to. + +##### Declaration + +``` +public BooleanAction TargetGrabAction { get; set; } +``` + +#### TargetGrabPrecognition + +The updated value to set the [GrabPrecognition] to. + +##### Declaration + +``` +public float TargetGrabPrecognition { get; set; } +``` + +#### TargetVelocityTracker + +The VelocityTrackerProcessor to update the [VelocityTracker] to. + +##### Declaration + +``` +public VelocityTrackerProcessor TargetVelocityTracker { get; set; } +``` + +### Methods + +#### OnAfterFacadeChange() + +Called after [TargetFacade] has been changed. + +##### Declaration + +``` +protected virtual void OnAfterFacadeChange() +``` + +#### RestoreCachedGrabAction() + +Restores the cached [GrabAction]. + +##### Declaration + +``` +public virtual void RestoreCachedGrabAction() +``` + +#### RestoreCachedGrabPrecognition() + +Restores the cached [GrabPrecognition]. + +##### Declaration + +``` +public virtual void RestoreCachedGrabPrecognition() +``` + +#### RestoreCachedVelocityTracker() + +Restores the cached [VelocityTracker]. + +##### Declaration + +``` +public virtual void RestoreCachedVelocityTracker() +``` + +#### SetTargetGrabAction(Boolean) + +Sets the [GrabAction] to the value of [TargetGrabAction]. + +##### Declaration + +``` +public virtual void SetTargetGrabAction(bool cacheCurrentGrabAction) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| System.Boolean | cacheCurrentGrabAction | Caches the current [GrabAction] value to be restored later. | + +#### SetTargetGrabPrecognition(Boolean) + +Sets the [GrabPrecognition] to the value of [TargetGrabPrecognition]. + +##### Declaration + +``` +public virtual void SetTargetGrabPrecognition(bool cacheCurrentGrabPrecognition) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| System.Boolean | cacheCurrentGrabPrecognition | Caches the current [GrabPrecognition] value to be restored later. | + +#### SetTargetVelocityTracker(Boolean) + +Sets the [VelocityTracker] to the value of [TargetVelocityTracker]. + +##### Declaration + +``` +public virtual void SetTargetVelocityTracker(bool cacheCurrentVelocityTracker) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| System.Boolean | cacheCurrentVelocityTracker | Caches the current [VelocityTracker] value to be restored later. | + +[Tilia.Interactions.Interactables.Interactors]: README.md +[TargetFacade]: InteractorFacadeSettingsModifier.InteractorElement.md#TargetFacade +[TargetFacade]: InteractorFacadeSettingsModifier.InteractorElement.md#TargetFacade +[TargetFacade]: InteractorFacadeSettingsModifier.InteractorElement.md#TargetFacade +[InteractorFacade]: InteractorFacade.md +[GrabAction]: InteractorFacade.md#Tilia_Interactions_Interactables_Interactors_InteractorFacade_GrabAction +[GrabPrecognition]: InteractorFacade.md#Tilia_Interactions_Interactables_Interactors_InteractorFacade_GrabPrecognition +[VelocityTracker]: InteractorFacade.md#Tilia_Interactions_Interactables_Interactors_InteractorFacade_VelocityTracker +[TargetFacade]: InteractorFacadeSettingsModifier.InteractorElement.md#TargetFacade +[GrabAction]: InteractorFacade.md#Tilia_Interactions_Interactables_Interactors_InteractorFacade_GrabAction +[GrabPrecognition]: InteractorFacade.md#Tilia_Interactions_Interactables_Interactors_InteractorFacade_GrabPrecognition +[VelocityTracker]: InteractorFacade.md#Tilia_Interactions_Interactables_Interactors_InteractorFacade_VelocityTracker +[GrabAction]: InteractorFacade.md#Tilia_Interactions_Interactables_Interactors_InteractorFacade_GrabAction +[TargetGrabAction]: InteractorFacadeSettingsModifier.InteractorElement.md#TargetGrabAction +[GrabAction]: InteractorFacade.md#Tilia_Interactions_Interactables_Interactors_InteractorFacade_GrabAction +[GrabPrecognition]: InteractorFacade.md#Tilia_Interactions_Interactables_Interactors_InteractorFacade_GrabPrecognition +[TargetGrabPrecognition]: InteractorFacadeSettingsModifier.InteractorElement.md#TargetGrabPrecognition +[GrabPrecognition]: InteractorFacade.md#Tilia_Interactions_Interactables_Interactors_InteractorFacade_GrabPrecognition +[VelocityTracker]: InteractorFacade.md#Tilia_Interactions_Interactables_Interactors_InteractorFacade_VelocityTracker +[TargetVelocityTracker]: InteractorFacadeSettingsModifier.InteractorElement.md#TargetVelocityTracker +[VelocityTracker]: InteractorFacade.md#Tilia_Interactions_Interactables_Interactors_InteractorFacade_VelocityTracker +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Fields]: #Fields +[cachedGrabAction]: #cachedGrabAction +[cachedGrabPrecognition]: #cachedGrabPrecognition +[cachedVelocityTracker]: #cachedVelocityTracker +[Properties]: #Properties +[TargetFacade]: #TargetFacade +[TargetGrabAction]: #TargetGrabAction +[TargetGrabPrecognition]: #TargetGrabPrecognition +[TargetVelocityTracker]: #TargetVelocityTracker +[Methods]: #Methods +[OnAfterFacadeChange()]: #OnAfterFacadeChange +[RestoreCachedGrabAction()]: #RestoreCachedGrabAction +[RestoreCachedGrabPrecognition()]: #RestoreCachedGrabPrecognition +[RestoreCachedVelocityTracker()]: #RestoreCachedVelocityTracker +[SetTargetGrabAction(Boolean)]: #SetTargetGrabActionBoolean +[SetTargetGrabPrecognition(Boolean)]: #SetTargetGrabPrecognitionBoolean +[SetTargetVelocityTracker(Boolean)]: #SetTargetVelocityTrackerBoolean diff --git a/Documentation/API/Interactors/InteractorFacadeSettingsModifier.InteractorElement.md.meta b/Documentation/API/Interactors/InteractorFacadeSettingsModifier.InteractorElement.md.meta new file mode 100644 index 0000000..cc007b1 --- /dev/null +++ b/Documentation/API/Interactors/InteractorFacadeSettingsModifier.InteractorElement.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0a3dcb823e3594940a4c9545d773d06a +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/InteractorFacadeSettingsModifier.md b/Documentation/API/Interactors/InteractorFacadeSettingsModifier.md new file mode 100644 index 0000000..ce4b44f --- /dev/null +++ b/Documentation/API/Interactors/InteractorFacadeSettingsModifier.md @@ -0,0 +1,188 @@ +# Class InteractorFacadeSettingsModifier + +Allows the modification of the settings on a specified [InteractorFacade] found in a collection. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Properties] + * [CacheElementSettings] + * [Elements] +* [Methods] + * [RestoreCachedGrabAction(InteractorFacade)] + * [RestoreCachedGrabPrecognition(InteractorFacade)] + * [RestoreCachedVelocityTracker(InteractorFacade)] + * [SetTargetGrabActionFor(InteractorFacade)] + * [SetTargetGrabPrecognition(InteractorFacade)] + * [SetTargetVelocityTracker(InteractorFacade)] + +## Details + +##### Inheritance + +* System.Object +* InteractorFacadeSettingsModifier + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactors] + +##### Syntax + +``` +public class InteractorFacadeSettingsModifier : MonoBehaviour +``` + +### Properties + +#### CacheElementSettings + +Determines whether to cache the element settings when attempting to set them. + +##### Declaration + +``` +public bool CacheElementSettings { get; set; } +``` + +#### Elements + +The [InteractorFacadeSettingsModifier.InteractorElement] collection of settings to modify per [InteractorFacade]. + +##### Declaration + +``` +public List Elements { get; set; } +``` + +### Methods + +#### RestoreCachedGrabAction(InteractorFacade) + +Matches the given [InteractorFacade] in the [Elements] and restores the cached [GrabAction]. + +##### Declaration + +``` +public virtual void RestoreCachedGrabAction(InteractorFacade interactorFacade) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractorFacade] | interactorFacade | The [InteractorFacade] to update. | + +#### RestoreCachedGrabPrecognition(InteractorFacade) + +Matches the given [InteractorFacade] in the [Elements] and restores the cached [GrabPrecognition]. + +##### Declaration + +``` +public virtual void RestoreCachedGrabPrecognition(InteractorFacade interactorFacade) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractorFacade] | interactorFacade | The [InteractorFacade] to update. | + +#### RestoreCachedVelocityTracker(InteractorFacade) + +Matches the given [InteractorFacade] in the [Elements] and restores the cached [VelocityTracker]. + +##### Declaration + +``` +public virtual void RestoreCachedVelocityTracker(InteractorFacade interactorFacade) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractorFacade] | interactorFacade | The [InteractorFacade] to update. | + +#### SetTargetGrabActionFor(InteractorFacade) + +Matches the given [InteractorFacade] in the [Elements] and updates the [GrabAction] with the relevant [TargetGrabAction]. + +##### Declaration + +``` +public virtual void SetTargetGrabActionFor(InteractorFacade interactorFacade) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractorFacade] | interactorFacade | The [InteractorFacade] to update. | + +#### SetTargetGrabPrecognition(InteractorFacade) + +Matches the given [InteractorFacade] in the [Elements] and updates the [GrabPrecognition] with the relevant [TargetGrabPrecognition]. + +##### Declaration + +``` +public virtual void SetTargetGrabPrecognition(InteractorFacade interactorFacade) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractorFacade] | interactorFacade | The [InteractorFacade] to update. | + +#### SetTargetVelocityTracker(InteractorFacade) + +Matches the given [InteractorFacade] in the [Elements] and updates the [VelocityTracker] with the relevant [TargetVelocityTracker]. + +##### Declaration + +``` +public virtual void SetTargetVelocityTracker(InteractorFacade interactorFacade) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractorFacade] | interactorFacade | The [InteractorFacade] to update. | + +[Tilia.Interactions.Interactables.Interactors]: README.md +[InteractorFacadeSettingsModifier.InteractorElement]: InteractorFacadeSettingsModifier.InteractorElement.md +[Elements]: InteractorFacadeSettingsModifier.md#Elements +[GrabAction]: InteractorFacade.md#Tilia_Interactions_Interactables_Interactors_InteractorFacade_GrabAction +[Elements]: InteractorFacadeSettingsModifier.md#Elements +[GrabPrecognition]: InteractorFacade.md#Tilia_Interactions_Interactables_Interactors_InteractorFacade_GrabPrecognition +[Elements]: InteractorFacadeSettingsModifier.md#Elements +[VelocityTracker]: InteractorFacade.md#Tilia_Interactions_Interactables_Interactors_InteractorFacade_VelocityTracker +[Elements]: InteractorFacadeSettingsModifier.md#Elements +[GrabAction]: InteractorFacade.md#Tilia_Interactions_Interactables_Interactors_InteractorFacade_GrabAction +[TargetGrabAction]: InteractorFacadeSettingsModifier.InteractorElement.md#InteractorElement_TargetGrabAction +[Elements]: InteractorFacadeSettingsModifier.md#Elements +[GrabPrecognition]: InteractorFacade.md#Tilia_Interactions_Interactables_Interactors_InteractorFacade_GrabPrecognition +[TargetGrabPrecognition]: InteractorFacadeSettingsModifier.InteractorElement.md#InteractorElement_TargetGrabPrecognition +[Elements]: InteractorFacadeSettingsModifier.md#Elements +[VelocityTracker]: InteractorFacade.md#Tilia_Interactions_Interactables_Interactors_InteractorFacade_VelocityTracker +[TargetVelocityTracker]: InteractorFacadeSettingsModifier.InteractorElement.md#InteractorElement_TargetVelocityTracker +[InteractorFacade]: InteractorFacade.md +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Properties]: #Properties +[CacheElementSettings]: #CacheElementSettings +[Elements]: #Elements +[Methods]: #Methods +[RestoreCachedGrabAction(InteractorFacade)]: #RestoreCachedGrabActionInteractorFacade +[RestoreCachedGrabPrecognition(InteractorFacade)]: #RestoreCachedGrabPrecognitionInteractorFacade +[RestoreCachedVelocityTracker(InteractorFacade)]: #RestoreCachedVelocityTrackerInteractorFacade +[SetTargetGrabActionFor(InteractorFacade)]: #SetTargetGrabActionForInteractorFacade +[SetTargetGrabPrecognition(InteractorFacade)]: #SetTargetGrabPrecognitionInteractorFacade +[SetTargetVelocityTracker(InteractorFacade)]: #SetTargetVelocityTrackerInteractorFacade diff --git a/Documentation/API/Interactors/InteractorFacadeSettingsModifier.md.meta b/Documentation/API/Interactors/InteractorFacadeSettingsModifier.md.meta new file mode 100644 index 0000000..0e53971 --- /dev/null +++ b/Documentation/API/Interactors/InteractorFacadeSettingsModifier.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8bcbbf85a009ee84e84cbeb41375cf95 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/Operation.meta b/Documentation/API/Interactors/Operation.meta new file mode 100644 index 0000000..82c6c54 --- /dev/null +++ b/Documentation/API/Interactors/Operation.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1b70bd3fdd0a02543a85ebd4463f7266 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/Operation/Extraction.meta b/Documentation/API/Interactors/Operation/Extraction.meta new file mode 100644 index 0000000..b82a9f1 --- /dev/null +++ b/Documentation/API/Interactors/Operation/Extraction.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ab116cfa935ff854ea3afa8c95525b55 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/Operation/Extraction/InteractorAttachPointExtractor.md b/Documentation/API/Interactors/Operation/Extraction/InteractorAttachPointExtractor.md new file mode 100644 index 0000000..14c8176 --- /dev/null +++ b/Documentation/API/Interactors/Operation/Extraction/InteractorAttachPointExtractor.md @@ -0,0 +1,94 @@ +# Class InteractorAttachPointExtractor + +Extracts the attach point GameObject from an [InteractorFacade]. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Methods] + * [DoExtract(GameObject)] + * [Extract(GameObject)] + * [ExtractValue()] + +## Details + +##### Inheritance + +* System.Object +* InteractorAttachPointExtractor + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactors.Operation.Extraction] + +##### Syntax + +``` +public class InteractorAttachPointExtractor : ComponentGameObjectExtractor +``` + +### Methods + +#### DoExtract(GameObject) + +Extracts the attach point associated with the grabbing functionality of the Interactor. + +##### Declaration + +``` +public virtual void DoExtract(GameObject interactorContainer) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| GameObject | interactorContainer | The container that has an [InteractorFacade] component to extract from. | + +#### Extract(GameObject) + +Extracts the attach point associated with the grabbing functionality of the Interactor. + +##### Declaration + +``` +public virtual GameObject Extract(GameObject interactorContainer) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| GameObject | interactorContainer | The container that has an [InteractorFacade] component to extract from. | + +##### Returns + +| Type | Description | +| --- | --- | +| GameObject | The attach point. | + +#### ExtractValue() + +##### Declaration + +``` +protected override GameObject ExtractValue() +``` + +##### Returns + +| Type | Description | +| --- | --- | +| GameObject | n/a | + +[InteractorFacade]: ../../../Interactors/InteractorFacade.md +[Tilia.Interactions.Interactables.Interactors.Operation.Extraction]: README.md +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Methods]: #Methods +[DoExtract(GameObject)]: #DoExtractGameObject +[Extract(GameObject)]: #ExtractGameObject +[ExtractValue()]: #ExtractValue diff --git a/Documentation/API/Interactors/Operation/Extraction/InteractorAttachPointExtractor.md.meta b/Documentation/API/Interactors/Operation/Extraction/InteractorAttachPointExtractor.md.meta new file mode 100644 index 0000000..b1de4a3 --- /dev/null +++ b/Documentation/API/Interactors/Operation/Extraction/InteractorAttachPointExtractor.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b3e7c37d7c699184c87a5782a25096bb +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/Operation/Extraction/InteractorExtractor.md b/Documentation/API/Interactors/Operation/Extraction/InteractorExtractor.md new file mode 100644 index 0000000..0da5d0c --- /dev/null +++ b/Documentation/API/Interactors/Operation/Extraction/InteractorExtractor.md @@ -0,0 +1,156 @@ +# Class InteractorExtractor + +Extracts a GameObject relevant to the extraction method from an [InteractorFacade]. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Fields] + * [cachedGrabAttachPoint] +* [Methods] + * [DoExtractAttachPoint(GameObject)] + * [DoExtractAttachPoint(InteractorFacade)] + * [ExtractAttachPoint(GameObject)] + * [ExtractAttachPoint(InteractorFacade)] + * [ExtractValue()] + +## Details + +##### Inheritance + +* System.Object +* InteractorExtractor + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactors.Operation.Extraction] + +##### Syntax + +``` +public class InteractorExtractor : ComponentGameObjectExtractor +``` + +### Fields + +#### cachedGrabAttachPoint + +The cached Grab Attach Point if trying to Extract Attach Point; + +##### Declaration + +``` +protected GameObject cachedGrabAttachPoint +``` + +### Methods + +#### DoExtractAttachPoint(GameObject) + +Extracts the attach point associated with the grabbing functionality of the Interactor. + +##### Declaration + +``` +[Obsolete("Use `InteractorAttachPointExtractor -> DoExtract` instead.")] +public virtual void DoExtractAttachPoint(GameObject interactorContainer) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| GameObject | interactorContainer | The container that has an [InteractorFacade] component to extract from. | + +#### DoExtractAttachPoint(InteractorFacade) + +Extracts the attach point associated with the grabbing functionality of the Interactor. + +##### Declaration + +``` +[Obsolete("Use `InteractorAttachPointExtractor -> DoExtract` instead.")] +public virtual void DoExtractAttachPoint(InteractorFacade interactor) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractorFacade] | interactor | The Interactor to extract from. | + +#### ExtractAttachPoint(GameObject) + +Extracts the attach point associated with the grabbing functionality of the Interactor. + +##### Declaration + +``` +[Obsolete("Use `InteractorAttachPointExtractor -> Extract` instead.")] +public virtual GameObject ExtractAttachPoint(GameObject interactorContainer) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| GameObject | interactorContainer | The container that has an [InteractorFacade] component to extract from. | + +##### Returns + +| Type | Description | +| --- | --- | +| GameObject | The attach point. | + +#### ExtractAttachPoint(InteractorFacade) + +Extracts the attach point associated with the grabbing functionality of the Interactor. + +##### Declaration + +``` +[Obsolete("Use `InteractorAttachPointExtractor.Extract()` instead.")] +public virtual GameObject ExtractAttachPoint(InteractorFacade interactor) +``` + +##### Parameters + +| Type | Name | Description | +| --- | --- | --- | +| [InteractorFacade] | interactor | The Interactor to extract from. | + +##### Returns + +| Type | Description | +| --- | --- | +| GameObject | The attach point. | + +#### ExtractValue() + +##### Declaration + +``` +protected override GameObject ExtractValue() +``` + +##### Returns + +| Type | Description | +| --- | --- | +| GameObject | n/a | + +[InteractorFacade]: ../../../Interactors/InteractorFacade.md +[Tilia.Interactions.Interactables.Interactors.Operation.Extraction]: README.md +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Fields]: #Fields +[cachedGrabAttachPoint]: #cachedGrabAttachPoint +[Methods]: #Methods +[DoExtractAttachPoint(GameObject)]: #DoExtractAttachPointGameObject +[DoExtractAttachPoint(InteractorFacade)]: #DoExtractAttachPointInteractorFacade +[ExtractAttachPoint(GameObject)]: #ExtractAttachPointGameObject +[ExtractAttachPoint(InteractorFacade)]: #ExtractAttachPointInteractorFacade +[ExtractValue()]: #ExtractValue diff --git a/Documentation/API/Interactors/Operation/Extraction/InteractorExtractor.md.meta b/Documentation/API/Interactors/Operation/Extraction/InteractorExtractor.md.meta new file mode 100644 index 0000000..13c06a9 --- /dev/null +++ b/Documentation/API/Interactors/Operation/Extraction/InteractorExtractor.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 095d8a545f7cbec4eafc7a96009340ae +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/Operation/Extraction/README.md b/Documentation/API/Interactors/Operation/Extraction/README.md new file mode 100644 index 0000000..4403ed2 --- /dev/null +++ b/Documentation/API/Interactors/Operation/Extraction/README.md @@ -0,0 +1,15 @@ +# Namespace Tilia.Interactions.Interactables.Interactors.Operation.Extraction + +### Classes + +#### [InteractorAttachPointExtractor] + +Extracts the attach point GameObject from an [InteractorFacade]. + +#### [InteractorExtractor] + +Extracts a GameObject relevant to the extraction method from an [InteractorFacade]. + +[InteractorAttachPointExtractor]: InteractorAttachPointExtractor.md +[InteractorFacade]: ../../../Interactors/InteractorFacade.md +[InteractorExtractor]: InteractorExtractor.md diff --git a/Documentation/API/Interactors/Operation/Extraction/README.md.meta b/Documentation/API/Interactors/Operation/Extraction/README.md.meta new file mode 100644 index 0000000..adaaaf2 --- /dev/null +++ b/Documentation/API/Interactors/Operation/Extraction/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d5212efd46f672e4291fef21d9770cd0 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/README.md b/Documentation/API/Interactors/README.md new file mode 100644 index 0000000..8ab24ae --- /dev/null +++ b/Documentation/API/Interactors/README.md @@ -0,0 +1,43 @@ +# Namespace Tilia.Interactions.Interactables.Interactors + +### Classes + +#### [GrabInteractorConfigurator] + +Sets up the Interactor Prefab grab settings based on the provided user settings. + +#### [InteractorActionPublisherConfigurator] + +Sets up the Interactor Action Publisher Prefab action settings based on the provided user settings. + +#### [InteractorActionPublisherFacade] + +The public interface into the Interactor Action Publisher Prefab. + +#### [InteractorFacade] + +The public interface into the Interactor Prefab. + +#### [InteractorFacade.UnityEvent] + +Defines the event with the [InteractableFacade]. + +#### [InteractorFacadeSettingsModifier] + +Allows the modification of the settings on a specified [InteractorFacade] found in a collection. + +#### [InteractorFacadeSettingsModifier.InteractorElement] + +#### [TouchInteractorConfigurator] + +Sets up the Interactor Prefab touch settings based on the provided user settings. + +[GrabInteractorConfigurator]: GrabInteractorConfigurator.md +[InteractorActionPublisherConfigurator]: InteractorActionPublisherConfigurator.md +[InteractorActionPublisherFacade]: InteractorActionPublisherFacade.md +[InteractorFacade.UnityEvent]: InteractorFacade.UnityEvent.md +[InteractableFacade]: ../Interactables/InteractableFacade.md +[InteractorFacadeSettingsModifier]: InteractorFacadeSettingsModifier.md +[InteractorFacade]: InteractorFacade.md +[InteractorFacadeSettingsModifier.InteractorElement]: InteractorFacadeSettingsModifier.InteractorElement.md +[TouchInteractorConfigurator]: TouchInteractorConfigurator.md diff --git a/Documentation/API/Interactors/README.md.meta b/Documentation/API/Interactors/README.md.meta new file mode 100644 index 0000000..912a887 --- /dev/null +++ b/Documentation/API/Interactors/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9484e566ddfa7474f916e039cb53dcc7 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/API/Interactors/TouchInteractorConfigurator.md b/Documentation/API/Interactors/TouchInteractorConfigurator.md new file mode 100644 index 0000000..cbf11f6 --- /dev/null +++ b/Documentation/API/Interactors/TouchInteractorConfigurator.md @@ -0,0 +1,198 @@ +# Class TouchInteractorConfigurator + +Sets up the Interactor Prefab touch settings based on the provided user settings. + +## Contents + +* [Inheritance] +* [Namespace] +* [Syntax] +* [Fields] + * [touchedObjects] +* [Properties] + * [ActiveCollisionsContainer] + * [ActiveTouchedObject] + * [CurrentActiveCollision] + * [ExternalEmitters] + * [Facade] + * [StartTouchingPublisher] + * [StopTouchingPublisher] + * [TouchedObjects] +* [Methods] + * [GetActiveTouchedObject()] + * [GetTouchedObjects()] + * [OnDisable()] + +## Details + +##### Inheritance + +* System.Object +* TouchInteractorConfigurator + +##### Namespace + +* [Tilia.Interactions.Interactables.Interactors] + +##### Syntax + +``` +public class TouchInteractorConfigurator : MonoBehaviour +``` + +### Fields + +#### touchedObjects + +A reusable collection to hold the returned touched objects. + +##### Declaration + +``` +protected readonly List touchedObjects +``` + +### Properties + +#### ActiveCollisionsContainer + +The Zinnia.Tracking.Collision.Active.ActiveCollisionsContainer that holds all current collisions. + +##### Declaration + +``` +public ActiveCollisionsContainer ActiveCollisionsContainer { get; protected set; } +``` + +#### ActiveTouchedObject + +The currently active touched GameObject. + +##### Declaration + +``` +public GameObject ActiveTouchedObject { get; } +``` + +#### CurrentActiveCollision + +The Slicer that holds the current active collision. + +##### Declaration + +``` +public Slicer CurrentActiveCollision { get; protected set; } +``` + +#### ExternalEmitters + +The link to any external emitters of the touch state. + +##### Declaration + +``` +public ActiveCollisionsContainerEventProxyEmitter ExternalEmitters { get; protected set; } +``` + +#### Facade + +The public interface facade. + +##### Declaration + +``` +public InteractorFacade Facade { get; protected set; } +``` + +#### StartTouchingPublisher + +The ActiveCollisionPublisher for checking valid start touching collisions. + +##### Declaration + +``` +public ActiveCollisionPublisher StartTouchingPublisher { get; protected set; } +``` + +#### StopTouchingPublisher + +The ActiveCollisionPublisher for checking valid stop touching collisions. + +##### Declaration + +``` +public ActiveCollisionPublisher StopTouchingPublisher { get; protected set; } +``` + +#### TouchedObjects + +A collection of currently touched GameObjects. + +##### Declaration + +``` +public IReadOnlyList TouchedObjects { get; } +``` + +### Methods + +#### GetActiveTouchedObject() + +Retrieves the currently active touched GameObject. + +##### Declaration + +``` +protected virtual GameObject GetActiveTouchedObject() +``` + +##### Returns + +| Type | Description | +| --- | --- | +| GameObject | The currently active touched GameObject. | + +#### GetTouchedObjects() + +Retrieves a collection of currently touched GameObjects. + +##### Declaration + +``` +protected virtual IReadOnlyList GetTouchedObjects() +``` + +##### Returns + +| Type | Description | +| --- | --- | +| System.Collections.Generic.IReadOnlyList | The currently touched GameObjects. | + +#### OnDisable() + +##### Declaration + +``` +protected virtual void OnDisable() +``` + +[Tilia.Interactions.Interactables.Interactors]: README.md +[InteractorFacade]: InteractorFacade.md +[Inheritance]: #Inheritance +[Namespace]: #Namespace +[Syntax]: #Syntax +[Fields]: #Fields +[touchedObjects]: #touchedObjects +[Properties]: #Properties +[ActiveCollisionsContainer]: #ActiveCollisionsContainer +[ActiveTouchedObject]: #ActiveTouchedObject +[CurrentActiveCollision]: #CurrentActiveCollision +[ExternalEmitters]: #ExternalEmitters +[Facade]: #Facade +[StartTouchingPublisher]: #StartTouchingPublisher +[StopTouchingPublisher]: #StopTouchingPublisher +[TouchedObjects]: #TouchedObjects +[Methods]: #Methods +[GetActiveTouchedObject()]: #GetActiveTouchedObject +[GetTouchedObjects()]: #GetTouchedObjects +[OnDisable()]: #OnDisable diff --git a/Documentation/API/Interactors/TouchInteractorConfigurator.md.meta b/Documentation/API/Interactors/TouchInteractorConfigurator.md.meta new file mode 100644 index 0000000..3f7e6b4 --- /dev/null +++ b/Documentation/API/Interactors/TouchInteractorConfigurator.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1e54f4c21d7a9c34fa29e7d763a8bb83 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Interactables/SharedResources/Scripts/Grab/InteractableGrabStateRegistrar.cs b/Runtime/Interactables/SharedResources/Scripts/Grab/InteractableGrabStateRegistrar.cs index 00ee4db..92b57ed 100644 --- a/Runtime/Interactables/SharedResources/Scripts/Grab/InteractableGrabStateRegistrar.cs +++ b/Runtime/Interactables/SharedResources/Scripts/Grab/InteractableGrabStateRegistrar.cs @@ -40,11 +40,11 @@ public class UnityEvent : UnityEvent public UnityEvent Ungrabbed = new UnityEvent(); /// - /// s that unsubscribe the added grab event listeners. + /// Actions that unsubscribe the added grab event listeners. /// protected readonly Dictionary unsubscribeGrabActions = new Dictionary(); /// - /// s that unsubscribe the added ungrab event listeners. + /// Actions that unsubscribe the added ungrab event listeners. /// protected readonly Dictionary unsubscribeUngrabActions = new Dictionary(); diff --git a/docfx.json b/docfx.json new file mode 100644 index 0000000..59d0b6f --- /dev/null +++ b/docfx.json @@ -0,0 +1,60 @@ +{ + "metadata": [ + { + "src": [ + { + "files": [ + "Runtime/**.cs" + ] + } + ], + "dest": "_TEMP_DOCS/API", + "disableGitFeatures": false, + "disableDefaultFilter": false + } + ], + "build": { + "content": [ + { + "files": [ + "_TEMP_DOCS/API/**.yml", + "_TEMP_DOCS/API/index.md" + ] + }, + { + "files": [ + "*.md" + ] + } + ], + "resource": [ + { + "files": [ + ] + } + ], + "overwrite": [ + { + "files": [ + "apidoc/**.md" + ], + "exclude": [ + "obj/**", + "_site/**" + ] + } + ], + "dest": "_TEMP_DOCS/output", + "globalMetadataFiles": [], + "fileMetadataFiles": [], + "template": [ + "default" + ], + "postProcessors": [], + "markdownEngineName": "markdig", + "noLangKeyword": false, + "keepFileLink": false, + "cleanupCacheHistory": false, + "disableGitFeatures": false + } +} \ No newline at end of file diff --git a/docfx.json.meta b/docfx.json.meta new file mode 100644 index 0000000..45fa511 --- /dev/null +++ b/docfx.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 80161228179c8244ea51ddd5517bfd14 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: