Version: 2021.3

GameObjectRecorder

class in UnityEditor.Animations

/

继承自:Object

切换到手册

描述

在运行场景时记录 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 秒时间转发动画,然后记录添加的绑定值。

继承的成员

变量

hideFlags该对象应该隐藏、随场景一起保存还是由用户修改?
name对象的名称。

公共函数

GetInstanceIDGets the instance ID of the object.
ToString返回对象的名称。

静态函数

Destroy移除 GameObject、组件或资源。
DestroyImmediate立即销毁对象 /obj/。强烈建议您改用 Destroy。
DontDestroyOnLoad在加载新的 Scene 时,请勿销毁 Object。
FindObjectOfType返回第一个类型为 type 的已加载的激活对象。
FindObjectsOfTypeGets a list of all loaded objects of Type type.
Instantiate克隆 original 对象并返回克隆对象。

运算符

bool该对象是否存在?
operator !=比较两个对象是否引用不同的对象。
operator ==比较两个对象引用,判断它们是否引用同一个对象。