Experimental: this API is experimental and might be changed or removed in the future.

GameObjectRecorder

class in UnityEditor.Experimental.Animations

切换到手册

描述

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

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

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

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEditor.Experimental.Animations;

public class RecordTransformHierarchy : MonoBehaviour { public AnimationClip clip; public bool record = false;

private GameObjectRecorder m_Recorder;

void Start() { m_Recorder = new GameObjectRecorder(); m_Recorder.root = gameObject;

m_Recorder.BindComponent<Transform>(gameObject, true); }

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

if (record) { m_Recorder.TakeSnapshot(Time.deltaTime); } else if (m_Recorder.isRecording) { m_Recorder.SaveToClip(clip); m_Recorder.ResetRecording(); } } }

变量

currentTimeReturns the current time of the recording.
isRecordingReturns true when the recorder is recording.
rootThe GameObject used for the recording.

构造函数

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

公共函数

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