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信号和轨道

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/839788.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

炫酷网页设计:HTML5 + CSS3打造8种心形特效

你以为520过去了&#xff0c;你就逃过一劫了&#xff1f;那不是还有分手呢&#xff0c;那不是还得再找对象呢&#xff0c;那不是还有七夕节呢&#xff0c;那不是还有纪念日呢&#xff0c;那不是还有各种各样的节日呢&#xff0c;所以呀&#xff0c;这8种HTML5 CSS3打造8种心形…

Python100个库分享第23个—wordcloud(词云图)

目录 专栏导读库的介绍库的安装基础使用1&#xff1a;将TXT文本转为词云图基础使用2&#xff1a;使用自定义字体和形状基础使用3&#xff1a;中文词云图停用词(中英文版)-代码是中文版总结 专栏导读 &#x1f338; 欢迎来到Python办公自动化专栏—Python处理办公问题&#xff0…

SAP---成本中心采购跟消耗性采购的区别

1.常规库存采购业务的说明&#xff1a; 1.从业务层面分析&#xff0c;企业的常规库存物料采购是&#xff1a; 采购部门下采购订单后&#xff0c;供应商送货&#xff0c;当货物到厂后&#xff0c;由库管员执行收货操作&#xff0c;先将货物收到仓库中&#xff0c;再由各个需求…

10个企业用的wordpress中文模板

移民wordpress主题 移民代办wordpress主题&#xff0c;适合做海外移民咨询的代理公司搭建wordpress企业官方网站使用。 https://www.jianzhanpress.com/?p5130 模特演出wordpress主题 暗黑风格的wordpress主题模板&#xff0c;适用于模特演出公司或艺人经纪公司搭建wordpre…

YOLOv8原理详解

Yolov8是2023年1月份开源的。与yolov5一样&#xff0c;支持目标检测、分类、分割任务。 Yolov8主要改进之处有以下几个方面&#xff1a; Backbone&#xff1a;依旧采用的CSP的思想&#xff0c;不过将Yolov5中的C3模块替换为C2F模块&#xff0c;进一步降低了参数量&#xff0c…

指针数组与数组指针的理解

typedef struct vexnode {int key;struct arcnode *next; }vexnode, adjlist[MVNUM]; void init(adjlist *list); void init(adjlist *list) {for(size_t i 0; i < MVNUM; i){list[i].key i;list[i].next NULL;} }上述代码编译的时候没有报错&#xff0c;但是运行的时候&…

RabbitMQ 交换机类型

常用交换机 发布订阅&#xff08;Publish/Subscribe&#xff09;交换机 一个生产者给多个队列发送消息&#xff0c;X 代表交换机。 交换机的作用&#xff1a;类似网络路由器&#xff0c;主要提供转发功能&#xff0c;解决怎么把消息转发到不同的队列中&#xff0c;让消费者从不…

第十八篇:探索非关系型数据库:从入门到实践

探索非关系型数据库&#xff1a;从入门到实践 1. 引言 1.1 非关系型数据库的崛起&#xff1a;背景与重要性 在过去的几十年里&#xff0c;关系型数据库&#xff08;RDBMS&#xff09;一直在数据存储和管理领域占据主导地位。其严谨的结构化数据模型以及强大的事务处理能力&am…

Mysql触发器优化大数据表

背景 数据库的订单数量过多&#xff0c;需要分出热表用于快速查询&#xff0c;热表仅保存10天的订单数据。 解决思路 每次数据库订单表触发增删改时&#xff0c;同步操作到trigger_order_mul_info表&#xff0c;然后trigger_order_mul_info会定期删除超过10天的数据。 增删…

家政项目day1 配置说明前端

目录 1.配置1.1 开发环境1.2 配置虚拟机1.3 编写nacos配置中心1.4 配置OSS存储1.5 配置高德地图api 2 设计前端并且进行部署2.1 开发环境2.2 安装类库2.3 修改代码2.4 试运行前端2.4.1 OSS配置验证 1.配置 1.1 开发环境 由于个人资金问题&#xff0c;可能担负不起8h8g的服务器…

React-JSX基础

什么是JSX 概念&#xff1a;JSX是JavaScript和XML&#xff08;HTML&#xff09;的缩写&#xff0c;表示在JS代码中编写HTML模板结构&#xff0c;它是React中编写UI模板的方式 优势&#xff1a;1.HTML的声明式模板写法 2.JS的可编程能力 JSX的本质 JSX并不是标准的JS语法&…

学习现货黄金分析技术前 有3点注意

投资者要做现货黄金交易&#xff0c;就需要懂得分析技术&#xff0c;通过分析投资者能找到市场的交易机会。其实分析也是对现货黄金市场进行思考的过程&#xff0c;未经分析而得到的入场机会&#xff0c;失败的可能性是较大的。但是我们在学习现货黄金分析技术之前&#xff0c;…

在做题在学习(60):和可被K整除的子数组

974. 和可被 K 整除的子数组 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a;前缀和 哈希表 同余定理 同余定理&#xff1a; 而此题要求返回能被k整除(%k 0)的子数组的个数&#xff0c;如下图&#xff1a; 把问题转化为——> 有多少个前缀和的余数 sum%k &a…

D60SB60-ASEMI整流桥D60SB60参数、封装、尺寸

编辑&#xff1a;ll D60SB60-ASEMI整流桥D60SB60参数、封装、尺寸 型号&#xff1a;D60SB60 品牌&#xff1a;ASEMI 封装&#xff1a;D-SB 批号&#xff1a;2024 特性&#xff1a;插件、整流桥 平均正向整流电流&#xff08;Id&#xff09;&#xff1a;60A 最大反向击穿…

C++---运算符重载

运算符重载介绍 在类中重新定义运算符&#xff0c;赋予运算符新的功能以适应类的运算&#xff0c;就称为运算符重载。 运算符重载是一种形式的C多态,它使得对象操作更直观,本质上也是属于函数重载。 实际上&#xff0c;我们已经在不知不觉之中使用了运算符重载。例如&#xff…

编一个自己的万年历

编一个自己的万年历 前阶段突然想查一下某一天是星期几&#xff0c;于是自己编了一个[小程序][https://blog.csdn.net/weixin_41905135/article/details/138972055?spm1001.2014.3001.5501]&#xff0c;但是功能很单一&#xff0c;就是单纯的查是星期几。&#xff08;虽然用网…

IRFB3207PBF TO-220 N沟道75V/180A 直插MOSFET场效应管

英飞凌&#xff08;Infineon&#xff09;的 IRFB3207PBF 是一款高性能的 N 沟道 MOSFET&#xff0c;适用于多种电子设备和系统中的高侧开关应用。以下是 IRFB3207PBF 的一些典型应用场景&#xff1a; 1. 电源管理&#xff1a;在电源管理系统中&#xff0c;IRFB3207PBF 可以作为…

【LeetCode】【4】寻找两个正序数组的中位数(2105字)

文章目录 [toc]题目描述样例输入输出与解释样例1样例2 提示Python实现二分查找划分数组 个人主页&#xff1a;丷从心 系列专栏&#xff1a;LeetCode 刷题指南&#xff1a;LeetCode刷题指南 题目描述 给定两个大小分别为m和n的正序&#xff08;从小到大&#xff09;数组nums1…

2024年是不是转行AI产品经理的机会?

首先从一个公司的微观角度来谈谈这一年来公司对AI看法的转变。一年前自己在某大厂做了一件小事&#xff1a;在商家后端嵌入一个小功能&#xff1a;智能生成商品卖点描述&#xff0c;商品评价描述。那时候是一个边缘项目&#xff0c;我们对接的AI 底层团队基本没什么活儿可以接&…

Java面试八股之Synchronized和ReentrantLock的区别

Synchronized和ReentrantLock的区别 实现级别&#xff1a; synchronized是Java的一个关键字&#xff0c;属于JVM层面的原生支持&#xff0c;它通过监视器锁&#xff08;Monitor&#xff09;来实现同步控制&#xff0c;无需手动获取和释放锁。 ReentrantLock是java.util.conc…