Описание
Положение, поворот и масштаб объекта в AnimationStream.
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Animations;
public struct TransformStreamHandleJob : IAnimationJob
{
public TransformStreamHandle handle;
public Vector3 position;
public Vector3 rotation;
public Vector3 scale;
public void ProcessRootMotion(AnimationStream stream)
{
// Устанавливаем новую локальную позицию.
handle.SetLocalPosition(stream, position);
// Устанавливаем новое локальное вращение (преобразованное из эйлерова).
handle.SetLocalRotation(stream, Quaternion.Euler(rotation));
// Устанавливаем новый локальный масштаб.
handle.SetLocalScale(stream, scale);
}
public void ProcessAnimation(AnimationStream stream)
{
}
}
[RequireComponent(typeof(Animator))]
public class TransformStreamHandleExample : MonoBehaviour
{
public Vector3 position;
public Vector3 rotation;
public Vector3 scale = Vector3.one;
PlayableGraph m_Graph;
AnimationScriptPlayable m_AnimationScriptPlayable;
void Start()
{
var animator = GetComponent<Animator>();
m_Graph = PlayableGraph.Create("TransformStreamHandleExample");
var output = AnimationPlayableOutput.Create(m_Graph, "output", animator);
var animationJob = new TransformStreamHandleJob();
animationJob.handle = animator.BindStreamTransform(gameObject.transform);
m_AnimationScriptPlayable = AnimationScriptPlayable.Create(m_Graph, animationJob);
output.SetSourcePlayable(m_AnimationScriptPlayable);
m_Graph.Play();
}
void Update()
{
var animationJob = m_AnimationScriptPlayable.GetJobData();
animationJob.position = position;
animationJob.rotation = rotation;
animationJob.scale = scale;
m_AnimationScriptPlayable.SetJobData(animationJob);
}
void OnDisable()
{
m_Graph.Destroy();
}
}
Смотрите так же: AnimatorJobExtensions.BindStreamTransform, PropertyStreamHandle, PropertySceneHandle, и TransformSceneHandle.
Публичные Методы
| GetGlobalTR | Получает положение и масштабированный поворот Transform в мировом пространстве. |
| GetLocalPosition | Получает положение Transform относительно родителя. |
| GetLocalRotation | Получает поворот Transform относительно родителя. |
| GetLocalScale | Получает масштаб Transform относительно родителя. |
| GetLocalTRS | Получает положение, поворот и масштаб Transform относительно родителя. |
| GetPosition | Получает положение Transform в мировом пространстве. |
| GetPositionReadMask | Получает маску чтения позиции Transform. |
| GetRotation | Получает вращение Transformв мировом пространстве. |
| GetRotationReadMask | Получает маску чтения поворота Transform. |
| GetScaleReadMask | Получает маску чтения шкалы Transform. |
| IsResolved | Возвращает, разрешен ли этот дескриптор. |
| IsValid | Возвращает, является ли это допустимым дескриптором. |
| Resolve | Свяжите этот дескриптор с анимированными значениями из AnimationStream. |
| SetGlobalTR | Задает положение и поворот Transform в мировом пространстве. |
| SetLocalPosition | Устанавливает положение Transform относительно родителя. |
| SetLocalRotation | Устанавливает поворот Transform относительно родителя. |
| SetLocalScale | Задает масштаб Transform относительно родителя . |
| SetLocalTRS | Задает положение, поворот и масштаб Transform относительно родителя. |
| SetPosition | Задает положение Transform в мировом пространстве. |
| SetRotation | Задает вращение Transform в мировом пространстве. |

