Version: 2020.3

GameObjectRecorder

class in UnityEditor.Animations

切换到手册

描述

在运行场景时记录 GameObject 的变化属性并将信息保存在 AnimationClip 中。

该类将绑定 GameObject 属性,在属性值在运行场景中发生变化时记录相应的值,并将结果保存在 AnimationClip 中。记录的游戏对象在类中称为 root,您也可以绑定 root 任何子项的属性。

请参阅以下代码示例,了解如何实现该类以及如何设置要记录的内容。

using UnityEngine;
using UnityEditor.Animations;

public class RecordTransformHierarchy : MonoBehaviour { public AnimationClip clip;

private GameObjectRecorder m_Recorder;

void Start() { // Create recorder and record the script GameObject. m_Recorder = new GameObjectRecorder(gameObject);

// Bind all the Transforms on the GameObject and all its children. m_Recorder.BindComponentsOfType<Transform>(gameObject, true); }

void LateUpdate() { if (clip == null) return;

// Take a snapshot and record all the bindings values for this frame. m_Recorder.TakeSnapshot(Time.deltaTime); }

void OnDisable() { if (clip == null) return;

if (m_Recorder.isRecording) { // Save the recorded session to the clip. m_Recorder.SaveToClip(clip); } } }

变量

currentTime返回录制的当前时间。(只读)
isRecording录制器进行录制时,返回 true。(只读)
root动画层级视图的 GameObject 根。(只读)

构造函数

GameObjectRecorder创建新的游戏对象录制器。

公共函数

Bind根据 EditorCurveBinding 的定义绑定游戏对象的属性。
BindAll为 target 的所有属性添加绑定;如果 recursive 为 /true/,也要为 target 子项的所有属性添加绑定。
BindComponent为 component 的所有属性添加绑定。
BindComponentsOfType为 target 中的首个 T 类型组件的所有属性添加绑定;如果 recursive 为 true ,也要为 target 子项的所有属性添加绑定。
GetBindings返回添加到录制器的所有绑定的数组。
ResetRecording重置记录。
SaveToClip将录制的动画保存到目标剪辑中。
TakeSnapshot按 dt 秒时间转发动画,然后记录添加的绑定值。