Руководство API скрипты

TransformSceneHandle

структура в UnityEngine.Animations / Реализовано в: UnityEngine.AnimationModule

Описание

Дескриптор для чтения положения(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 Возвращает, является ли это допустимым дескриптором.
Вы можете отблагодарить автора, за перевод документации на русский язык. Донат
API скрипты 2021.3