Описание
Дескриптор свойства Component объекта в AnimationStream.
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)
{
// Задаём новый цвет света.
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();
animationJob.color = color;
m_AnimationScriptPlayable.SetJobData(animationJob);
}
void OnDisable()
{
m_Graph.Destroy();
}
}
Смотрите так же: AnimatorJobExtensions.BindStreamProperty, TransformStreamHandle, PropertySceneHandle, и TransformSceneHandle.
Публичные Методы
GetBool | Получает логическое значение свойства из потока. |
GetFloat | Получает значение свойства float из потока. |
GetInt | Получает целочисленное значение свойства из потока. |
GetReadMask | Получает маску чтения свойства. |
IsResolved | Возвращает, разрешен ли дескриптор. |
IsValid | Возвращает значение дескриптора. |
Resolve | Разрешает дескриптор. |
SetBool | Задаёт логическое значение свойства в поток. |
SetFloat | Задаёт значение свойства float в поток. |
SetInt | Задаёт целочисленное значение свойства в поток. |