Unity之Timeline自定义标记轨道
自定义标记自定义类TypingMarker继承Marker类Marker类继承ScriptableObject实现通知INotification接口效果运行到标记所在位置自动发送通知。usingUnityEngine;usingUnityEngine.Playables;usingUnityEngine.Timeline;publicclassTypingMarker:Marker,INotification{[Header(打字时间)]publicfloatduration;[Header(打字内容)]publicstringtypingContent;publicPropertyNameidnewPropertyName(Typing);}接收通知继承MonoBehaviour脚本实现INotificationReceiver接口OnNotify方法中接收通知解析通知类型提取通知数据。usingUnityEngine;usingUnityEngine.Playables;publicclassTypingMarkerReceiver:MonoBehaviour,INotificationReceiver{publicvoidOnNotify(Playableorigin,INotificationnotification,objectcontext){if(notificationisTypingMarkertypingMarker){Debug.Log((typingMarker.duration,typingMarker.typingContent));}}}自定义轨道继承MarkerTrack类添加特性指定绑定的类型。usingUnityEngine.Timeline;[TrackBindingType(typeof(TypingMarkerReceiver))]publicclassTypingTrack:MarkerTrack{}使用选择一个GameObject添加PlayableDirector组件创建timeline asset创建 Typing track选择轨道右键添加标记Typing Marker选择一个GameObject对象添加组件TypingMarkerReceiverTyping track轨道指定接收对象设置为组件TypingMarkerReceiver所在对象设置标记内容选择标记有Inspector窗口设置内容。效果运行后打印通知内容理解标记作为通知数据轨道控制何时触发通知接收组件解析通知处理交互。