当前位置: 首页 > news >正文

unity TimeLine SignalTrack

先新建一个TimeLine

 

image

 添加Track

image

 

 

using SLSC.LBE;
using System;
using UnityEngine;
using UnityEngine.Playables;public class TestCubeReceiver :MonoBehaviour,INotificationReceiver
{public void OnNotify(Playable origin, INotification notification, object context){Debug.LogError("Test Cube Success");}
}
using System;using System.ComponentModel;
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;[DisplayName("Cube测试")]
[Serializable]
public class TestCubeSignal : Marker, INotification, INotificationOptionProvider
{public PropertyName id { get; }NotificationFlags INotificationOptionProvider.flags => NotificationFlags.TriggerOnce | NotificationFlags.TriggerInEditMode;}
using System.ComponentModel;
using UnityEngine.Timeline;
using UnityEngine;
[TrackBindingType(typeof(TestCubeReceiver))]
[DisplayName("测试Cube")]
public class TestCubeSignalTrack :MarkerTrack
{}

 

 

相机震动例子

using System.ComponentModel;
using UnityEngine.Timeline;namespace SLSC.LBE
{[TrackBindingType(typeof(ShakeCameraReceiver))][DisplayName("相机震动信号轨道")]public class ShakeCameraSignalTrack : MarkerTrack{}
}using UnityEngine.Playables;
using UnityEngine.Timeline;
using UnityEngine;
using System.ComponentModel;
using System;namespace SLSC.LBE
{[DisplayName("相机震动")][Serializable]public class ShakeCameraSignal : Marker, INotification, INotificationOptionProvider{public float duration;public Vector3 offset;public int vibrato;public PropertyName id { get; }NotificationFlags INotificationOptionProvider.flags => NotificationFlags.TriggerOnce | NotificationFlags.TriggerInEditMode;}}using UnityEngine;
using System;
using UnityEngine.Playables;namespace SLSC.LBE
{public class ShakeCameraReceiver : MonoBehaviour, INotificationReceiver{public void OnNotify(Playable origin, INotification notification, object context){if (notification is ShakeCameraSignal){ShakeCameraSignal signal = (ShakeCameraSignal)notification;SLSCManager.Instance.ShakeCamera(signal.duration,signal.offset,signal.vibrato);}}}
}{public void ShakeCamera(float duration, Vector3 offset, int vibrato){//震动CameraOffset物体,即mainCamera的父物体
      MainCameraTrans.parent.DOShakePosition(duration, offset, vibrato);}}

 

http://www.wxhsa.cn/company.asp?id=388

相关文章:

  • macOS Tahoe 26 RC (25A353) Boot ISO 原版可引导镜像下载
  • 企业如何选型低代码平台?4款产品测评
  • 对于退款/拒付这类逆向订单操作需要创建新的单号么
  • torch版本应该跟cuda、cudacnn的版本一致
  • 小白如何零成本搭建一个属于自己的私人知识库
  • 安装mysql数据库,从下载到配置的详细教程
  • 根据端口找到进程id
  • 双因子验证网站(aspsms.com/en/registration/)无法注册——Capcha Error
  • MathType7下载安装2025最新下载+安装教程(附安装包)
  • mysql导入数据库,从基础命令到高效技巧
  • 基于“北斗+卫星互联网”的低空飞行服务保障基础设施
  • [BJOI2018] 染色 题解
  • 【完结10章】Java大模型工程能力必修课,LangChain4j 入门到实践
  • CVE-2025-30208 Vite开发服务器任意文件读取漏洞
  • Claude Code 从入门到精通:最全配置指南和工具推荐
  • 故障分析:11GR DATAGRUAD环境BROKER配置Fast-Start Failover
  • Cesium Shader内置变量 czm_*
  • IDA Pro 9.2 发布 - 强大的反汇编程序、反编译器和多功能调试器
  • 传统
  • Java 那些基础又关键的事儿
  • 2025-09-10
  • Codeforces Round 1047 (Div. 3)
  • sentinel-1.8.0 安装
  • 数据结构与算法-27.树-并查集
  • wpf XAML设计器在加载用户控件的时候,提示null引用等直接执行了用户控件里构造函数代码的问题
  • 设计模式-策略
  • Linux中怎么调整系统inode数量?
  • DARPA AI网络挑战赛技术框架全解析:自动化漏洞挖掘与修复系统构建
  • 数据库基本查询语句
  • 【项目实战】基于WS63的鸿蒙星闪红外遥控车(循迹、超声波避障、远程控制、星闪/红外遥控)有教程代码