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

GameObjectRecorder

UnityEditor.Animations 中的类

/

继承自:Object

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

描述

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

此类绑定 GameObject 属性,记录它们在运行场景中发生变化时的值,并将结果保存到 AnimationClip 中。记录的 GameObject 在类中称为 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创建一个新的 GameObjectRecorder。

公共方法

Bind根据 EditorCurveBinding 绑定 GameObject 的属性。
BindAll为目标的所有属性添加绑定,如果 recursive 为 true,则还为目标的所有子级添加绑定。
BindComponent为组件的所有属性添加绑定。
BindComponentsOfType为目标中找到的第一个类型为 T 的组件的所有属性添加绑定,如果 recursive 为 true,则还为目标的所有子级添加绑定。
GetBindings返回添加到录制器的所有绑定的数组。
ResetRecording重置录制。
SaveToClip将录制好的动画保存到目标剪辑中。
TakeSnapshot将动画向前推进 dt 秒,然后记录添加的绑定的值。

继承成员

属性

hideFlags对象是否应隐藏、与场景一起保存或用户可修改?
name对象的名称。

公共方法

GetInstanceID获取对象的实例 ID。
ToString返回对象的名称。

静态方法

Destroy移除 GameObject、组件或资源。
DestroyImmediate立即销毁对象 obj。强烈建议使用 Destroy 代替。
DontDestroyOnLoad加载新场景时不要销毁目标对象。
FindAnyObjectByType检索类型为 type 的任何活动加载对象。
FindFirstObjectByType检索类型为 type 的第一个活动加载对象。
FindObjectsByType检索类型为 type 的所有加载对象的列表。
Instantiate克隆对象 original 并返回克隆。
InstantiateAsync捕获原始对象(必须与某个 GameObject 相关)的快照,并返回 AsyncInstantiateOperation。

运算符

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