Описание
Дескриптор для чтения положения(position), поворота(rotation) и масштаба(scale) объекта в сцене.
TransformSceneHandle доступны только для чтения. TransformSceneHandle — это безопасный дескриптор TransformAccess. Animator, использованный для создания этого дескриптора, управляет действительностью этого дескриптора.
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Animations;
public struct TransformSceneHandleJob : IAnimationJob
{
public TransformSceneHandle handle;
public void ProcessRootMotion(AnimationStream stream)
{
// Регистрируем локальную позицию(position).
var position = handle.GetLocalPosition(stream);
Debug.LogFormat("Position: {0}", position);
// Регистрируем локальное вращение (преобразованное из эйлерова).
var rotation = handle.GetLocalRotation(stream);
Debug.LogFormat("Rotation: {0}", rotation.eulerAngles);
// Регистрируем локальный масштаб.
var scale = handle.GetLocalScale(stream);
Debug.LogFormat("Scale: {0}", scale);
}
public void ProcessAnimation(AnimationStream stream)
{
}
}
[RequireComponent(typeof(Animator))]
public class TransformSceneHandleExample : MonoBehaviour
{
public Transform sceneTransform;
PlayableGraph m_Graph;
AnimationScriptPlayable m_AnimationScriptPlayable;
void Start()
{
if (sceneTransform == null)
return;
var animator = GetComponent<Animator>();
m_Graph = PlayableGraph.Create("TransformSceneHandleExample");
var output = AnimationPlayableOutput.Create(m_Graph, "output", animator);
var animationJob = new TransformSceneHandleJob();
animationJob.handle = animator.BindSceneTransform(sceneTransform);
m_AnimationScriptPlayable = AnimationScriptPlayable.Create(m_Graph, animationJob);
output.SetSourcePlayable(m_AnimationScriptPlayable);
m_Graph.Play();
}
void OnDisable()
{
if (sceneTransform == null)
return;
m_Graph.Destroy();
}
}
Смотрите так же: AnimatorJobExtensions.BindSceneTransform, PropertySceneHandle, PropertyStreamHandle, и TransformStreamHandle.
Публичные Методы
GetGlobalTR | Получает положение и масштабированный поворот Transform в мировом пространстве. |
GetLocalPosition | Получает положение Transform относительно родителя. |
GetLocalRotation | Получает поворот Transform относительно родителя. |
GetLocalScale | Получает масштаб Transform относительно родителя. |
GetLocalTRS | Получает положение, поворот и масштаб Transformотносительно родителя. |
GetPosition | Получает положение Transform в мировом пространстве. |
GetRotation | Получает вращение Transform в мировом пространстве . |
IsValid | Возвращает, является ли это допустимым дескриптором. |