版本: Unity 6 (6000.0)
语言English
  • C#

TransformSceneHandle

UnityEngine.Animations 中的结构体

/

实现于:UnityEngine.AnimationModule

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。尽管我们无法接受所有提交内容,但我们会阅读用户提出的每个建议更改,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

处理场景中对象的位置、旋转和缩放。

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获取相对于父级的变换缩放。
GetLocalToParentMatrix获取变换的局部到父级的矩阵。
GetLocalToWorldMatrix获取变换的局部到世界矩阵。
GetLocalTRS获取相对于父级的变换位置、旋转和缩放。
GetPosition获取变换在世界空间中的位置。
GetRotation获取变换在世界空间中的旋转。
IsValid返回此句柄是否有效。