IAnimationWindowPreview
интерфейс в UnityEngine.Animations
Описание
Позволяет классу изменять то, как AnimationClip в окне Animation, предоставляя свой собственный Playable узлы в окно Animation PlayableGraph. Кроме того, класс должен наследоваться от MonoBehaviour.
Дополнительные ресурсы: AnimationScriptPlayable
using UnityEngine; using UnityEngine.Animations; using UnityEngine.Playables;
[RequireComponent(typeof(Animator))] public class ExampleScript : MonoBehaviour, IAnimationWindowPreview { public Vector3 offset = Vector3.zero;
private AnimationScriptPlayable m_Playable; private AnimationJob m_Job; private Vector3 m_CurrentOffset;
struct AnimationJob : IAnimationJob { public TransformStreamHandle transform; public Vector3 offset;
public void ProcessRootMotion(AnimationStream stream) { Vector3 position = transform.GetLocalPosition(stream); position += offset;
transform.SetLocalPosition(stream, position); }
public void ProcessAnimation(AnimationStream stream) { } }
public void StartPreview() { m_CurrentOffset = offset; }
public void StopPreview() { }
public void UpdatePreviewGraph(PlayableGraph graph) { if (m_CurrentOffset != offset) { m_Job.offset = offset; m_Playable.SetJobData(m_Job);
m_CurrentOffset = offset; } }
public Playable BuildPreviewGraph(PlayableGraph graph, Playable input) { Animator animator = GetComponent<Animator>();
m_Job = new AnimationJob(); m_Job.transform = animator.BindStreamTransform(transform); m_Job.offset = offset;
m_Playable = AnimationScriptPlayable.Create(graph, m_Job, 1);
graph.Connect(input, 0, m_Playable, 0);
return m_Playable; } }
Открытые методы
| Метод | Описание |
|---|---|
| BuildPreviewGraph | Добавляет пользовательские воспроизводимые узлы в окно Animation PlayableGraph. |
| StartPreview | Обратный вызов уведомления, когда окно Animation начинает предварительный просмотр AnimationClip. |
| StopPreview | Обратный вызов уведомления, когда окно Animation прекращает предварительный просмотр AnimationClip. |
| UpdatePreviewGraph | Обратный вызов уведомления, когда окно Animation обновляет свое PlayableGraph перед выборкой AnimationClip. |