docs.unity3d.com
    Show / Hide Table of Contents

    Class BaseAffordanceStateReceiver<T>

    Abstract base class for affordance state receivers used to expose the typed functions and properties necessary for an affordance state receiver to work.

    Inheritance
    Object
    Object
    Component
    Behaviour
    MonoBehaviour
    BaseAffordanceStateReceiver<T>
    BaseAsyncAffordanceStateReceiver<T>
    BaseSynchronousAffordanceStateReceiver<T>
    Inherited Members
    MonoBehaviour.IsInvoking()
    MonoBehaviour.CancelInvoke()
    MonoBehaviour.Invoke(String, Single)
    MonoBehaviour.InvokeRepeating(String, Single, Single)
    MonoBehaviour.CancelInvoke(String)
    MonoBehaviour.IsInvoking(String)
    MonoBehaviour.StartCoroutine(String)
    MonoBehaviour.StartCoroutine(String, Object)
    MonoBehaviour.StartCoroutine(IEnumerator)
    MonoBehaviour.StopCoroutine(IEnumerator)
    MonoBehaviour.StopCoroutine(Coroutine)
    MonoBehaviour.StopCoroutine(String)
    MonoBehaviour.StopAllCoroutines()
    MonoBehaviour.print(Object)
    MonoBehaviour.useGUILayout
    MonoBehaviour.runInEditMode
    Behaviour.enabled
    Behaviour.isActiveAndEnabled
    Component.GetComponent(Type)
    Component.GetComponent<T>()
    Component.TryGetComponent(Type, Component)
    Component.TryGetComponent<T>(T)
    Component.GetComponent(String)
    Component.GetComponentInChildren(Type, Boolean)
    Component.GetComponentInChildren(Type)
    Component.GetComponentInChildren<T>(Boolean)
    Component.GetComponentInChildren<T>()
    Component.GetComponentsInChildren(Type, Boolean)
    Component.GetComponentsInChildren(Type)
    Component.GetComponentsInChildren<T>(Boolean)
    Component.GetComponentsInChildren<T>(Boolean, List<T>)
    Component.GetComponentsInChildren<T>()
    Component.GetComponentsInChildren<T>(List<T>)
    Component.GetComponentInParent(Type, Boolean)
    Component.GetComponentInParent(Type)
    UnityEngine.Component.GetComponentInParent<T>(System.Boolean)
    Component.GetComponentInParent<T>()
    Component.GetComponentsInParent(Type, Boolean)
    Component.GetComponentsInParent(Type)
    Component.GetComponentsInParent<T>(Boolean)
    Component.GetComponentsInParent<T>(Boolean, List<T>)
    Component.GetComponentsInParent<T>()
    Component.GetComponents(Type)
    Component.GetComponents(Type, List<Component>)
    Component.GetComponents<T>(List<T>)
    Component.GetComponents<T>()
    Component.CompareTag(String)
    Component.SendMessageUpwards(String, Object, SendMessageOptions)
    Component.SendMessageUpwards(String, Object)
    Component.SendMessageUpwards(String)
    Component.SendMessageUpwards(String, SendMessageOptions)
    Component.SendMessage(String, Object)
    Component.SendMessage(String)
    Component.SendMessage(String, Object, SendMessageOptions)
    Component.SendMessage(String, SendMessageOptions)
    Component.BroadcastMessage(String, Object, SendMessageOptions)
    Component.BroadcastMessage(String, Object)
    Component.BroadcastMessage(String)
    Component.BroadcastMessage(String, SendMessageOptions)
    Component.transform
    Component.gameObject
    Component.tag
    Object.GetInstanceID()
    Object.GetHashCode()
    Object.Equals(Object)
    Object.Instantiate(Object, Vector3, Quaternion)
    Object.Instantiate(Object, Vector3, Quaternion, Transform)
    Object.Instantiate(Object)
    Object.Instantiate(Object, Transform)
    Object.Instantiate(Object, Transform, Boolean)
    Object.Instantiate<T>(T)
    Object.Instantiate<T>(T, Vector3, Quaternion)
    Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
    Object.Instantiate<T>(T, Transform)
    Object.Instantiate<T>(T, Transform, Boolean)
    Object.Destroy(Object, Single)
    Object.Destroy(Object)
    Object.DestroyImmediate(Object, Boolean)
    Object.DestroyImmediate(Object)
    Object.FindObjectsOfType(Type)
    Object.FindObjectsOfType(Type, Boolean)
    Object.FindObjectsByType(Type, FindObjectsSortMode)
    Object.FindObjectsByType(Type, FindObjectsInactive, FindObjectsSortMode)
    Object.DontDestroyOnLoad(Object)
    Object.FindObjectsOfType<T>()
    UnityEngine.Object.FindObjectsByType<T>(UnityEngine.FindObjectsSortMode)
    UnityEngine.Object.FindObjectsOfType<T>(System.Boolean)
    UnityEngine.Object.FindObjectsByType<T>(UnityEngine.FindObjectsInactive, UnityEngine.FindObjectsSortMode)
    Object.FindObjectOfType<T>()
    UnityEngine.Object.FindObjectOfType<T>(System.Boolean)
    UnityEngine.Object.FindFirstObjectByType<T>()
    UnityEngine.Object.FindAnyObjectByType<T>()
    UnityEngine.Object.FindFirstObjectByType<T>(UnityEngine.FindObjectsInactive)
    UnityEngine.Object.FindAnyObjectByType<T>(UnityEngine.FindObjectsInactive)
    Object.FindObjectOfType(Type)
    Object.FindFirstObjectByType(Type)
    Object.FindAnyObjectByType(Type)
    Object.FindObjectOfType(Type, Boolean)
    Object.FindFirstObjectByType(Type, FindObjectsInactive)
    Object.FindAnyObjectByType(Type, FindObjectsInactive)
    Object.ToString()
    Object.name
    Object.hideFlags
    Object.Equals(Object, Object)
    Object.ReferenceEquals(Object, Object)
    Object.GetType()
    Object.MemberwiseClone()
    Namespace: UnityEngine.XR.Interaction.Toolkit.AffordanceSystem.Receiver
    Syntax
    public abstract class BaseAffordanceStateReceiver<T> : MonoBehaviour, IAffordanceStateReceiver<T>, IAffordanceStateReceiver where T : struct, IEquatable<T>
    Type Parameters
    Name Description
    T

    The type of the value struct.

    Properties

    affordanceStateProvider

    Affordance state provider reference used to drive the receiver's affordance state.

    Declaration
    public BaseAffordanceStateProvider affordanceStateProvider { get; set; }
    Property Value
    Type Description
    BaseAffordanceStateProvider

    affordanceTheme

    Affordance theme, used to map affordance state to a typed affordance value.

    Declaration
    public BaseAffordanceTheme<T> affordanceTheme { get; set; }
    Property Value
    Type Description
    BaseAffordanceTheme<T>
    Implements
    IAffordanceStateReceiver<T>.affordanceTheme

    affordanceValue

    Bindable variable for current typed affordance value. Updated as scheduled tween jobs complete.

    Declaration
    protected abstract BindableVariable<T> affordanceValue { get; }
    Property Value
    Type Description
    BindableVariable<T>
    See Also
    currentAffordanceValue

    currentAffordanceStateData

    Bindable variable holding the last affordance state passed in by the affordance state provider.

    Declaration
    public IReadOnlyBindableVariable<AffordanceStateData> currentAffordanceStateData { get; }
    Property Value
    Type Description
    IReadOnlyBindableVariable<AffordanceStateData>
    Implements
    IAffordanceStateReceiver.currentAffordanceStateData

    currentAffordanceValue

    Bindable variable for current typed affordance value. Updated as scheduled tween jobs complete.

    Declaration
    public IReadOnlyBindableVariable<T> currentAffordanceValue { get; }
    Property Value
    Type Description
    IReadOnlyBindableVariable<T>
    Implements
    IAffordanceStateReceiver<T>.currentAffordanceValue

    defaultAffordanceTheme

    The default affordance theme that is cloned and assigned to affordanceTheme during initialization if that property is not set.

    Declaration
    protected abstract BaseAffordanceTheme<T> defaultAffordanceTheme { get; }
    Property Value
    Type Description
    BaseAffordanceTheme<T>
    Remarks

    This should typically be the theme contained in a serialized ScriptableObject asset reference.

    See Also
    affordanceTheme

    initialValue

    Initial affordance value captured from the derived receiver class. Used in certain tween jobs, and can also be used to replace the idle state of a theme.

    Declaration
    protected T initialValue { get; set; }
    Property Value
    Type Description
    T

    initialValueCaptured

    Flag informing whether the initial value has been captured yet.

    Declaration
    protected bool initialValueCaptured { get; set; }
    Property Value
    Type Description
    Boolean

    replaceIdleStateValueWithInitialValue

    If true, the initial captured state value for the receiver will replace the idle value in the affordance theme.

    Declaration
    public bool replaceIdleStateValueWithInitialValue { get; set; }
    Property Value
    Type Description
    Boolean

    Methods

    Awake()

    See MonoBehaviour.

    Declaration
    protected virtual void Awake()

    CaptureInitialValue()

    One time call that captures the initial value used for certain processing operations.

    Declaration
    protected virtual void CaptureInitialValue()

    ConsumeAffordance(T)

    Update the affordance state with the new affordance value. Automatically called by Unity after the affordance tween output is calculated.

    Declaration
    protected virtual void ConsumeAffordance(T newValue)
    Parameters
    Type Name Description
    T newValue

    The new typed affordance value.

    See Also
    OnAffordanceValueUpdated(T)

    GenerateNewAffordanceThemeInstance()

    Automatically called by Unity during initialization to create a new instance of the affordance theme used for this receiver.

    Declaration
    protected abstract BaseAffordanceTheme<T> GenerateNewAffordanceThemeInstance()
    Returns
    Type Description
    BaseAffordanceTheme<T>

    Returns a new instance of the affordance theme.

    GetCurrentValueForCapture()

    Function used to get the current value of the receiver's target property. Is overriden for material properties or other targets where the initial state exists outside the receiver.

    Declaration
    protected virtual T GetCurrentValueForCapture()
    Returns
    Type Description
    T

    Initial value.

    OnAffordanceStateUpdated(AffordanceStateData, AffordanceStateData)

    Called by the affordance state provider to inform the receiver of the previous state and new state.

    Declaration
    public virtual void OnAffordanceStateUpdated(AffordanceStateData previousState, AffordanceStateData newState)
    Parameters
    Type Name Description
    AffordanceStateData previousState

    Previous affordance state.

    AffordanceStateData newState

    New Affordance state.

    Implements
    IAffordanceStateReceiver.OnAffordanceStateUpdated(AffordanceStateData, AffordanceStateData)

    OnAffordanceThemeChanged(BaseAffordanceTheme<T>)

    Called when the affordance theme changes for this receiver, allowing proper setup to take place as a result.

    Declaration
    protected virtual void OnAffordanceThemeChanged(BaseAffordanceTheme<T> newValue)
    Parameters
    Type Name Description
    BaseAffordanceTheme<T> newValue

    New affordance theme set for this receiver.

    See Also
    affordanceTheme

    OnAffordanceValueUpdated(T)

    Method that is called when the typed affordance value is updated. Implement this method in a derived class to apply the current affordance value, such as setting a material property or raising an event.

    Declaration
    protected abstract void OnAffordanceValueUpdated(T newValue)
    Parameters
    Type Name Description
    T newValue

    New typed affordance value.

    OnDisable()

    See MonoBehaviour.

    Declaration
    protected virtual void OnDisable()

    OnEnable()

    See MonoBehaviour.

    Declaration
    protected virtual void OnEnable()

    ProcessTargetAffordanceValue(T)

    Overrideable function that allows a receiver to modify the target affordance value before the tween is calculated.

    Declaration
    protected virtual T ProcessTargetAffordanceValue(T newValue)
    Parameters
    Type Name Description
    T newValue

    Target tween value used if no processing is applied.

    Returns
    Type Description
    T

    Processed target tween value.

    Start()

    See MonoBehaviour.

    Declaration
    protected virtual void Start()
    Back to top
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023