Version: 2023.1

TransformSceneHandle

struct in UnityEngine.Animations

切换到手册

描述

用于读取场景中对象的位置、旋转和缩放的句柄。

TransformSceneHandle 是只读的。

TransformSceneHandle 是 TransformAccess 上的安全句柄。用于创建此句柄的 Animator 负责管理此句柄的有效性。

using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Animations;

public struct TransformSceneHandleJob : IAnimationJob { public TransformSceneHandle handle;

public void ProcessRootMotion(AnimationStream stream) { // Log the local position. var position = handle.GetLocalPosition(stream); Debug.LogFormat("Position: {0}", position);

// Log the local rotation (converted from euler). var rotation = handle.GetLocalRotation(stream); Debug.LogFormat("Rotation: {0}", rotation.eulerAngles);

// Log the local scale. 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(); } }

公共函数

GetGlobalTR获取变换在世界空间中的位置和缩放旋转。
GetLocalPosition获取相对于父对象的变换位置。
GetLocalRotation获取相对于父对象的变换旋转。
GetLocalScale获取相对于父对象的变换缩放。
GetLocalToParentMatrixGets the local to parent matrix of the transform.
GetLocalToWorldMatrixGets the local to world matrix of the transform.
GetLocalTRS获取变换相对于父级的位置、旋转和缩放。
GetPosition获取世界坐标系中的变换位置。
GetRotation获取世界坐标系中的变换旋转。
IsValid返回有关此句柄是否有效的信息。

Did you find this page useful? Please give it a rating: