Описание
Положение, поворот и масштаб объекта в 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 в мировом пространстве. |