# PropertyStreamHandle

> Handle for a Component property on an object in the AnimationStream.

## Definition

* **Type:** Struct
* **Namespace:** [UnityEngine.Animations](/engine/6000.7/script-reference/unityengine/animations.md)
* **Assembly:** UnityEngine.AnimationModule

```csharp
public struct PropertyStreamHandle
```

## Remarks

Additional Resources: [AnimatorJobExtensions.BindStreamProperty](/engine/6000.7/script-reference/unityengine/animations/animatorjobextensions/bindstreamproperty.md), [TransformStreamHandle](/engine/6000.7/script-reference/unityengine/animations/transformstreamhandle.md), [PropertySceneHandle](/engine/6000.7/script-reference/unityengine/animations/propertyscenehandle.md), [TransformSceneHandle](/engine/6000.7/script-reference/unityengine/animations/transformscenehandle.md)

## Examples

```csharp
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Animations;

public struct PropertyStreamHandleJob : IAnimationJob
{
    public PropertyStreamHandle handleR;
    public PropertyStreamHandle handleG;
    public PropertyStreamHandle handleB;
    public Color color;

    public void ProcessRootMotion(AnimationStream stream)
    {
    }

    public void ProcessAnimation(AnimationStream stream)
    {
        // Set the new light color.
        handleR.SetFloat(stream, color.r);
        handleG.SetFloat(stream, color.g);
        handleB.SetFloat(stream, color.b);
    }
}

[RequireComponent(typeof(Animator))]
[RequireComponent(typeof(Light))]
public class PropertyStreamHandleExample : MonoBehaviour
{
    public Color color = Color.white;

    PlayableGraph m_Graph;
    AnimationScriptPlayable m_AnimationScriptPlayable;

    void Start()
    {
        var animator = GetComponent<Animator>();

        m_Graph = PlayableGraph.Create("PropertyStreamHandleExample");
        var output = AnimationPlayableOutput.Create(m_Graph, "output", animator);

        var animationJob = new PropertyStreamHandleJob();
        animationJob.handleR = animator.BindStreamProperty(gameObject.transform, typeof(Light), "m_Color.r");
        animationJob.handleG = animator.BindStreamProperty(gameObject.transform, typeof(Light), "m_Color.g");
        animationJob.handleB = animator.BindStreamProperty(gameObject.transform, typeof(Light), "m_Color.b");
        m_AnimationScriptPlayable = AnimationScriptPlayable.Create(m_Graph, animationJob);

        output.SetSourcePlayable(m_AnimationScriptPlayable);
        m_Graph.Play();
    }

    void Update()
    {
        var animationJob = m_AnimationScriptPlayable.GetJobData<PropertyStreamHandleJob>();
        animationJob.color = color;
        m_AnimationScriptPlayable.SetJobData(animationJob);
    }

    void OnDisable()
    {
        m_Graph.Destroy();
    }
}
```

## Methods

| Method                                                                                                    | Description                                     |
| --------------------------------------------------------------------------------------------------------- | ----------------------------------------------- |
| [GetBool](/engine/6000.7/script-reference/unityengine/animations/propertystreamhandle/getbool.md)         | Gets the boolean property value from a stream.  |
| [GetEntityId](/engine/6000.7/script-reference/unityengine/animations/propertystreamhandle/getentityid.md) | Gets the EntityId property value from a stream. |
| [GetFloat](/engine/6000.7/script-reference/unityengine/animations/propertystreamhandle/getfloat.md)       | Gets the float property value from a stream.    |
| [GetInt](/engine/6000.7/script-reference/unityengine/animations/propertystreamhandle/getint.md)           | Gets the integer property value from a stream.  |
| [GetReadMask](/engine/6000.7/script-reference/unityengine/animations/propertystreamhandle/getreadmask.md) | Gets the read mask of the property.             |
| [IsResolved](/engine/6000.7/script-reference/unityengine/animations/propertystreamhandle/isresolved.md)   | Returns whether or not the handle is resolved.  |
| [IsValid](/engine/6000.7/script-reference/unityengine/animations/propertystreamhandle/isvalid.md)         | Returns whether or not the handle is valid.     |
| [Resolve](/engine/6000.7/script-reference/unityengine/animations/propertystreamhandle/resolve.md)         | Resolves the handle.                            |
| [SetBool](/engine/6000.7/script-reference/unityengine/animations/propertystreamhandle/setbool.md)         | Sets the boolean property value into a stream.  |
| [SetEntityId](/engine/6000.7/script-reference/unityengine/animations/propertystreamhandle/setentityid.md) | Sets the EntityId property value into a stream. |
| [SetFloat](/engine/6000.7/script-reference/unityengine/animations/propertystreamhandle/setfloat.md)       | Sets the float property value into a stream.    |
| [SetInt](/engine/6000.7/script-reference/unityengine/animations/propertystreamhandle/setint.md)           | Sets the integer property value into a stream.  |
