怎么为自己做的网站申请域名,搭建网站要多久,上海网站建设哪家比较好,网站建设需解决问题前言
Unity Timeline是Unity的一种时间轴编辑器工具#xff0c;用于制作和管理游戏中的动画、剧情以及事件触发。它提供了直观的界面#xff0c;使得开发者可以通过拖放操作轻松创建和编辑时间轴。
Timeline的使用 创建新的Timeline 在Unity中#xff0c;选择菜单栏的 Wi…前言
Unity Timeline是Unity的一种时间轴编辑器工具用于制作和管理游戏中的动画、剧情以及事件触发。它提供了直观的界面使得开发者可以通过拖放操作轻松创建和编辑时间轴。
Timeline的使用 创建新的Timeline 在Unity中选择菜单栏的 Window - Sequencing - Timeline 打开Timeline窗口。 在Hierarchy视图中右键选择 Create - Timeline 创建一个新的Timeline对象。 时间轴基础操作 添加轨道 (Tracks)在Timeline窗口中右键空白处选择 Add Tracks可以添加诸如动画、音频、事件等各种轨道。 添加关键帧 (Keyframe)在轨道上右键选择 Add Key用于设置轨道上物体的不同状态。 调整时间范围可以在时间轴的上方调整整个Timeline的时间范围也可以在轨道上调整各个轨道的时间范围。
轨道介绍
Activation Track用于控制物体的激活状态。可以在轨道上添加关键帧控制物体的激活和非激活状态。 Animation Track用于处理物体的动画。可以在此轨道上添加关键帧编辑物体的动画状态。 Audio Track用于处理场景中的音频。可以管理音频的播放、暂停、淡入淡出等操作。 Control Track用于控制在时间轴上放置Prefab并由Timeline管理Prefab对象的创建与销毁(即生命周期)。 Playable Track用于嵌套其他Timeline。可以在此轨道上添加其他Timeline实现Timeline的嵌套播放。 Signal Track用于触发自定义的事件。可以在轨道上添加关键帧触发事件。
自定义轨道
Unity中的TimeLine支持自定义轨道一般需要新建三个若需要处理混合则为四个类。 一、Track 1、用途 首先需要定义一个轨道类继承TrackAsset它代表了时间轴内的轨道。官方API
2、代码示例
[TrackColor(0.055f, 0.03f, 0.387f)]
[TrackClipType(typeof(MyClip))]
[TrackBindingType(typeof(Animator))]
public class MyTrack : TrackAsset
{[SerializeField] int blendingDuration 200;protected override Playable CreatePlayable(PlayableGraph graph, GameObject gameObject, TimelineClip clip){var asset clip.asset as MyClip;asset.duration blendingDuration;return base.CreatePlayable(graph, gameObject, clip);}
}3、轨道类可以被三种特性标签修饰 [TrackColor(float r, float g, float b)]用于定义轨道的颜色方便不同轨道之间的区分 [TrackClipType(Type clipClass)]用于指定在轨道中可创建的PlayableAsset类型可以理解实现了轨道类型和片段类型之间的绑定同一个轨道可以添加多种不同的片段类型及可以有多个TrackClipType修饰同一个轨道类 [TrackBindingType(Type type)]用于指定轨道需要绑定到的对象类型如示例中的LookAtTrack是用于控制某个角色上的头部动画因此需要绑定一个角色的Animator组件。若改轨道不需要绑定特定对象则不需要添加该标签。
4、常用方法
protected override Playable CreatePlayable(PlayableGraph graph, GameObject gameObject, TimelineClip clip)
protected override void OnCreateClip(TimelineClip clip) 在新建片段时调用用于设置Clip的默认值。
public override Playable CreateTrackMixer(PlayableGraph graph, GameObject go, int inputCount)当片段之间支持混合时可添加该方法。二、Asset 1、用途 接着定义一个继承PlayableAsset、实现接口ITimelineClipAsset的类用于表示片段资源该类中可以定义片段包含的字段这些字段会暴露到Inspector中。
2、代码示例
public class MyClip : PlayableAsset, ITimelineClipAsset
{public string content;public ExposedReferenceTransform target;public DialogueBehaviour template new MyBehaviour();public ClipCaps clipCaps{get { return ClipCaps.None; }}public override Playable CreatePlayable(PlayableGraph graph, GameObject owner){var playable ScriptPlayableMyBehaviour.Create(graph, template);var myBehaviour playable.GetBehaviour();myBehaviour.content content;myBehaviour.target target;return playable;}
}3、常用方法 通常该类中会重写CreatePlayable()方法常用于实现该类和Behaviour类之间的数据传递关于 ScriptPlayable 和 PlayableBehaviour的使用 可参考 ScriptPlayable 和 PlayableBehaviour
三、Behaviour 1、用途 接着定义一个Behaviour类继承PlayableBehaviour用于描述片段中触发的行为。官方API
2、代码示例
public class MyBehaviour : PlayableBehaviour
{private bool clipPlayed false;private bool pauseScheduled false;private PlayableDirector director;public override void OnPlayableCreate(Playable playable){director (playable.GetGraph().GetResolver() as PlayableDirector);}public override void OnBehaviourPlay(Playable playable, FrameData info){if (!clipPlayed info.weight 0f){if (Application.isPlaying) pauseScheduled true;clipPlayed true;}}public override void OnBehaviourPause(Playable playable, FrameData info){if (pauseScheduled){pauseScheduled false;clipPlayed false;director.Pause();}}
}