Timeline

2024-05-25 10:52
文章标签 timeline

本文主要是介绍Timeline,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SignalTrack信号轨道和自定义带参数的Marker信号和轨道

在这里插入图片描述

MySignalReceiver

using System; 
using System.ComponentModel; 
using UnityEngine.Playables;
using UnityEngine.Events;namespace UnityEngine.Timeline
{ public class BaseSignalReceiver<T, Q> : MonoBehaviour, INotificationReceiverwhere T : MySignalAssetData where Q : BaseSignalEmitter<T>{[SerializeField] UnityEvent<T> m_Events = new UnityEvent<T>();[SerializeField] UnityEvent<string> m_EventStrs = new UnityEvent<string>();public virtual void OnNotify(Playable origin, INotification notification, object context){if (notification is Q){Q signalEmitter = (Q)notification;InvokeMember(signalEmitter.mySignalAssetData);}}public virtual void InvokeMember(T mySignalAssetData){Debug.Log(mySignalAssetData.ToString());m_Events?.Invoke(mySignalAssetData);m_EventStrs?.Invoke(UnityEngine.JsonUtility.ToJson(mySignalAssetData));}public void AddEvent(UnityAction<T> action){m_Events.AddListener(action);}public void RemoveEvent(UnityAction<T> action){m_Events.RemoveListener(action);}public void AddEvent(UnityAction<string> action){m_EventStrs.AddListener(action);}public void RemoveEvent(UnityAction<string> action){m_EventStrs.RemoveListener(action);}}public class BaseSignalEmitter<T> : Marker, INotification, INotificationOptionProvider{NotificationFlags INotificationOptionProvider.flags =>NotificationFlags.TriggerOnce | NotificationFlags.TriggerInEditMode;public PropertyName id { get; }public T mySignalAssetData;}  
}namespace UnityEngine.Timeline
{[TrackBindingType(typeof(MySignalReceiver))][DisplayName("我的信号轨道")]public class MySignalTrack : MarkerTrack{}[DisplayName("我的信号接收器")]public class MySignalReceiver : BaseSignalReceiver<MySignalAssetData, BaseSignalEmitter<MySignalAssetData>>{public override void OnNotify(Playable origin, INotification notification, object context){base.OnNotify(origin, notification, context);if (notification is MySignalEmitter_Variant){MySignalEmitter_Variant signalEmitter = (MySignalEmitter_Variant)notification;InvokeMember(signalEmitter.mySignalAssetData);}}}[DisplayName("我的信号")]public class MySignalEmitter : BaseSignalEmitter<MySignalAssetData>{}[Serializable][DisplayName("我的信号数据")]public class MySignalAssetData{public string methodName;public string msg;public int msgType = 0;public virtual string ToString(){return $"{methodName} {msg}";}}[DisplayName("我的信号 变种1")]public class MySignalEmitter_Variant : BaseSignalEmitter<MySignalAssetData_Variant>{}[Serializable][DisplayName("我的信号数据 变种1")]public class MySignalAssetData_Variant : MySignalAssetData{public string sex;public int age;public override string ToString(){return $"{methodName} {msg} {sex} {age}";}}
}

TimeLinePlayable_Ctrl

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Timeline;public class TimeLinePlayable_Ctrl : MonoBehaviour
{public MySignalReceiver receiver;private void Start(){receiver.AddEvent(Test_DataEvent);receiver.AddEvent(Test_Msg);}public void Test_Msg(string parameter){MySignalAssetData data = UnityEngine.JsonUtility.FromJson<MySignalAssetData>(parameter);if (data.msgType == 1){MySignalAssetData_Variant parameter2 =  UnityEngine.JsonUtility.FromJson<MySignalAssetData_Variant>(parameter);Debug.Log("TestStr:" + parameter2.ToString());}else{Debug.Log("TestStr:" + parameter.ToString());}}public void Test_DataEvent(MySignalAssetData parameter){if (parameter.msgType == 1){MySignalAssetData_Variant parameter2 = parameter as MySignalAssetData_Variant;Debug.Log("Test:" + parameter2.ToString());}else{Debug.Log("Test:" + parameter.ToString());}}}

SignalTrack信号轨道和自定义带参数的Marker信号和轨道

这篇关于Timeline的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1001302

相关文章

【UE4从零开始 028】UMG的Timeline动画

在控件蓝图编辑器最下方,是动画编辑区域,我们可以为我们的UI制作一些简单的动画。 1、添加动画 在左侧 动画区域 点击 “+Animation” ,添加一个动画轨并命名,在游戏中我们可以直接通过名称来播放对应的动画。 2、添加控件 在右侧 时间轴 区域的左半部分,点击 “+Track”,选择我们需要添加动画的控件, 3、添加关键帧 右侧 时间轴 区域的右半部分,是我们动画的 时间

timeline组件实现切换、播放等操作

timeline timeline 组件,提供了在多个 ECharts option 间进行切换、播放等操作的功能。 示例效果如下: timeline 和其他组件有些不同,它需要操作『多个option』。 假设,我们把 ECharts 的传统的 option 称为原子option,那么使用 timeline 时,传入 ECharts 的 option 就成为了一个集合多个原子opt

Echarts 通过时间轴timeline改变xAxis.data数据进行不合并处理

版权声明:神,让本妹子做一个美美哒的程序媛╰( ̄▽ ̄)╭ 原文地址:http://blog.csdn.net/r4nqian/article/details/49929795 目录(?)[+] 写在前面:        使用时间轴 timeline 绘制图形的时候会有一种动态的效果,让图形看起来更加生动,也达到了交互式数据的展现。但是在使用 timelin

Unity Timeline学习笔记(5) - 自定义轨道切片上变量Transform对象丢失,使用ExposedReference来解决。

问题 我在笔记(4)中后来又引用了Hierarchy中的Transform对象Transform obj,发现一些问题。 要么无法拖入进去对象,要么拖入进去保存后,再次编辑或者运行的时候发现obj丢失了。 我们还是用修改下笔记(4)的部分代码来解决。 [DisplayName("玩家固定(Transform)Clip")][Serializable]public class Playe

前端调试工具之Chrome Elements、Network、Sources、TimeLine调试

常用的调试工具有Chrome浏览器的调试工具,火狐浏览器的Firebug插件调试工具,IE的开发人员工具等。它们的功能与使用方法大致相似。Chrome浏览器简洁快速,功能强大这里主要介绍Chrome浏览器的调试工具。 打开 Google Chrome 浏览器,通过下面任何一种方式进入开发人员工具: -点击位于浏览器用户界面右上角的“页面”下拉菜单,“更多工具”→“开发人员工具”。 -右键点

Python耗时统计-可嵌套-生成Timeline-chrome://tracing/预览

Python耗时统计-可嵌套-生成Timeline-chrome://tracing/预览 一.效果二.代码 本文演示了如何用chrome://tracing查看python嵌套代码的耗时成分 一.效果 二.代码 import timeimport osimport threadingimport queuedef singleeton(cls):'''单例'''

Timeline基本操作的代码实现

本文地址:https://blog.csdn.net/t163361/article/details/114371386 最近准备申请新星创作者,需要2000个粉丝关注,觉得文章有用的,请点一下左侧边栏的关注,谢谢。 19年左右调研Timeline的相关文档 PlayDirector 通过TimelineEditor可以获取当前主运行Timeline的PlayDirector的句柄。 可以

Timeline调用实质

本文地址:https://blog.csdn.net/t163361/article/details/114371261 最近准备申请新星创作者,需要2000个粉丝关注,觉得文章有用的,请点一下左侧边栏的关注,谢谢。 19年左右调研Timeline的相关文档 PlayableDirector: 导演,控制timeline的播放,停止等等, PlayableDirector.playa

Timeline编辑器绘制流程

本文地址:https://blog.csdn.net/t163361/article/details/114370960 最近准备申请新星创作者,需要2000个粉丝关注,觉得文章有用的,请点一下左侧边栏的关注,谢谢。 19年左右调研Timeline的相关文档 代码结构 整个Timeline主要有如下几个重要的类来组织管理timeline窗口的绘制,数据的创建和保存工作 TimelineWi

Unity3D使用Cinemachine配合Timeline实现运镜效果

学更好的别人, 做更好的自己。 ——《微卡智享》 本文长度为1522字,预计阅读4分钟 前言 Unity3D中的插件Cinemachine高级虚拟摄像系统,配合Timeline时间轴一起使用,可以实现像电影级别的分镜等效果,这篇我们就继续用上个模拟收费通过的项目,在这个基础上使用Cinemachine配合Timeline实现一个运镜的效果。 实现效果 安装Cinemachine插件 微卡智享