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

TransformStreamHandle

UnityEngine.Animations 中的结构体

/

实现于: UnityEngine.AnimationModule

建议更改

成功!

感谢您帮助我们改进 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每项更改建议,并在适用时进行更新。

关闭

提交失败

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

关闭

取消

描述

对象在 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) { // Set the new local position. handle.SetLocalPosition(stream, position);

// Set the new local rotation (converted from euler). handle.SetLocalRotation(stream, Quaternion.Euler(rotation));

// Set the new local scale. 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<TransformStreamHandleJob>(); animationJob.position = position; animationJob.rotation = rotation; animationJob.scale = scale; m_AnimationScriptPlayable.SetJobData(animationJob); }

void OnDisable() { m_Graph.Destroy(); } }

公共方法

GetGlobalTR获取变换在世界空间中的位置和缩放旋转。
GetLocalPosition获取变换相对于父级的坐标。
GetLocalRotation获取变换相对于父级的旋转。
GetLocalScale获取变换相对于父级的缩放比例。
GetLocalToParentMatrix获取变换的局部到父级的矩阵。
GetLocalToWorldMatrix获取变换的局部到世界矩阵。
GetLocalTRS获取变换相对于父级的坐标、旋转和缩放比例。
GetPosition获取变换在世界空间中的坐标。
GetPositionReadMask获取变换的坐标读取掩码。
GetRotation获取变换在世界空间中的旋转。
GetRotationReadMask获取变换的旋转读取掩码。
GetScaleReadMask获取变换的缩放比例读取掩码。
IsResolved返回此句柄是否已解析。
IsValid返回此句柄是否有效。
Resolve使用来自 AnimationStream 的动画值绑定此句柄。
SetGlobalTR设置变换在世界空间中的坐标和旋转。
SetLocalPosition设置变换相对于父级的坐标。
SetLocalRotation设置变换相对于父级的旋转。
SetLocalScale设置变换相对于父级的缩放比例。
SetLocalTRS设置变换相对于父级的坐标、旋转和缩放比例。
SetPosition设置变换在世界空间中的坐标。
SetRotation设置变换在世界空间中的旋转。