# PropertySceneHandle

> Handle to read a Component property on an object in the Scene.

## Definition

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

```csharp
public struct PropertySceneHandle
```

## Remarks

PropertySceneHandle are read-only.

Additional Resources: [AnimatorJobExtensions.BindSceneProperty](/engine/6000.7/script-reference/unityengine/animations/animatorjobextensions/bindsceneproperty.md), [TransformSceneHandle](/engine/6000.7/script-reference/unityengine/animations/transformscenehandle.md), [PropertyStreamHandle](/engine/6000.7/script-reference/unityengine/animations/propertystreamhandle.md), [TransformStreamHandle](/engine/6000.7/script-reference/unityengine/animations/transformstreamhandle.md)

## Examples

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

public struct PropertySceneHandleJob : IAnimationJob
{
    public PropertySceneHandle handleR;
    public PropertySceneHandle handleG;
    public PropertySceneHandle handleB;

    public void ProcessRootMotion(AnimationStream stream)
    {
    }

    public void ProcessAnimation(AnimationStream stream)
    {
        // Log the light color.
        var r = handleR.GetFloat(stream);
        var g = handleG.GetFloat(stream);
        var b = handleB.GetFloat(stream);
        Debug.LogFormat("Light color: (R: {0}, G: {1}, B: {2})", r, g, b);
    }
}

[RequireComponent(typeof(Animator))]
[RequireComponent(typeof(Light))]
public class PropertySceneHandleExample : MonoBehaviour
{
    public Light sceneLight;

    PlayableGraph m_Graph;
    AnimationScriptPlayable m_AnimationScriptPlayable;

    void Start()
    {
        if (sceneLight == null)
            return;

        var animator = GetComponent<Animator>();

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

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

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

    void OnDisable()
    {
        if (sceneLight == null)
            return;

        m_Graph.Destroy();
    }
}
```

## Methods

| Method                                                                                                   | Description                                                   |
| -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- |
| [GetBool](/engine/6000.7/script-reference/unityengine/animations/propertyscenehandle/getbool.md)         | Gets the boolean property value from an object in the Scene.  |
| [GetEntityId](/engine/6000.7/script-reference/unityengine/animations/propertyscenehandle/getentityid.md) | Gets the EntityId property value from an object in the Scene. |
| [GetFloat](/engine/6000.7/script-reference/unityengine/animations/propertyscenehandle/getfloat.md)       | Gets the float property value from an object in the Scene.    |
| [GetInt](/engine/6000.7/script-reference/unityengine/animations/propertyscenehandle/getint.md)           | Gets the integer property value from an object in the Scene.  |
| [IsResolved](/engine/6000.7/script-reference/unityengine/animations/propertyscenehandle/isresolved.md)   | Returns whether or not the handle is resolved.                |
| [IsValid](/engine/6000.7/script-reference/unityengine/animations/propertyscenehandle/isvalid.md)         | Returns whether or not the handle is valid.                   |
| [Resolve](/engine/6000.7/script-reference/unityengine/animations/propertyscenehandle/resolve.md)         | Resolves the handle.                                          |
